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