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

Stefan Behnel stefan_ml at behnel.de
Thu Oct 13 10:13:27 EDT 2011


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? 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.

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.

Stefan




More information about the Python-list mailing list