Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Re: automatic parallelization

Reply
Thread Tools

Re: automatic parallelization

 
 
Michael Schlenker
Guest
Posts: n/a
 
      09-13-2007
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.

Michael

 
Reply With Quote
 
 
 
 
Cameron Laird
Guest
Posts: n/a
 
      09-13-2007
In article <(E-Mail Removed)>,
Michael Schlenker <(E-Mail Removed)> 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.
 
Reply With Quote
 
 
 
 
Mikhail Teterin
Guest
Posts: n/a
 
      09-14-2007
Cameron Laird wrote:

> There are a LOT more possibilities one might pursue, depending
> on the details of Mr. Teterin's intent.


The reason I began wondering about this is that I like a particular
image-gallery generating tool called `imageindex'
(http://www.edwinh.org/imageindex/)

Unfortunately, it processes all given pictures sequentionally ignoring my
three other cores.

The tool is written in Perl, but I would consider rewriting it in Tcl or
Python, if the language made it easy to parallelize loops...

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


Linda URL does not open... I'll look into Parallel Python, but it is
an "execution server", which is a rather different approach from OpenMP's,
which I'm more familiar with.

Thanks!

-mi
 
Reply With Quote
 
Cameron Laird
Guest
Posts: n/a
 
      09-14-2007
In article <(E-Mail Removed)>,
Mikhail Teterin <(E-Mail Removed)> wrote:
.
.
.
>> 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.

>
>Linda URL does not open... I'll look into Parallel Python, but it is

.
.
.
It comes and goes. It seems to have been OK the last several hours.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: automatic parallelization Michael Schlenker Python 3 09-14-2007 02:37 PM
Parallelization with Python: which, where, how? Mathias Python 5 01-04-2005 04:03 PM
Parallelization on muli-CPU hardware? P.M. Python 60 10-26-2004 07:22 AM
Re: Parallelization on muli-CPU hardware? Python 1 10-12-2004 03:23 PM
Parallelization on multi-CPU hardware? P.M. Python 0 10-05-2004 04:47 AM



Advertisments