057.020 VSC-School I Kurse zum Thema Hochleistungsrechnen
Diese Lehrveranstaltung ist in allen zugeordneten Curricula Teil der STEOP.
Diese Lehrveranstaltung ist in mindestens einem zugeordneten Curriculum Teil der STEOP.

2019W, VU, 2.0h, 1.5EC, wird geblockt abgehalten

Merkmale

  • Semesterwochenstunden: 2.0
  • ECTS: 1.5
  • Typ: VU Vorlesung mit Übung

Lernergebnisse

Nach positiver Absolvierung der Lehrveranstaltung sind Studierende in der Lage

1) Linux und erste Schritte auf den Systemen des VSC

  • sich mittels Secure Shell (SSH) auf den Systemen des VSC einzuloggen und die eigene Arbeitsumgebung unter Linux individuell so zu konfigurieren, dass die Arbeit am Cluster beschleunigt wird,
  • zumindest einen gängigen Text-Editor zu verwenden, um Text-Dateien gezielt zu modifizieren,
  • die 25 wichtigsten Linux Zeilenkommandos anzuwenden, zum Beispiel um Dateien zu erstellen, zu kopieren, zu verschieben und zu löschen,
  • Shell-Skripte zu erstellen, welche einfache Abfolgen von Kommandos automatisiert ausführen. 

2) Einführung in die Arbeit auf den Systemen des VSC

  • in Wort und Skizze zu beschreiben, wie ein typischer High-Performance Computing Cluster aufgebaut ist, 
  • die Funktionsweise des Batch-Systems am VSC zu beschreiben,
  • den notwendigen Workflow für die eigene Forschungsarbeit zu entwickeln,
  • das Module Environment am VSC zu verwenden,
  • Programme am VSC zu kompilieren,
  • Batch-Jobs für den am VSC eingesetzten Workload-Manager SLURM zu erstellen und diese zur Ausführung abzusenden,
  • den Status der zur Ausführung gesandten Jobs zu überprüfen und nach deren Abarbeitung den Erfolg des Jobs zu kontrollieren, v.a. in Bezug auf korrektes Durchlaufen des Jobs und auf die Laufzeit.

3) Parallelisierung mit MPI (Message Passing Interface)

  • zwischen reinen shared-memory Architekturen und High-Performance Computing Clustern (Kombination von distributed-memory und shared-memory Architekturen) zu unterscheiden und die Konsequenzen, die das für die Parallelisierung und Abarbeitung von Programmen hat, zu benennen,
  • die wichtigsten Vor- und Nachteile der Parallelisierungskonzepte (distributed-memory, shared-memory und hybride Parallelisierung) zu erklären,
  • situationsabhängig die geeignetste Methode auszuwählen,
  • die essentiellen Konzepte des Message Passing Interface (MPI) zu beschreiben,
  • die Kommunikation der einzelnen MPI-Prozesse untereinander sowie die im allgemeinen implizite Synchronisation der einzelnen MPI-Prozesse zu beschreiben,
  • ein paralleles Programm unter Verwendung von MPI zu erstellen,
  • ein serielles Programm mittels MPI zu parallelisieren,
  • Methoden der MPI-Kommunikation auszuwählen, die Deadlocks verhindern und die Korrektheit des Programms gewährleisten,
  • diese Kommunikationsmethoden bezüglich der Laufzeit des parallelen Programms auf einem speziellen Cluster zu vergleichen,
  • aus den letzten beiden Punkten die beste Methode der MPI-Kommunikation auf diesem speziellen Cluster zu ermitteln,
  • allfällige Fehler in MPI-Programmen zu identifizieren und
  • identifizierte Fehler in MPI-Programmen zu beheben.

 

Inhalt der Lehrveranstaltung

