Springe direkt zu Inhalt

Hauptspeicher

Die Speichermenge, die von einem Job benötigt wird, muss mittels der Option --mem-per-cpu oder --mem (Speicher pro Knoten) in dem Kontrolskript angegeben werden. Man muss versuchen, den Wert möglichst genau zu spezifizieren.

Wenn der Wert zu hoch ist, dann

  • wird der Job eventuell länger als notwendig warten müssen, bis genug Speicher frei wird.
  • werden andere Jobs, sobald der Job startet, eventuell werden warten müssen, weil ConsumableMemory aufgebraucht wurde, obwohl Speicher tatsächlich zur Verfügung steht. Im Diagramm unten kann der gezeigte Job trotz verfügbarer Cores in ausreichender Zahl nicht starten, weil das Batch-System nicht genug Speicher auf dem Knoten reservieren kann.

memory overestimation.png

Wenn der Wert zu klein ist, dann

  • wird der Job beim Überschreiten der angegeben ConsumableMemory beendet.

Einen Überblick über die Speicherausstatung der Knoten bekommt man mit dem Befehl

snodes

Für einen einzelnen Knoten kan man den Wert RealMemory vom Befehl scontrol shown node <node name> anschauen, z.B.

$ scontrol show node c005
NodeName=c005 Arch=x86_64 CoresPerSocket=16
   CPUAlloc=32 CPUTot=32 CPULoad=32.40
   AvailableFeatures=(null)
   ActiveFeatures=(null)
   Gres=(null)
   NodeAddr=c005 NodeHostName=c005 Version=18.08
   OS=Linux 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019
   RealMemory=95000 AllocMem=65536 FreeMem=69249 Sockets=2 Boards=1
   State=ALLOCATED ThreadsPerCore=1 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
   Partitions=main
   BootTime=2019-07-12T13:23:09 SlurmdStartTime=2019-07-25T15:36:37
   CfgTRES=cpu=32,mem=95000M,billing=32
   AllocTRES=cpu=32,mem=64G
   CapWatts=n/a
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

Schlagwörter