Thread Mehrere Prozesse für Dual/Quad Core (6 answers)
Opened by Snicker at 2008-09-05 21:24

Snicker
 2008-09-06 20:53
#114314 #114314
User since
2008-08-09
25 Artikel
BenutzerIn
[default_avatar]
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++;
    }
}

View full thread Mehrere Prozesse für Dual/Quad Core