Warum einen Cluster verwenden?


  • Beim High Performance Computing (HPC) wird in der Regel eine Verbindung zu sehr großen Rechensystemen an anderen Orten der Welt hergestellt.
  • Diese anderen Systeme können für Arbeiten verwendet werden, die auf kleineren Systemen entweder unmöglich oder sehr viel langsamer wären.
  • HPC-Ressourcen werden von mehreren Benutzern gemeinsam genutzt.
  • Die Standardmethode zur Interaktion mit solchen Systemen erfolgt über eine Befehlszeilenschnittstelle.

Verbinden mit einem entfernten HPC-System


  • Ein HPC-System ist eine Gruppe von vernetzten Maschinen.
  • HPC-Systeme bieten typischerweise Login-Knoten und eine Reihe von Worker-Knoten.
  • Die Ressourcen auf den unabhängigen (Arbeits-)Knoten können in Umfang und Art variieren (Menge des Arbeitsspeichers, Prozessorarchitektur, Verfügbarkeit von über das Netzwerk eingebundenen Dateisystemen usw.).
  • Dateien, die auf einem Knoten gespeichert sind, sind auf allen Knoten verfügbar.

Arbeiten auf einem entfernten HPC-System


  • “Ein HPC-System ist eine Gruppe von vernetzten Maschinen.”
  • “HPC-Systeme bieten normalerweise Anmeldeknoten und eine Reihe von Arbeitsknoten.”
  • “Die Ressourcen, die sich auf unabhängigen (Arbeits-)Knoten befinden, können in Umfang und Art variieren (Menge des Arbeitsspeichers, Prozessorarchitektur, Verfügbarkeit von im Netzwerk eingebundenen Dateisystemen usw.).”
  • “Dateien, die auf einem Knoten gespeichert sind, sind auf allen Knoten verfügbar.”

Grundlagen des Schedulers


  • Der Scheduler verwaltet die Aufteilung der Rechenressourcen zwischen den Benutzern.
  • Ein Job ist einfach ein Shell-Skript.
  • Fordern Sie geringfügig mehr Ressourcen an, als Sie brauchen werden.

Umgebungsvariablen


  • Shell-Variablen werden standardmäßig als Zeichenketten behandelt
  • Variablen werden mit “=” zugewiesen und mit dem Variablennamen, dem “$” vorangestellt ist, abgerufen
  • Verwenden Sie “export”, um eine Variable für andere Programme verfügbar zu machen
  • Die Variable PATH definiert den Suchpfad der Shell

Zugriff auf Software über Module


  • Software mit module load softwareName laden.
  • Entladen von Software mit module unload
  • Das Modulsystem kümmert sich automatisch um Softwareversionen und Paketkonflikte.

Übertragen von Dateien mit entfernten Computern


  • wget und curl -O laden eine Datei aus dem Internet herunter.
  • scp und rsync übertragen Dateien zu und von Ihrem Computer.
  • Sie können einen SFTP-Client wie FileZilla verwenden, um Dateien über eine grafische Benutzeroberfläche zu übertragen.

Ausführen eines parallelen Auftrags


  • Parallele Programmierung ermöglicht es Anwendungen, die Vorteile paralleler Hardware zu nutzen.
  • Das Warteschlangensystem erleichtert die Ausführung von parallelen Aufgaben.
  • Leistungssteigerungen durch parallele Ausführung skalieren nicht linear.

Effektive Nutzung von Ressourcen


  • Präzise Jobskripte helfen dem Warteschlangensystem bei der effizienten Zuweisung gemeinsamer Ressourcen.

Gemeinsame Ressourcen verantwortungsvoll nutzen


  • Seien Sie vorsichtig, wie Sie den Login-Knoten verwenden.
  • Für Ihre Daten auf dem System sind Sie selbst verantwortlich.
  • Planen und Testen großer Datenübertragungen.
  • Es ist oft am besten, viele Dateien vor der Übertragung in eine einzige Archivdatei zu konvertieren.