Schrift
[thread]5767[/thread]

Fork und Co.

Leser: 1


<< >> 7 Einträge, 1 Seite
Gast Gast
 2003-09-26 15:13
#57238 #57238
HI,
folgendes Problem, ich habe von einer Simulationssoftware 3
lizenzen, um diese nun optimal auszunutzen, moechte ich
ein Perl script schreiben, was mir 3 Simulationen startet, und
erkennt wann eine Simulation fertig ist um eine neue zu starten.

Also meine Frage ist, wie kann ich laufende Prozesse, die ich
zum Beispiel ueber ein fork gestartet habe ueberwachen, um
gegebenenfalls einen neuen Prozess zu starten?

Betriebssystem ist Linux oder Unix.
ronald
 2003-09-26 16:06
#57239 #57239
User since
2003-08-15
76 Artikel
BenutzerIn
[default_avatar]
Quote
HI,
folgendes Problem, ich habe von einer Simulationssoftware 3
lizenzen, um diese nun optimal auszunutzen, moechte ich
ein Perl script schreiben, was mir 3 Simulationen startet, und
erkennt wann eine Simulation fertig ist um eine neue zu starten.


Stichworte: fork, $SIG{CHLD}, wait, waitpid
IMHO ist ist alles nicht so ganz einfach.

Frage: wofür brauchst du dazu einen fork?

Ich würde ein Shell-Skript schreiben:

Code: (dl )
1
2
3
4
#!sh
pgm &
pgm &
pgm &


Dann laufen 3 pgm parallel.
Jedes dieser Programme kann dann in einer Endlos-Schleife die Simulation aufrufen.\n\n

<!--EDIT|ronald|1064578003-->
snarf
 2003-09-26 16:24
#57240 #57240
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
[quote=ronald,26.09.2003, 14:06]Stichworte: fork, $SIG{CHLD}, wait, waitpid
IMHO ist ist alles nicht so ganz einfach.

Frage: wofür brauchst du dazu einen fork?

Ich würde ein Shell-Skript schreiben:

Code: (dl )
1
2
3
4
#!sh
pgm &
pgm &
pgm &


Dann laufen 3 pgm parallel.
Jedes dieser Programme kann dann in einer Endlos-Schleife die Simulation aufrufen.[/quote]
Na, wahrscheinlich möchte er die 3 Lizenzen im Dauerbetrieb und mit einer Queue benutzen ... soll ja außerhalb des Hausgebrauchs schon mal vorkommen :)

Und da ja so manche Simulations-Software auch etwas empfindlich bezüglich der zu berechnende Modelle ist, soll (höchstwahrscheinlich) eine abgebrochene Simulation gleich wieder durch eine neue gestartet werde (vielleicht aus einer Queue heraus).

Nennt sich dann "effektive Lizenzausnutzung" :)

-snarf-
frodus
 2003-09-26 17:00
#57241 #57241
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Snarf hat da ganz recht, genau sowas ist der Sinn und Zweck von der
uebung.
Um genau zu sein handelt es sich um Ca. 200 Simulationen in Verschidenen Verzeichnissen und im Idealfall auf Verschidenen Rechner, die jede Nacht laufen sollen.

Hat vielleicht einer mal ein Beispiel fuer fork und Co.?
format_c
 2003-09-26 17:11
#57242 #57242
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
snarf
 2003-09-26 17:21
#57243 #57243
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
[quote=format_c,26.09.2003, 15:11]Ne aber ein Tutorial: http://www.steve.gb.com/perl/lesson12.html

Gruß Alex[/quote]
@frodus:

na, da hast Du doch schon alles, was Du so für das lokale System brauchst :)

Jetzt noch schnell eine while-Schleife drum gebastelt, die über die Anzahl der Prozesse läuft, bei <3 Prozessen forkt und beim SIG die Prozesse reduziert -> fertig!

Wenn Du die natürlich auf verschiedene Rechner verteilen willst, brauchst Du "nur" noch ein paar Sockets und den Client dazu (aber das wird dann etwas länger dauern) :)

By the way: Was für eine Sim-Software steht denn dahinter???

-snarf-
frodus
 2003-09-26 17:56
#57244 #57244
User since
2003-09-26
147 Artikel
BenutzerIn
[default_avatar]
Ersmal danke fuer die Antworten!!! :D

Die software ist Modelsim.
Das mit Dem Verteilen hat eh "low prioriety" mach ich dann mal
wenn ich ganz viel Zeit und Lust habe.
<< >> 7 Einträge, 1 Seite



View all threads created 2003-09-26 15:13.