- MCE
- fork
- map
MCE - map running in parallel
The MCE package provides a map-like function that automatically runs the different tasks in separate processes then
collects the results in the correct order.
By default it creates 4 child processes, but you can control that and a few other things by calling the init method.
examples/forks/use_mce_map.pl
use strict; use warnings; use MCE::Map; main(); sub main { print "main PID: $$\n"; my @results = mce_map { work($_) } 1..10; print "Results: @results\n"; } sub work { my ($param) = @_; print "Param $param PID: $$\n"; return $param * $param; }
main PID: 150164 Param 1 PID: 150168 Param 2 PID: 150168 Param 7 PID: 150167 Param 8 PID: 150167 Param 3 PID: 150165 Param 5 PID: 150166 Param 4 PID: 150165 Param 6 PID: 150166 Param 9 PID: 150168 Param 10 PID: 150168 Results: 1 4 9 16 25 36 49 64 81 100