2016-05-21 17 views
0

Ich verwende eine aktuelle Version von Torque/Maui (w/PBS), um Jobs auf einem Cluster mit heterogener Hardware zu planen. Hardware besteht aus zwei Gruppen von 10 Knoten, für die ich möchte, dass zwei Gruppen erhöhte Priorität auf einer der Knotengruppen haben. Zum Beispiel:Gruppenpriorität auf einer Untergruppe von Knoten

Node set A of 10 nodes has elevated priority for User Group 1 
Node set B of 10 nodes has elevated priority for User Group 2 

Ich bin vertraut mit, wie dies für alle Knoten erreicht wird, die hier dokumentiert ist:

http://docs.adaptivecomputing.com/maui/5.1.3priorityusage.php

Allerdings bin ich über die beste Strategie nicht vertraut, diese Art Set Priorität auf einer Teilmenge des Clusters. Von dem, was ich von den Maui-Dokumenten feststellen kann, kann es mit Knoten-Sets oder Partitionen gemacht werden, aber ich bin unsicher, ob beide korrekt sind oder ob es überhaupt eine andere Strategie gibt.

Edit: Ich würde es vorziehen, eine einzelne Warteschlange zu haben, wie es Bedienbarkeit vereinfacht und es einen Benutzer ermöglichen würde, um möglicherweise den gesamten Cluster verwenden, wenn auch mit Priorität unterschiedlichen auf Knotengruppe A und B.

Vielen Dank im Voraus für die Hilfe.

Antwort

1

So wie ich die Frage verstehe, haben Sie die Knotenzuordnung mit der Jobpriorität verwechselt. Die Jobpriorität bestimmt, wie viel schneller Maui einen Job ausführen wird, da er Priorität in der Warteschlange für vorrangige Reservierungen erhält. Dadurch wird festgelegt, wie schnell ein Job innerhalb der Einschränkungen ausgeführt werden kann, die für den Job gelten, und zwar relativ zu allen anderen Jobs in der Warteschlange für berechtigte/nicht belegte Jobs.

Das ist getrennt von, wo Maui beschließt, (Plan) Jobs zu platzieren. Der natürlichste Weg, um diese Art von Anwendungsfall zu behandeln, ist die Reservierung von Ständen. Sie können Reservierungen für jede Gruppe von Knoten erstellen (über Hostliste, Feature oder Partition) und dann beiden Gruppen (oder allen) Zugriff auf beide Reservierungen geben, aber eine negative Affinität für alle außerhalb der Gruppe mit bevorzugtem Zugriff anwenden.

Beispiel:

SRCFG[rsvA] NODEFEATURES=setA 
SRCFG[rsvA] GROUPLIST=group1,ALL- 
SRCFG[rsvA] HOSTLIST=ALL 

SRCFG[rsvB] NODEFEATURES=setB 
SRCFG[rsvB] GROUPLIST=group2,ALL- 
SRCFG[rsvB] HOSTLIST=ALL 

Mit dieser Konfiguration Maui Reservierung rsvA schafft nur die Knoten mit der „setA“ Eigenschaft/Funktion und Arbeitsplätze von Gruppe1 gravitieren wird aufzunehmen (dh positive Affinität) zu die Knoten in dieser Reservierung. Ebenso werden Jobs von Benutzern in group2 an die Knoten in rsvB mit der Eigenschaft "setB" (wie in der Knotendatei oder in NODECFG-Zeilen in der maui.cfg definiert) übergeben. Diese Konfiguration funktioniert problemlos mit einer einzelnen Warteschlange und ist im Wesentlichen benutzertransparent.

+0

Danke für die Antwort. Das ist ziemlich nah an dem, was ich erreichen möchte. Was würde passieren, wenn viele Jobs im Q-Zustand von Gruppe 1 warten würden, wenn der Benutzer von Gruppe 2 Jobs abgibt? Würden diese Gruppe-2-Jobs Priorität haben, auf Set B zu laufen, oder würde aufgrund längerer Warteschlangenzeit obs von Gruppe 1 vor Aufträgen von Gruppe 2 ausgeführt werden? Grundsätzlich habe ich zwei Sätze von Hardware, die jeweils von ihrer jeweiligen Gruppe gehört. Sie haben sich darauf geeinigt, Ressourcen zu teilen, ziehen es jedoch vor, Priorität auf ihrer eigenen Hardware zu haben, d. H. Ihre Jobs sind * immer * an der Spitze der Warteschlange in Bezug auf andere Gruppe (n). – Vince

+1

Maui kann meines Wissens das nicht direkt tun, zumindest nicht ohne einen speziellen Reifensprung. Moab kann dies mit dem Cred Modifier "HPEnable" tun. http://docs.adapecomputing.com/9-0-1/MWM/help.htm#topics/moabWorkloadManager/topics/resourceAccess/managingreservations.html#aclmodifiers – clusterdude

+1

'SRCFG [Raum] USERLIST = John CLASSLIST = ~ Debug ' " Alle Jobs von Benutzer John können jederzeit in der Reservierung ausgeführt werden. Debug-Jobs können auch in dieser Reservierung ausgeführt werden, werden aber erst berücksichtigt, nachdem alle Jobs von John eine Gelegenheit zum Starten erhalten haben. Jobs von User John werden unabhängig von der Jobpriorität vor Debug-Jobs berücksichtigt." – clusterdude