2016-05-06 11 views
1

Ich übergebe Jobs auf Cluster mit LSF-Job-System ausgestattet.linux: Wie umleiten Sie den laufenden Befehl in einer Zeile bsub im LSF-Job-System?

Ich mag es nicht, Job-Skript zu schreiben. Ich bevorzuge eine Zeile , wie

bsub -n 24 mpirun -n 24 ./a.out 

Es läuft gut. Aber ich möchte Echtzeit-Bildschirmausgabe.

Also habe ich versucht

bsub -n 24 mpirun -n 24 ./a.out >stdout 

Aber das wird nicht funktionieren, weil es nur die Informationen der Job nicht den Ausgabebefehl des Laufens Absenden umleiten

Obwohl ich weiß, -o und -e bsub bieten zu umleiten Ausgabe. Aber diese beiden Befehle sind keine Echtzeit. Wie ich getestet habe, speichern sie die gesamte Bildschirmausgabe nach dem Job abgeschlossen. Aber das ist nicht was ich will. Was mehr ist, weiß ich auch bpeek, und das will ich auch nicht.

Also meine Frage ist, wie die Ausgabe des laufenden Befehls innerhalb einer Zeile bsub korrekt umleiten? Ich habe versucht, verschiedene Art und Weise, machen den Befehl zitiert, eingeklammert ... alle

fehlgeschlagen
+0

IMO, das Umleiten der Ausgabe in Ihrem Jobskript ist der richtige Weg, es zu tun. Wenn Sie jedoch an andere Optionen denken: LSF leitet das stdout und stderr des Jobs in eine Datei im LSF_TMPDIR (standardmäßig $ HOME/.lsbatch). Du könntest diese Datei schwänzen. Wenn Ihre Jobid beispielsweise 100 ist und Ihr Cluster den Standardwert LSF_TMPDIR verwendet, können Sie Folgendes versuchen: 'tail -f $ HOME/.lsbatch/*. 100.out' –

Antwort

0
bsub -I -n 24 mpirun -n 24 a.out 

Der -I LSF teilt dem Job interaktiv ausführen, dh die Ausgabe an die Konsole zu senden.

Dies funktioniert nur, wenn eine interaktive Standardwarteschlange definiert ist.

+0

Hallo, Squirrel. Danke für die Antwort. Aber ich möchte nicht, dass die Ausgabe zu trösten, ich möchte es in eine Datei speichern. Und ich bin nicht stabil für lange Zeit Jobs – user15964