Frage

Ich versuche, qsub-Jobs auf einem SGE-Cluster (Sun Grid Engine) auszuführen, der maximal 688 Jobs unterstützt.Ich würde gerne wissen, ob es eine Möglichkeit gibt, die Gesamtzahl der Jobs herauszufinden, die derzeit auf dem Cluster ausgeführt werden, damit ich Jobs basierend auf der aktuellen Clusterlast senden kann.

Ich habe vor, so etwas zu tun:1 Minute ruhen lassen und erneut prüfen, ob die Anzahl der Jobs im Cluster < 688 ist, und dann weitere Jobs übermitteln.

Und um meine Frage zu klären, geht es darum, die Gesamtzahl der im Cluster eingereichten Jobs zu kennen, nicht nur die Jobs, die ich derzeit eingereicht habe.

Dank im Voraus.

War es hilfreich?

Lösung

Sie können verwenden qstat um die Jobs aller Benutzer aufzulisten;dies mit awk Und wc kann verwendet werden, um die Gesamtzahl der Jobs im Cluster herauszufinden:

qstat -u "*" | awk '{if ($5 == "r" || $5 == "qw") print $0;}' | wc -l

Der obige Befehl berücksichtigt auch Jobs, die in der Warteschlange stehen und auf die Planung auf einem Rechenknoten warten.

Allerdings könnten die Cluster-Systemadministratoren Benutzern die Überprüfung von Jobs verbieten, die ihnen nicht gehören.Sie können überprüfen, ob Sie die Jobs anderer Benutzer sehen können, indem Sie Folgendes ausführen:

qstat -u "*"

Wenn Sie sicher wissen, dass ein anderer Benutzer einen Job ausführt, Sie ihn aber beim Ausführen des obigen Befehls nicht sehen können, ist es höchstwahrscheinlich, dass die Systemadministratoren diese Option deaktiviert haben.

Nachträglicher Gedanke:Soweit ich weiß, sind Sie nur ein normaler Cluster-Benutzer. Warum machen Sie sich überhaupt die Mühe, Aufträge auf diese Weise einzureichen?Warum übermitteln Sie nicht einfach alle gewünschten Jobs, und wenn der Cluster Ihre Jobs nicht planen kann, werden sie einfach in einen Ordner verschoben qw Geben Sie sie an und planen Sie sie, wann immer SGE es für den geeignetsten Zeitpunkt hält.

Andere Tipps

Je nachdem, wie der Cluster konfiguriert ist, wird das Job-Array (-t Option für qsub) würde diese Grenze umgehen.

Ich habe ähnliche Grenzwerte für die maximale Anzahl von Jobs festgelegt, die ein einzelner Benutzer senden kann.Diese Grenze gilt für einzelne Instanzen von qsub und nicht die Übermittlung eines einzelnen Job-Arrays potenziell vieler Aufgaben (diese Grenze wird über eine andere Konfigurationsvariable festgelegt). max_aj_tasks).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top