Springe direkt zu Inhalt

Effiziente Ressourcennutzung

Statistische Daten zur Ressourcennutzung werden im Ordner /home/<user name>/hpc_statistic abgelegt.  Sie sollten dazu dienen, die für einen Job benötigten Ressourcen genuaer angeben zu können.  Damit werden folgende Ziele erreicht:

  • Wenn man nicht mehr Ressourcen als nötig für einen Job anfordert, kann dieser Job in der Regel schneller starten.
  • Da die bisherige Nutzung der Ressourcen in die Priorität zukunftiger Jobs einfließt,  wirkt sich eine genauere Angabe der Ressourcen günstig auf diese Priorität aus.
  • Wenn durch die genauere Angabe weniger Ressourcen verbraucht werden, können mehr Jobs gleichzeitig laufen und der Gesamtdurchsatz des Systems wird erhöht.

Jobeffizienz

job_efficiency

job_efficiency

Um zu verhindern, dass Jobs auf Ressourcen warten, die sie nicht wirklich brauchen, ist es wichtig, die Anforderungen Ihrer Jobs möglichst genau abzuschätzen.  Davon profitieren nicht nur Sie selbst direkt, sondern es wird auch der Durchsatz des gesamten Systems erhöht und es können mehr Jobs innerhalb einer gegebenen Zeit laufen.

Mit dem Befehl seff kann man Informationen zur Effizienz anzeigen lassen. Um Information zum Job 1234546 zu erhalten gibt man Folgendes ein:

seff 123456

Daten von dem Kommando seff werden verwendet, um die Jobeffizienz-Grafik, bestehend aus zwei Scatterplots sowie zwei Histogramme, für die Jobs, die im letzten Monat zu Ende gegangen sind, zu generieren. Es wird der Anteil der tatsächlich genutzten Ressourcen von den angeforderten Ressourcen dargestellt und zwar für die Anzahl der CPU-Kerne und für die Menge an Hauptspeicher, beides mit der Laufzeit des jeweiligen Jobs multipliziert. In der Regel exisitieren auch Dateien aus den vergangen Monaten.

CPU-Effizienz

Wenn zu viele Jobs eine geringe CPU-Effizienz aufweisen, dann sollten folgende Punkte überprüft werden:

  • Sind alle Kerne, die dem Job zugeweisen wurden, für den Job erreichbar?  Bei einem Programm, das nicht in der Lage ist, über Knotengrenzen hinweg zu rechen, muss man --nodes=1 angeben.  Damit wird festgelegt, dass alle für den Job vorgesehenen Kerne sich innerhalb eines Knotens befinden.
  • Wie gut skaliert das Programm?  Damit ist gemeint, ob das Programm wirklich so viele CPU-Kerne voll beschäftigen kann, wie angefordert wurden.  Es empfiehlt sich, Skalierungsversuche durchzuführen, bei denen man das gleiche Problem mehrfach rechnet aber mit einer jeweils anderen Anzahl von Kernen.

Hauptspeicher-Effizienz

Wenn die Hauptspeicher-Effizienz gering ist, sollte überprüft werden, ob weniger Speicher angefordert werden kann. Dabei sind folgende Punkte zu beachten:

  • Es muss die maximale Speichermenge, die während der gesamten Laufzeit benötigt wird, angefordert werden. Da eine Überschreitung dieser Menge zum Abbruch des Jobs führt, muss ein gewisser Puffer einberechnet werden.
  • Wenn es möglich ist, sollten Programmphasen, die unterschiedlich viel Hauptspeicher benötigen, in separaten Jobs gerechnet werden.  So kann die angeforderte Menge an den Bedarf der jeweiligen Phase angepasst werden.

Belegung der Dateisysteme

disk_usage_home

disk_usage_home

Für jedes Dateisystem wird eine Graphik generiert, die die eigene Belegung in Bezug zur mittleren, Median- und faire Benutzung, wobei letztere der Platz pro Person ist, der sich aus der Teilung des Gesamtplatzes eines Dateisystems durch die Anzahl der Nutzerinnen und Nutzer ergibt.

Wenn Ihre Benutzung signifikant größer als die faire Benutzung wird, bitte unternehmen Sie Maßnahmen, um Ihre Datenmenge zu reduzieren.

Möglichkeiten, dies zu erreichen sind u.a.

  • das Löschen von nicht mehr benötigten Daten
  • das Verschieben von Daten von /home nach /scratch (vorausgesetzt Ihre Belegung auf/scratch ist noch nicht schon zu hoch)
  • das Verschieben von Daten auf ein andres System
  • das Zusammenpacken von Daten in komprimierte Archive (z.B. mit dem Kommando tar)


Falls Sie Fragen zu den Informationen auf dieser Seite haben, bitte wenden Sie sich an den HPC-Support.