I tried to use the above code to generate 5 different paired sequences using 2 CPU. But the result was only one paired sequences generated, the other four were cloned paired without shuffle. They were identical each other. I expected those five paired sequences were different. Why? If I do not use Parallel::ForkManager module, then everything is OK.use strict; use List::Util qw(shuffle); use Parallel::ForkManager; my $multi_cpu_num = 2; my @chars_1 = split '', 'ACTCTGCATGCATACGCATCAGCATCAT'; my @chars_2 = split '', 'TAGCTCATGTCGATGCATGCTCGTCTCG'; my $pm = Parallel::ForkManager->new( $multi_cpu_num ); PWM: for my $pwm (1..5) { $pm->start and next PWM; my @chars_1_temp = shuffle @chars_1; my @chars_2_temp = shuffle @chars_2; print "this is $pwm....\n"; print join '',@chars_1_temp,"\n"; print join '',@chars_2_temp,"\n"; $pm->finish; } $pm->wait_all_children;
In reply to shuffle in Parallel::ForkManager; by plagent
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |