Language Enhancement Idea to help with multi-processing (your opinions please)

Martin P. Hellwig martin.hellwig at gmail.com
Thu Oct 13 16:20:13 EDT 2011


On 13/10/2011 15:13, Stefan Behnel wrote:
> Martin P. Hellwig, 13.10.2011 14:35:
>> I was wondering if there could be an advantage to add another control
>> flow
>> statement.
>> Changes at that level must be very well justified, are often rejected
> for the reason of being not too complicated to write in some other form
> and are close to impossible to get accepted when requiring a new keyword.
>> Also, the right place to discuss (and, more importantly, search for
> previous) ideas about language changes is the python-ideas mailing list.
>>>> For the purpose of this writing let's say "ooo" which stands for 'out of
>> order'.
>>>> For example;
>>>> def do_something():
>> a = 4
>> b = 2
>> c = 1
>> ooo:
>> a += 1
>> b += 2
>> c += 3
>> print(a, b, c)
>>>> What I would expect to happen that all statements within the ooo block
>> may
>> be executed out
>> of order. The block itself waits till all statements are returned before
>> continuing.
>> This looks like a rather special case. What if you need more than one
> statement to accomplish a single step?

Aah yes haven't thought about that, was more thinking like wrap multiple 
steps in a function and put that as one line, but yeah that kind of 
stuff gets very unpythonic very quickly.
> What if the number of parallel
> tasks is not fixed at coding time? I don't think there are many problems
> that you can solve with this feature.
>> Also: the GIL will not allow you to take a major advantage from the
> parallel execution of a set of statements, as only one of the statements
> can use the interpreter at a time.

Well I was more or less thinking in the line that the interpreter when 
parsing such a statement can, if there are multiple cpu's available, 
fire the appropriate amount of other interpreters and do all the passing 
and locking of data for you.
>> And, on a related note: Cython has freshly gained support for parallel
> loops based on OpenMP, so you may be able to solve your problem with
> Cython instead of using plain Python.
>Well funny enough I don't really have a problem with it, I am a happy 
consumer of multiprocessing, but I was just wondering if there would be 
a way to do it simpler and more pythonic.
> Stefan
>
Thanks for your feedback it was very enlightening although for what the 
idea is concerned disappointing as it more or less makes it obvious that 
such a thing is a no-go.
Cheers,
Martin


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /