2016-05-23 15 views
0

Ich bin gerade dabei, eine Grid-Engine auf Ubuntu 16.04 mit dem sun gridengine aufzubauen. Die meisten Funktionen, die ich verwenden möchte, funktionieren. Allerdings bin ich mit dem folgenden Problem zu kämpfen:Limit Kerne pro Job in sun gridengine

  • Ich habe eine 32-Core-Maschine (64 Threads)
  • Ich bin mit Jobs, die Software wie Matlab verwenden ...
  • Diese Softwarepakete können verwenden mehrere Threads für calcultion

aktuelle Situation: die Queue hat 2 Slots, ist Prozessoren auf 1 gesetzt ich einen Job übergeben und alle 64 Threads sind für die Berechnung verwendet. Ich reiche einen zweiten Job ein und beide laufen parallel. Also, für den Laufzeittest kann ich die Anzahl der verwendeten Kerne nicht kontrollieren.

Ich habe auch versucht, eine parallele Umgebung einzurichten (verbunden mit dieser Warteschlange). Aber auch wenn ich dort einen Job mache, werden alle Kerne benutzt.

Ich denke, ich habe ein Problem mit dem allgemeinen Verständnis.

Weiß jemand, oder eine Idee hat, wie es möglich ist, die Einrichtung so ähnlich:

a) jeder Schlitz nur einen Kern nutzen kann (dann die parallele Umgebung würde mir erlauben, die Schlitze zu spezifizieren/Kern ein Job

b) die Kerne einer eingereichten Arbeit

Wichtig ist auch zu beschränken, dass es nicht nur ein oberen, sondern auch eine untere Schranke ist. Aber das könnte durch die Anzahl der Slots behandelt werden, denke ich.

Vielen Dank schon im Voraus für irgendwelche Ideen.

Antwort

0

Sie können nicht (einfach) die Anzahl der Threads steuern, die ein Prozess generieren kann, aber mithilfe einer aktuellen Grid-Engine können Sie die Anzahl der Cores steuern, auf die er zugreifen kann. Wenn Ihre Grid-Engine neu ist, überprüfen Sie den Parameter -binding von qsub und die Option USE_CGROUPS in sge_conf. Wenn du eine ältere Grid-Engine hast, kannst du versuchen, Tricks mit der starter_method zu spielen.