1) Linux und erste Schritte auf den Systemen des VSC

  • Grundsätzlicher Aufbau eines High-Performance Computing Clusters und den konkreten Aufbau des VSC,
  • Einloggen am VSC und Transfer von Dateien zwischen Arbeitsplatzrechner und VSC,
  • die wichtigsten Linux Zeilenkommandos und das Arbeiten mit einem Text-Editor,
  • die 25 wichtigsten Funktionen einer Linux-Shell und das Erstellen von Shell-Skripten,
  • Konfiguration der eigenen Arbeitsumgebung durch Setzen von Environment-Variablen und durch Editieren von Konfigurationsfiles.

2) Einführung in die Arbeit auf den Systemen des VSC

  • Aufbau eines High-Performance Computing Clusters, Unterschied zwischen Login- und Compute-Knoten und Unterschied zwischen shared-memory und distributed-memory Architekturen,
  • konkreter Aufbau des VSC und ein kurzer Überblick über die verfügbare Spezial-Hardware, etwa Grafik-Karten,
  • das Module Environment am VSC und das Kompilieren eigener Programme am VSC,
  • der Workload-Manager SLURM, dessen Funktionsweise und wichtigste Optionen,
  • die wichtigsten Möglichkeiten der Datenspeicherung am VSC,
  • einzelne Arbeitsschritte auf den Systemen des VSC.

3) Parallelisierung mit MPI (Message Passing Interface)

  • Die wichtigsten Methoden der Parallelisierung von Programmen auf High-Performance Computing Clustern (distributed-memory vs. shared-memory Architekturen), deren wichtigste Vor- und Nachteile,
  • situationsabhängige Auswahl der geeignetsten Methode,
  • alle Aspekte des aktuellen Standards für MPI im Überblick und deren Anwendungsfelder,
  • die essentiellen Konzepte von MPI im Detail,
  • die programmtechnische Implementierung der unterschiedlichen Möglichkeiten der MPI-Kommunikation,
  • konkret formulierten Aufgabenstellungen zur praktischen Erstellung von parallelen MPI-Programmen.

 

Methoden

1) Linux und erste Schritte auf den Systemen des VSC

Vortrag über:

  • den grundsätzlichen Aufbau eines High-Performance Computing Clusters und den konkreten Aufbau des VSC.

Vortrag und praktische Übungen zu:

  • Einloggen am VSC und den Transfer von Dateien zwischen Arbeitsplatzrechner und VSC,
  • den wichtigsten Linux Zeilenkommandos und das Arbeiten mit einem Text-Editor,
  • den wichtigsten Funktionen einer Linux-Shell und das Erstellen von Shell-Skripten,
  • Konfiguration der eigenen Arbeitsumgebung durch Setzen von Environment-Variablen und durch Editieren von Konfigurationsfiles.

2) Einführung in die Arbeit auf den Systemen des VSC

Vortrag über:

  • den Aufbau eines High-Performance Computing Clusters, den Unterschied zwischen Login- und Compute-Knoten und den Unterschied zwischen shared-memory und distributed-memory Architekturen,
  • den konkreten Aufbau des VSC und ein kurzer Überblick über die verfügbare Spezial-Hardware, etwa Grafik-Karten.

Vortrag und praktische Übungen über:

  • das Module Environment am VSC und das Kompilieren eigener Programme am VSC,
  • den Workload-Manager SLURM, dessen Funktionsweise und wichtigste Optionen,
  • die wichtigsten Möglichkeiten der Datenspeicherung am VSC,
  • einzelne Arbeitsschritte auf den Systemen des VSC.

3) Parallelisierung mit MPI (Message Passing Interface)

Vortrag über:

  • die wichtigsten Methoden der Parallelisierung von Programmen auf High-Performance Computing Clustern (distributed-memory vs. shared-memory Architekturen), deren wichtigste Vor- und Nachteile
  • situationsabhängige Auswahl der geeignetsten Methode,
  • alle Aspekte des aktuellen Standards für MPI im Überblick und deren Anwendungsfelder,
  • die essentiellen Konzepte von MPI im Detail.

Vortrag und praktische Übungen über:

  • die programmtechnische Implementierung der unterschiedlichen Möglichkeiten der MPI-Kommunikation.

