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
undcurl -O
laden eine Datei aus dem Internet herunter. -
scp
undrsync
ü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.