Thread Mehrere Prozesse für Dual/Quad Core
(6 answers)
Opened by Snicker at 2008-09-05 21:24
Mittlerweile läuft es, auch wenn ich zur Kontrolle der Prozessanzahl einen faulen Kompromiss eingehen musste.
Die Abfrage auf Existens der Zieldatei ist keine sonderlich gut Lösung, aber sie funktioniert immerhin zuverlässig. 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 24 25 26 27 28 29 30 $q = 0; $k1 = 0; while ($q < @einstellungen_para_wert[3]){ my $pid = fork() ; unless (defined $pid) { die "Could not fork $!"; } elsif ($pid < 0){ open (BATCHDATEI, ">$batch$q$batchformat"); 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]"; print "$batch$q$batchformat\n"; system ("$batch$q$batchformat"); wait; exit(0); } else{ sleep(1); $k1++; print "$k1\n"; while ($k1 == $cores){ for (my $op = $q; $op < ($q + $cores); $op++){ if (-e "$modelldatei$q$random@einstellungen_para_wert[1]"){ $k1--; } } sleep(1); #Programm pausiert 1 Sek. sonst beansprucht Perl die frei werdenen Ressourcen. } $q++; } } |