Leser: 1
7 Einträge, 1 Seite |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
$q = 0; while ($q < @einstellungen_para_wert[3]){ my $pid = fork() ; my $k1 = 0; my $cores = 2; my $test1; if (($k1 < $cores) && ($pid ==0)){ print "$k1\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]"; $test1 = $q + $k1; $k1++; print "$test1 Simulation wird berechnet \$k1 = $k1 \q = $q\n"; system ("$batch$test1.bat"); $q++; $k1--; } }
1 2 3 4 5 6 7 8 9 10 11
my $pid = fork(); unless (defined $pid) { die "Could not fork $!"; } elsif (!$pid) [ # child exit; } else { # parent, inkrementiere $k1 etc. }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
perl -wle'
for (1 .. 2) {print "($$) start of loop $_";
my $pid = fork;
print "($$) ($pid) loop $_";
}'
(5305) start of loop 1
(5305) (5306) loop 1
(5305) start of loop 2
(5306) (0) loop 1
(5306) start of loop 2
(5307) (0) loop 2
(5308) (0) loop 2
(5305) (5307) loop 2
(5306) (5308) loop 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
$q = 0; my $k1 = 0; my $cores = 2; my $test1; while ($q < @einstellungen_para_wert[3]){ my $pid = fork() ; unless (defined $pid) { die "Could not fork $!"; } elsif (!$pid){ print "$k1\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]"; $test1 = $q + $k1; $k1++; print "$test1 Simulation wird berechnet \$k1 = $k1 \q = $q\n"; system ("$batch$test1.bat"); $q++; $k1--; } else{ exit(0); } }
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++; } } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
perl -wle'
for my $id (1 .. 10) {
my $pid = fork();
unless (defined $pid) {
die "Could not fork $!";
}
elsif (!$pid) {
sleep rand(2);
print "child $$";
exit;
}
else {
print "parent $$ forked $pid";
}
}'
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++; } }
7 Einträge, 1 Seite |