[Edinburgh-pm] parallel semantics in perl

Wim Vanderbauwhede wim.vanderbauwhede at gmail.com
Mon Dec 13 12:15:09 PST 2010


Hi folks,

I'm looking into a way to run Perl on a manycore or multiprocessor
system without visible threads or forks. To do so I want to assume
parallel evaluation, i.e. all independent statements in a block or
function argument list are evaluated in parallel. Similarly, loops are
sequential; but in many cases they can be unrolled and evaluated in
parallel.
However, the programmer might want to control this behaviour. So my
question is, what would be an acceptable way of "overloading" Perl
semantics to indicate sequential evaluation?

For example, whereas statements in a bare {...} block will be
evaluated in parallel,  a do {...} could mean sequential evaluation. A
"foreach" in full could be parallel, a "for" sequential. Any
ideas/suggestion about this, e.g. how would you indicate that "map"
should be sequential, etc? I obviously don't want to add new
constructs to Perl 5.

Wim


More information about the Edinburgh-pm mailing list