Drehmoment im Cluster

1217
Tim

Ich lerne und habe einige Fragen zur Verwendung von PBS zum Übergeben von Jobs in einem Cluster.

(1) Wenn ein Job von MPI parallelisiert und von mpirun ohne qsub ausgeführt wird, kann er auf verschiedenen Knoten ausgeführt werden. Was ist der Sinn von qsub?

Wurde der Job nicht von qsub in die Warteschlange gestellt oder nicht?

(2) Werden in einem von qsub übergebenen pbs-Skript alle Befehle nacheinander ausgeführt?

Wenn ich mehrere ausführbare Dateien gleichzeitig ausführen möchte, werden diese Aufrufe durch Hinzufügen von "&" am Ende als Hintergrund ausgeführt?

(3) Wenn im Pbs-Skript die verschiedenen Aufrufe zur Ausführung der ausführbaren Dateien gleichzeitig ausgeführt werden, während der Hintergrund ausgeführt wird, wird dann die Anzahl der Knoten und Prozessoren pro Knoten als die Gesamtmenge angegeben, die von diesen Aufrufen benötigt wird?

Wenn ja, und die angegebene Anzahl von Knoten und Prozessoren pro Knoten ist nicht vollständig verfügbar, aber ausreichend, um einige der Aufrufe auszuführen. Werden einige dieser Aufrufe zuerst ausgeführt oder verzögert, bis die angeforderten Gesamtressourcen vollständig verfügbar sind?

Vielen Dank!


AKTUALISIEREN:

Zum besseren Verständnis meiner obigen Fragen, Unser Cluster ist ein Linux-Cluster mit Torque und Maui. Ich lese online Tutorials und finde, dass sich die Kompilierung nur auf dem Kopfknoten befindet, und nachdem der Job von qsub übergeben wurde, führen die anderen Knoten die auf dem Kopfknoten kompilierte ausführbare Datei aus. Deshalb stellen sich meine Fragen.

0
Ihr Beitrag enthält zu viele Einzelfragen. Dies ist keine gute Lösung für unser Q & A-Format. Erstellen Sie daher für jedes Problem, das Sie haben, separate Beiträge. Siehe auch: [Ein Beitrag mit mehreren Fragen oder mehreren Beiträgen?] (Http://meta.stackexchange.com/q/39223) bwDraco vor 8 Jahren 0

2 Antworten auf die Frage

0
Troggy

Um Ihre erste Frage zu beantworten. MPI sollte mit den verfügbaren Knoten und der Anzahl der verfügbaren Prozessorkerne konfiguriert sein, und MPI sollte die gesamte Verteilung abwickeln, wenn sie korrekt codiert ist. Zumindest erinnerte ich mich daran, wie das MPI funktionierte, als ich es benutzte. Ich habe zwar die LAM-MPI-Distribution verwendet, daher waren einige Dinge möglicherweise anders.

Was PBS anbelangt, so habe ich das noch nicht verwendet, aber ich habe auf dieser Universitätsseite einige Grundlagen von Läufen und Spezifikationen erklärt:

http://euler.phys.cmu.edu/cluster/pbs.html

0
Jimmy Hedman

I haven't used PBS for a while, only SGE so these answers could be somewhat SGE-centric.

The reason for using a queue-system is to utilize your resources better. If you have a cluster of 1000 nodes and 100 users you don't want all of them logging in and try to run mpirun to use all of the 1000 nodes. Instead you let them submit jobs asking for resources (for example 10-20 cpus, 4 GB memory and so on) and the queue system takes care of dispatching jobs on available machines. Also, if you don't have that much users and that big cluster you could perhaps have 100 job that you need to run. Just submit al of them to the queue system, let it work in the background, over the night and over the weekend and all your resources would be used in a efficient way. One cool thing you can do is to let the queue system start and stop your machines depending on demand so that if you have no jobs it shuts down your nodes and when you submit jobs it starts the right amount of machines. Could potentially save a lot of power!

The script is running the same way it would have if you start it by hand, it just has an environment that knows which nodes to use, what directory to run in and such. If you really want jobs running in background you can start them with an & at the end, but remember to wait for running jobs at the end, otherwise your could get a miss-match between resources that your queue system knows of and the real resources available.