Difference between revisions of "Masterpraktikum Scientific Computing - High Performance Computing - Winter 10"
Line 49: | Line 49: | ||
= Folien = | = Folien = | ||
− | * 26.10.2010: [http://www5.in.tum.de/lehre/praktika/wissprak/WS10/blatt01/slides_01.pdf Vektorisierung] | + | * 26.10.2010: [http://www5.in.tum.de/lehre/praktika/wissprak/WS10/blatt01/slides_01.pdf Vektorisierung] | [http://www5.in.tum.de/lehre/praktika/wissprak/WS10/Organisatorisches.pdf Organisatorisches] |
= Übungsblätter = | = Übungsblätter = |
Revision as of 18:35, 26 October 2010
- Term
- Winter 10
- Lecturer
- Univ.-Prof. Dr. Hans-Joachim Bungartz,
Thomas Auckenthaler,
Wolfgang Eckhardt - Time and Place
- Dienstag, 15:00 bis 16:30 im Raum 02.07.023
- Audience
- Masterpraktikum (Modul IN2106), Wahlpflichtpraktikum im Bereich theoretische Informatik (Modul IN8904)
Studierende im Masterstudiengang Informatik, Studierende der Informatik im Hauptstudium, Studierende der Techno-, Diplom- und Finanz-Mathematik
- Tutorials
- -
- Exam
- -
- Semesterwochenstunden / ECTS Credits
- 6 SWS / 10 Credits
- TUMonline
- {{{tumonline}}}
Aktuelles
- Nächstes Treffen: Dienstag, 9. November 2010, 15:00 Uhr, Raum 02.07.23
Inhalt
Leistungsfähige Programme, die die Eigenschaften schneller Rechnersysteme voll ausnutzen sind heute wichtige Wettbewerbsfaktoren in Forschung und Industrie. Die maximale Rechenleistung eines durchschnittlichen Arbeitsplatzrechners wurde in den letzten Jahren drastisch gesteigert. Begriffe wie SSE, EPIC, Dual-core, Multithreading usw. sprießen im Wettlauf der Hardwarehersteller wie Pilze aus dem Boden. Das Praktikum "Wissenschaftliches Rechnen" beschäftigt sich mit den Konzepten, die hinter diesen Schlagwörtern stehen, mit deren Einfluss auf den Entwurf und die Programmierung rechenintensiver Programme sowie mit der Implementierung dieser Programme auf leistungsstarken Rechnern und Rechenclustern.
Die Veranstaltung vermittelt den TeilnehmerInnen ein Verständnis für leistungsorientierte Datenstrukturen und Algorithmen der seriellen und parallelen Programmierung. Die Besonderheiten der einzelnen Plattformen werden besprochen und am Laufzeitverhalten numerischer Algorithmen verifiziert.
Konkrete Themen sind etwa:
- Performance-Optimierung sequentieller Programme
- Pipelining
- Loop unrolling
- Vermeidung von Datenabhängigkeiten
- Cache-Effizienz
- Cache blocking
- Performance-Messung
- Pipelining
- Vorstellung aktueller Hardware
- CPUs
- Speicherarchitekturen
- Supercomputer
- Parallele Programmierung
- Parallelisierung auf Systemen mit gemeinsamem Speicher (OpenMP)
- Parallelisierung auf Systemen mit verteiltem Speicher (MPI)
- GPGPU-Programmierung mit CUDA
- Lastbalancierung
Das Praktikum gliedert sich in zwei Teile. Im ersten Teil werden die grundlegenden Begriffe, Konzepte und Programmiertechniken eingeführt. Hier sind auf jedem Übungsblatt mehrere Aufgaben teils theoretisch, teils praktisch von jeder Übungsgruppe zu lösen. Im zweiten Teil bearbeitet jede Übungsgruppe ein Projekt. Hier wird das im ersten Teil Erlernte an einem praktischen Beispiel angewandt. Nähere Informationen erhalten die Teilnehmer in der Vorbesprechung.
Voraussetzungen
- Kenntnisse in der C-Programmierung unter Linux hilfreich
Folien
- 26.10.2010: Vektorisierung | Organisatorisches
Übungsblätter
- 26.10.2010: Übungsblatt 1 | Code
Material
- MPI 2.2 Standard: http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf
- OpenMP Tutorial: https://computing.llnl.gov/tutorials/openMP/
- Intel C++ Compiler Referenz: http://software.intel.com/sites/products/documentation/hpc/compilerpro/en-us/cpp/lin/main_cls_lin.pdf
- Intel Architecture Manuals: http://www.intel.com/products/processor/manuals/index.htm
- Nvidia Cuda Homepage: http://www.nvidia.de/object/cuda_what_is_de.html