- Angelegt von Rehs, Philipp Helo, zuletzt geändert am Sept. 30, 2020
Zu Entwicklungszwecken gibt es zwei getrennte Server, welche nur für Compile und Development verwendet werden dürfen. Es gibt ein Walltime-Limit von 4 Stunden und es wird empfohlen interaktive Jobs zu nutzen.
Auf den Servern sind diverse Entwicklungspakete für Standardbibliotheken und Debugger installiert.
Schritt-für-Schritt-Anleitung
Login auf dem Login-Server per ssh
ssh Kennung@hpc.rz.uni-duesseldorf.de
Interaktiven Job anfordern mit 10 Kernen, 10GB Ram und 4 Stunden Walltime
qsub -A Projekt -I -l select=1:ncpus=10:mem=10G -l walltime=3:59:00
Nach wenigen Sekunden werden Sie auf einen der Knoten verbunden.
Nun können Sie auf dem Knoten wie gewohnt Module laden und Code kompilieren
Automatischer Logout
Wenn Sie in ihren interaktiven Jobs Programme starten die möglicherweise schnell wieder beendet sind, empfiehlt es sich der Shell mitzuteilen, dass sie sich automatisch ausloggen soll um die Ressourcen vom Job wieder freizugeben.
Eine einfach Lösung dafür ist es, die Variable TMOUT zu setzen:
if [ ! -z ${PBS_JOBID+x} ]; then TMOUT=3600 readonly TMOUT export TMOUT fi
Damit wird eine interaktive Session innerhalb eines Jobs nach 1 Stunde ohne Eingabe / neue Programmstarts beendet.
Bash History
Die Standard-Shell der interaktiven Session, Bash, protokolliert ausgeführte Befehle auf der Kommandozeile in der sogenannten history analog zu einem Browserverlauf. Dies kann hilfreich sein, um bereits ausgeführte Befehle wiederzuverwenden, ohne sie neu eintippen zu müssen. Durch Eingabe des Befehls history kann der gesamte gespeicherte Verlauf ausgegeben werden. Alternativ können durch Angabe eines Parameters n
(history n
) die letzten n
Befehle angezeigt werden.
History durchsuchen
Der Verlauf kann auch dazu verwendet werden, bereits ausgeführte Befehle zu suchen und direkt in der aktuellen Eingabeaufforderung einzufügen. Dazu dient beispielsweise das Tastenkürzel Ctrl+R. Dann ändert sich der Text der Eingabeaufforderung zu (reverse-i-search)
und es kann ein Suchbegriff eingegeben werden. Die Kommandozeile schlägt automatisch den ersten Treffer zu diesem Suchbegriff vor, durch erneutes Drücken von Ctrl+R
können weitere Treffer angezeigt werden. Die Treffer werden in einer umgekehrt chronlogischen Reihenfolge angezeigt (zuletzt eingegebene Befehle zuerst). Der vorgeschlagene Befehl kann vor der Ausführung noch bearbeitet werden, anschließend mit Enter
die Ausführung bestätigen.
History zwischen verschiedenen Instanzen synchronisieren
Der Verlauf wird normalerweise erst beim Beenden einer interaktiven Session gespeichert. Während der Session ist der aktuelle Verlauf nur für die jeweilige Sitzung sichtbar. Für weitere, parallele Sitzungen desselben Nutzers ist der aktuelle Verlauf nicht sichtbar. Außerdem wird der Verlauf nicht gespeichert, wenn die Sitzung durch PBS beendet wird, z.B. weil die angeforderte Walltime abgelaufen ist.
Um diese Probleme zu addressieren, ist es möglich, den Verlauf nach der Eingabe jedes Befehls direkt zu sichern (und neu zu laden). So sind neue Kommandos direkt für alle Sitzungen desselben Nutzers sichtbar, und der Verlauf geht auch nicht verloren, wenn die Sitzung durch PBS beendet wird. Dazu in der Datei .bashrc
im Benutzerverzeichnis die folgende Zeile anfügen:
echo 'declare PROMPT_COMMAND="history -a;history -r"' >> ~/.bashrc
Von nun an wird jede neue interaktive Session diese Einstellung berücksichtigen und den Verlauf immer sofort speichern.
Kommentar
Anonym sagt:
Verwandter Artikel führt zu falschen Seite!