Praktische Übungen zu:

  • konkret formulierten Aufgabenstellungen nach jedem neuen Thema zur praktischen Erstellung von parallelen MPI-Programmen, die eigenständig allein oder in Zweierteams zu bewältigen sind,
  • Diskussion der Teilnehmer_innen untereinander sowie im Einzelgespräch mit den Kursleiterinnen.

 

Prüfungsmodus

Prüfungsimmanent

Weitere Informationen

DIe Lehrveranstaltung ist in einzelne Blöcke unterteilt. DIe Anmeldung zu den einzelnen Blöcken erfolgt über die Homepage der Lehrveranstaltung.

Vortragende

Institut

LVA Termine

TagZeitDatumOrtBeschreibung
Di.14:00 - 18:0008.10.2019 FH Schulungsraum TU.it (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Linux und erste Schritte auf den Systemen des VSC
Di.09:00 - 16:0015.10.2019 FH Schulungsraum TU.it (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Einführung in die Arbeit auf den Systemen des VSC
09:00 - 16:3006.11.2019 - 08.11.2019 FH Internet-Raum FH1 (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Parallelisierung mit MPI (Message Passing Interface)
Di.09:00 - 16:0014.01.2020 FH Schulungsraum TU.it (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Einführung in die Arbeit auf den Systemen des VSC
VSC-School I Kurse zum Thema Hochleistungsrechnen - Einzeltermine
TagDatumZeitOrtBeschreibung
Di.08.10.201914:00 - 18:00 FH Schulungsraum TU.it (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Linux und erste Schritte auf den Systemen des VSC
Di.15.10.201909:00 - 16:00 FH Schulungsraum TU.it (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Einführung in die Arbeit auf den Systemen des VSC
Mi.06.11.201909:00 - 16:30 FH Internet-Raum FH1 (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Parallelisierung mit MPI (Message Passing Interface)
Do.07.11.201909:00 - 16:30 FH Internet-Raum FH1 (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Parallelisierung mit MPI (Message Passing Interface)
Fr.08.11.201909:00 - 16:30 FH Internet-Raum FH1 (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Parallelisierung mit MPI (Message Passing Interface)
Di.14.01.202009:00 - 16:00 FH Schulungsraum TU.it (TU Wien, Wiedner Hauptstraße 8-10, Erdgeschoß, roter Bereich)Einführung in die Arbeit auf den Systemen des VSC
LVA wird geblockt abgehalten

Leistungsnachweis

Die Leistungsüberprüfung erfolgt einerseits durch Teilnahme an den Kursen und durch Überprüfung der abgegebenen Programm-Beispiele.

LVA-Anmeldung

Anmeldemodalitäten:

Diese Lehrveranstaltung wird in Blöcken abgehalten, siehe auch http://vsc.ac.at/training.

Anmeldung zu den einzelnen Blöcken bitte im entsprechenden Kurs auf http://vsc.ac.at/training.

Kontakt für diese Lehrveranstaltung: vsc-seminar@list.tuwien.ac.at

Curricula

StudienkennzahlSemesterAnm.Bed.Info
ALG Für alle Hörerinnen/Hörer

Literatur

Es wird kein Skriptum zur Lehrveranstaltung angeboten.

Vorkenntnisse

Benötigte Vorkenntnisse für die einzelnen Lehrveranstaltungs-Blöcke:

1) Linux und erste Schritte auf den Systemen des VSC

  • keine Vorkenntnisse erforderlich

2) Einführung in die Arbeit auf den Systemen des VSC

  • Die Studierenden sind in der Lage, die als Lernergebnisse von Block 1 (Linux) entwickelten Fähigkeiten selbständig anzuwenden.

3) Parallelisierung mit MPI (Message Passing Interface)

  • Die Studierenden sind in der Lage, die als Lernergebnisse von Block 1 (Linux) entwickelten Fähigkeiten selbständig anzuwenden und können ein serielles Programm in mindestens einer der Programmiersprachen C/C++ oder Fortran erstellen, kompilieren und ausführen. 

Vertiefende Lehrveranstaltungen

Weitere Informationen

Sprache

Englisch