automatic parallelization

Cameron Laird claird at lairds.us
Thu Sep 13 16:20:26 EDT 2007


In article <46E99488.20909 at uni-oldenburg.de>,
Michael Schlenker  <schlenk at uni-oldenburg.de> wrote:
>Mikhail Teterin schrieb:
>> While C/C++ and Fortran have OpenMP (http://www.OpenMP.org/), there is
>> nothing comparable in Tcl (nor, as far as I know, in the two other
>> scripting languages).
>> 
>> Or is there? I'd like to, for example, have a version of foreach loop, that
>> would split the tasks between concurrently executing threads in order to
>> scale to the number of available CPUs:
>
>For CPython you don't get any benefit from extra CPUs even if you tried
>(unless the code inside your loop is specially written C code), due to
>the GIL.
>
>For Perl i don't know, their threading model was a bit heavy last time i
>looked, but i might be off with that, so maybe its doable in Perl.
>
>For Tcl you would at least get the benefit of multiple CPUs, but its
>more message passing based thread model is probably not the best for
>autoparallelization like OpenMP (but you could use the tsv:: api for
>shared vars if you want to).
>
>> 
>> For example:
>> 
>>  pforeach image $images {
>>   set exif($image) [extract_exif $image]
>>  }
>> 
>> The script would be the same on a single- and a multi-CPU computer, but
>> would automatically take advantage of multiple processors, when possible.
>
>Its doable in principle, but as with OpenMP you need extra annotations
>to make it workable.
>
>If you have an event style script in Tcl you might be easier able to use
>threads, as the thread::send -async api fits very well with the event
>based style.
			.
			.
			.
There are a LOT more possibilities one might pursue, depending
on the details of Mr. Teterin's intent.  I'm fond of Linda <URL:
http://www.unixreview.com/documents/s=10125/ur0704l/ >, Parallel
Python <URL: http://www.parallelpython.com/ > only one of several 
initiatives which aspire to exploit multicores, and so on.



More information about the Python-list mailing list