Erste Schritte auf den Hochleistungsrechnern

Transcription

Erste Schritte auf den Hochleistungsrechnern
Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH)
Erste Schritte auf den
Hochleistungsrechnern am ZIH
Zellescher Weg 12
HRSK 151
Tel. +49 351 - 463 - 32424
Michael Kluge (michael.kluge@tu-dresden.de)
Einführung in das Hochleistungsrechnen am ZIH
Agenda
8.30 –
9.00 Uhr: Überblick zu den Rechnern am ZIH
9.00 – 10.00 Uhr: Architektur der Hochleistungsrechner
10.00 – 10.15 Uhr: Pause
10.15 – 11.30 Uhr: Erste Schritte auf den Hochleistungsrechnern
11.30 – 12.30 Uhr: Mittagspause
12.30 – 13.15 Uhr: Compiler und Bibliotheken
13.15 -- 14:30 Uhr: Dateisysteme und LSF
14.30 – 14.45 Uhr Pause
14.45 – 16.00 Uhr Programmentwicklung und Performance-Analyse
Michael Kluge
Inhalt
Linux
Loginantrag
Netzwerk
Login
Aufrufen von Programmen
Umgebungsvariablen
Editoren
Erste Bewegungen
Michael Kluge
Linux
plattformunabhängiges MehrnutzerBetriebssystem
erste öffentliche Kernel-Version 1991
(Linus Torvalds)
"Linux" an sich ist nur der Kernel plus die
Gerätetreiber
seit 1983 GNU-Projekt mit dem Ziel, ein
freies UNIX-ähnliches Betriebssystem zu
schaffen
seit 1993 steht Linux unter der GNU
public license Æ GNU/Linux
Bereitstellung/Verwendung im Rahmen
einer Distribution
Michael Kluge
Linux - Distributionen
Michael Kluge
Linux - Architektur
Aufgabe:
– Abstraktion von Hardware
– Verwaltung der zur Verfügung stehenden Ressourcen
– Rechnerunabhängiges Interface
– modular, monolithisch
Nutzer
Anwenderprogamme
Bibliotheken
libc
Kern
System-Aufrufe (brk,trap etc.)
Kernel (Gerätetreiber, Scheduler etc.)
Hardware
Michael Kluge
Linux - Bestandteile
Kernel
Systembibliotheken
Dateisysteme ( xfs, ext2, ext3, reiser, …)
Graphische Oberflächen:
– KDE
– Gnome
– FWM, …
Browser, Mailprogramme
Musik-/Videobearbeitung
OpenOffice
Webserver, Skriptsprache
Tools
Æ nur ein Teil ist auf den Hochleistungsrechnern installiert
Michael Kluge
Linux - Organisation des Speichers
Code
Daten
größte Adresse
Heap
frei
durch Betriebssystem initialisiert und belegt
gemeinsam genutze Bibliotheken
Nutzercode + Daten aus dem Binary
dynamisch zur Laufzeit allokiert
frei
Michael Kluge
Stack
shared
libraries
Hardware
kleinste Adresse
Betriebssystem
Loginantrag
Login nur mit Projekt
http://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/
zih/dienste/formulare
Verbunden mit einem Login auf den zentralen Login-Rechnern (wird
automatisch mit angelegt)
Laufzeit: bis Projektende
ggf. jährliche Verlängerung notwendig
berechtigt zum Abruf der im Projekt festgelegten CPU-Stunden
Michael Kluge
Loginantrag
Michael Kluge
Loginantrag
Michael Kluge
Antrag -> Login
Problem: Hochleistungsrecher steht im Rechnerraum,
Anwender sitzt im Institut
Terminal
1978: VAX-11/780
Michael Kluge
Arbeit auf den Hochleistungsrechnern heute
SSH
Client
SSH
Daemon
Campus
LAN
HRSK-Anbau
Institute
Internet
Michael Kluge
Login: Windows
Clients:
– putty:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
– ssh-Client:
http://www.ssh.com/support/downloads/secureshellwks/
non-commercial.html
wichtige Daten:
– Hostname/IP-Adresse
– Loginname/Passwort
gegebenfalls:
– Portnummer: 22
– X11 forwarding einschalten
Michael Kluge
Login - putty
Hostname oder
IP-Adresse, z.B.:
mars.hrsk.tu-dresden.de
141.30.63.202
deimos.hrsk.tu-dresden.de
141.30.63.212
bei 'Session' …
Michael Kluge
Login - putty
Login, z.B.:
hpclab30
bei 'Data' …
Michael Kluge
Login - putty
Einschalten
Fehlermeldung
X connection to mars:28.0
broken (explicit kill or server
shutdown).
bei 'X11' …
Michael Kluge
Login - ssh-Client
Hostname oder
IP-Adresse, z.B.:
mars.hrsk.tu-dresden.de
141.30.63.202
Login, z.B.:
hpclab30
Quick Connect
Michael Kluge
Login - ssh-Client (Menu Edit->Settings)
Einschalten
Tunneling
Michael Kluge
Login: Linux / Mac OS X
Terminal öffnen
Kommandozeile: ssh [-X] LOGIN@RECHNER
mkluge@phobos:[mkluge]$ ssh mars.hrsk.tu-dresden.de
The authenticity of host 'mars.hrsk.tu-dresden.de (141.30.63.202)' can't be
established.
RSA key fingerprint is 08:3b:da:02:1d:ff:a8:cf:26:27:96:16:86:07:a2:a9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mars.hrsk.tu-dresden.de' (RSA) to the list of
known hosts.
Password:
Last login: Mon Feb 26 09:35:12 2007 from 141.30.59.72
mkluge@mars:~>
Michael Kluge
Login: Linux / Mac OS X
mkluge@mars:~> nodestat
---------------------------------------------------------------------------nodes available:
4/4
nodes damaged:
0
------------------------------------+--------------------------------------jobs running:
9
|
cores closed (exclusive jobs): 0
jobs wait:
7
|
cores closed by ADMIN:
0
jobs suspend:
0
|
cores working:
1018
jobs damaged:
0
|
------------------------------------+--------------------------------------normal working cores:
1872
cores free for jobs:
854
---------------------------------------------------------------------------mkluge@mars:~>
Michael Kluge
X11 forwarding
ermöglicht das Ausführen von X11-Anwendungen
– graphisches Display
– z.B.: nedit, mozilla, xclock
benötigt lokalen Client
– Windows:
• Exceed
http://www.hummingbird.com/products/nc/exceed
• X-Win32 http://www.starnet.com
• cygwinhttp://www.cygwin.com
• haben ssh-Client automatisch mit dabei
– Linux:
• automatisch dabei
– Mac OS X:
• http://www.apple.com/downloads/macosx/apple/x11formacosx.html
X11 forwarding muss im ssh-Client eingeschalten sein
Michael Kluge
Wo bin ich?
Aktuelle Nachrichten ueber kurzfristige Wartungen, Bitte Lesen!
Projekt, Laufende Jobs, freie CPUs, default Compiler
Michael Kluge
Verzeichnisstrukturen unter Linux
keine verschiedenen Laufwerke
alle Verzeichnisse hängen an einem Stamm-Verzeichnis '/'
jeder Nutzer hat ein eigene Home-Verzeichnis,
typischerweise unter /work/home/<login>
Konfigurationsdateien liegen unter /etc
per Verzeichnis bzw. Datei können individuelle Schreib- und Leserechte
gesetzt werden
Nutzer hat unbeschränkte Rechte in seinem eigenen Home-Verzeichnis
Nutzer hat üblicherweise keine sonstigen Schreibrechte in anderen
Verzeichnissen
spezielle Verzeichnisnamen, die immer existieren:
. das aktuelle Verzeichnis
..das übergeordnete Verzeichnis
~ Verweis auf das Home-Verzeichnis
Michael Kluge
Verzeichnisstrukturen unter Linux
/
home
alf
bin
bernd
dev
etc
sys
var
log
ralf
Michael Kluge
usr
lib
Hilfe auf der Kommandozeile
generell
man <Kommando>
Hilfe zu man
man man
Suche in der man-Datebank
man -k <Begriff>
Hilfe zu Shell-Bultins
help <builtin>
mkluge@merkur:~> man -k printf
vasprintf (3)
- print to allocated string
vwprintf (3p)
- wide-character formatted output .
vfprintf (3)
- formatted output conversion
swprintf (3)
- formatted wide character output conversion
snprintf (3)
- formatted output conversion
…
Begriff
Sektion
Michael Kluge
Erklärung
Sektionen von man
1
Executable programs or shell commands
2
System calls (functions provided by the kernel)
3
Library calls (functions within program libraries)
4
Special files (usually found in /dev)
5
File formats and conventions eg /etc/passwd
6
Games
7
Miscellaneous (including macro packages and conventions),
e.g. man(7), groff(7)
8
System administration commands (usually only for root)
9
Kernel routines [Non standard]
Suche zuerst in 1. Sektion, dann 2. etc.
der erste Treffer wird angezeigt
man <Sektion> Begriff
Michael Kluge
Eingabe von Kommandos
generell: Kommando [Optionen] Eingabedaten
– z.B. icc -o binary source.c
Optionen:
– Kurzversion, z.B.
-o
– Langversion, z.B.
--output
– Versionen
-v, -V, -version, --version
– Hilfe
-h,-help,--help
– mit einem, bzw. ohne Argument
-o <file>
– mit mehreren Argumenten -o <file1> <file2> … <fileN> -Umleitung von Ausgaben
Kommando >ausgabedatei
Eingaben aus einer Datei lesen Kommando <eingabedatei
Michael Kluge
Eingabe von Kommandos - Pipes
Weiterleitung des Ausgaben eines Programmes an ein anderes Programm,
zwei Kommandos werden mit | verbunden
vermeidet das Zwischenspeichern
statt
Æ
Prozess
Prozess
Datei
+
Systempuffer
Beispiele:
ls | sort
ls -la | less
Michael Kluge
Datei
Prozess
Prozess
Bewegen auf der Kommandozeile - Arbeit mit Dateien
aktuelles Arbeitsverzeichnis
pwd
Liste aller Dateien in einem Verzeichnis
ls
wechseln in ein anderes Verzeichnis
cd <Verzeichnis>
wechseln in Home-Verzeichnis
cd
Verzeichnis anlegen
mkdir
leeres Verzeichnis löschen
rmdir
Datei löschen
rm
Rechte für Datei/Verzeichnis setzen
chmod
Eigentümer einer Datei setzen
chown
Gruppenzugehörigkeit einer Datei setzen
chgrp
Datei/Verzeichnis kopieren
cp
Datei/Verzeichnis umbenennen
mv
Ausgabe von Text
echo
Prozess beenden/Signal senden
kill
Michael Kluge
Exkurs: Rechte unter Linux interpretieren
Drei Rechte-Ebenen: Eigentümer, Gruppe, Andere
Drei Rechte pro Ebene: Lesen (r), Schreiben (w), Ausführen (x)
ls -l <Datei/Verzeichnis>
Beispiel:
– Nutzer darf alles, Gruppe und alle anderen nur Lesen und Ausführen
mkluge@merkur:[mkluge]$ ls -l a.out
-rwxr-xr-x 1 mkluge zih 18741 2006-03-20 19:28
Andere
Eigentümer
Gruppe
- Datei
d Verzeichnis
Michael Kluge
a.out
Exkurs: Rechte unter Linux setzen
setzen mit chmod
indirekt mir Angabe, welches Recht entzogen/gewährt werden soll
– Rechteebenen werden mit: u, g oder a angesprochen
– Rechte entzogen wird mit -, gewährt wird mit +
– Beispiel: Andere dürfen jetzt schreiben chmod a+w <Datei>
– Beispiel: Gruppe darf gar nichts mehr chmod g-rwx <Datei>
direkt durch Angabe der neuen Rechte, siehe man chmod
Bei Verzeichnissen heißt x, dass der Inhalt des Verzeichnisses aufgelistet
werden darf
Michael Kluge
Kommandozeile - weitere Tools
was ist auf dem System los
top
top -u <login>
file
Beobachtung der Prozesse die unter <login> laufen
Typ einer Datei bestimmen
mkluge@merkur:[mkluge]$ file a.out
a.out: ELF 64-bit LSB executable, IA-64 (Intel 64 …
size
Größe eines ausführbaren Programmes im Speicher
mkluge@merkur:[mkluge]$ size a.out
text
data
bss
dec
hex filename
6332
1020
16
7368
1cc8 a.out
ldd
Abhängigkeiten von Bibliotheken anzeigen
locate
Suche nach Dateien
nm
Symbole in einer Bibliothem/einem Binary anzeigen
ps
Prozesse anzeigen
Michael Kluge
Kommandozeile - Beispiel top
Michael Kluge
Kommandozeile - Platzhalter (bash)
zwei Jokerzeichen
– * steht für eine beliebige Zeichenkette
– ? steht für ein beliebiges Zeichen
Kombinationen aus normalem Text und Jokerzeichen sind zulässig
Beispiele:
– Auflisten aller Dateien in einem Verzeichnis
ls *
– Dateien, die mit a anfangen und mit t enden
ls a*t
– Dateien, die vier Zeichen als Dateinamen haben
ls ????
[] gibt einen Bereich für Zeichen an, dahinter kann optional ein Wiederhol-Flag
gesetzt werden
– Datei mit den Name 0,1,…,9
ls [0-9]
– Datei mit den Name daten0,dateb1,…,daten9 ls daten[0-9]
– Dateien, die nur Kleinbuchstaben im Namen haben
Michael Kluge
ls [a-z]*
Umgebungsvariablen
SHELL-Variablen mit vorgegebenem Namen
setzen von Variablen mit: WO=wert
Abfrage mit: echo $WO Æ wert
Exportieren mit export für Kinderprozesse
Bedeutung spezieller Variablen:
– PATH
Verzeichnisse, in denen nach Binaries gesucht wird
– LD_LIBRARY_PATH Verzeichnis für Bibliotheken
– MAN
Verzeichnisse für man pages
– HOME
das eigene Home-Verzeichnis
– USER, PWD, SHELL, TERM, …
An eine Umgebungsvariable einen Wert anhängen:
– Trennung mehrerer Werte durch Doppelpunkt
– export PATH="$PATH:/home/ich/bin"
Michael Kluge
Module für Umgebungsvariablen
Module bearbeiten Umgebungsvariablen so, dass Anwengungspakete ihre
Bibliotheken und Binaries finden
verfügbare Module
module avail
gerade geladene Module
module list
Module laden
module load <name>
Module entladen
module rm <name>
Module tauschen
module switch <1> <2>
Module für:
– Compiler, Debugger
– Performanceanalysetools
– Kommerzielle Software (Matlab, Fluent, …)
– Bibliotheken
Michael Kluge
Editoren
vi mächtiges Werkzeug, gewöhnungsbedürftig
– GUI mit gvim
– http://www-user.tu-chemnitz.de/~hot/VIM/VIM/vikurz.html
– http://vimdoc.sourceforge.net
– http://tnerual.eriogerg.free.fr/vimqrc.pdf
emacs ebenso wie vi
– GUI mit xemacs
– http://www.gnu.org/software/emacs
– http://refcards.com/refcards/gnu-emacs/index.html
nedit erleichtert den Umstieg
Michael Kluge
Kopieren von Daten zu anderen Systemen
einfach Verbindungen:
– ftp
Veschlüsselung erwünscht:
– secure copy (scp)
– secure ftp (sftp)
Windows:
– WinSCP
http://winscp.net/eng/docs/lang:de
– SCP Client
http://www.ssh.com
– pscp
http://www.chiark.greenend.org.uk/~sgtatham/putty/
download.html
Linux:
– scp
Kopieren von Daten
– rsync
Synchronisieren von Unterschieden
Michael Kluge
WinSCP
Michael Kluge
WinSCP
Michael Kluge
Kopieren/Synchronisieren: Kommandozeilentools
scp [-r] <Quelle> <Ziel>
dabei kann Quelle oder Ziel eine entfernte Adresse sein
login@rechner:pfad
z.B.
scp -r inst_v mike@rxt07.urz.tu-dresden.de:./backup/
ist weder Ziel noch Quelle eine entfernte Adresse, verhält sich scp wie cp
Beispiel rsync:
rsync -vz inst_v mike@rxt07.urz.tu-dresden.de:./backup/
Michael Kluge
Verhaltensregeln
nur kurze Programmläufe im Boot CPU-Set
für längere Tests empfiehlt sich ein interaktiver Job
Logins bitte nicht offen stehen lassen
vernünftige Passwörter
mehr Unterstützung?
hpcsupport@zih.tu-dresden.de
Michael Kluge