Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re^3: No Performance gain with Parallel::ForkManager

by RichardK (Parson)
on Feb 23, 2014 at 17:59 UTC ( #1075899=note: print w/replies, xml ) Need Help??

in reply to Re^2: No Performance gain with Parallel::ForkManager
in thread No Performance gain with Parallel::ForkManager

There's no need to be quite that verbose as Parallel::ForkManager handles the number of processes for you. So you can write that as :-

... my $pm = Parallel::ForkManager->new($num_of_cores); for my mp3 (@mp3s) { $pm->start and next; do_work($mp3); $pm->finish; } $pm->wait_all_children;

Replies are listed 'Best First'.
Re^4: No Performance gain with Parallel::ForkManager
by McA (Priest) on Feb 23, 2014 at 18:29 UTC

    Hi Richard,

    am I wrong or does your solution fork a child per file found?

    I wanted to give walto a snippet where I show how to spawn as many subprocesses as cores are available and the subprocesses working on a subqueue.

    The verbose code tries to show that the subprocesses iterate over the initially created array in a way that they can "share" (*) this array without doing work twice. Have I overseen something?

    UPDATE: It was an answer to the question "I can not find a simple way to split the loop into 2 (my no of cores) independent subprocesses...".

    Best regards

    (*) It's a copy in the subprocess.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1075899]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (5)
As of 2018-05-23 08:11 GMT
Find Nodes?
    Voting Booth?