Thread Mehrere Prozesse für Dual/Quad Core
(6 answers)
Opened by Snicker at 2008-09-05 21:24
Hab mich jetzt eng an deine Vorlage gehalten.
Für "elsif (!$pid)" komme ich erst gar nicht in die Schleife rein, daher hab ich es umgeändert zu "elsif ($pid)". Die gestarteten Prozesse werden auch bearbeitet, nur muss ich mir jetzt was überlegen, wie ich nur maximal $cores Prozesse startet. Aber vielen Dank erstmal für deine Hilfe! Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $q = 0; my $k1 = 0; my $cores = 2; my $test1; while ($q < @einstellungen_para_wert[3]){ for (1..$cores){ my $pid = fork() ; unless (defined $pid) { die "Could not fork $!"; } elsif ($pid){ print "\t$q\n"; open (BATCHDATEI, ">$batch$q.bat"); print BATCHDATEI "\@echo off\n CopasiSE @einstellungen_para_wert[2]@einstellungen_para_wert[0]$q@einstellungen_para_wert[1] --save @einstellungen_para_wert[2]@einstellungen_para_wert[0]$q$random@einstellungen_para_wert[1]"; system ("$batch$q$batchformat"); exit (0); } else{ print "$q Simulation wird berechnet \q = $q\n"; $q++; } } } |