====== Praktikum „Einführung in Parallele Programmierung für Geowissenschaftler“ ====== ===== Beschreibung ===== Mit dem Praktikum „Einführung in Parallele Programmierung für Geowissenschaftler“ sollen die Studierenden der Geowissenschaften mit der Praxis des Parallelen Programmierens vertraut gemacht werden. Nach dem Auffrischen der FORTRAN Grundkenntnisse werden die theoretischen Konzepte zum parallelen Programmieren (MPI, OpenMP) vorgestellt und mit Hilfe von praktischen Übungen vertieft. Der praktische Teil wird durch die Einarbeitung in Werkzeuge zur Entwicklung und Bewertung von Anwendungen ergänzt. ===== Zielgruppe ===== Für Studierende im Masterstudiengang Meteorologie, Ozeanographie und Geophysik. Grundkenntnisse in FORTRAN sind erforderlich. ===== Daten der Veranstaltung ===== || Ort || [[http://maps.google.com/maps?q=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hl=de&cd=2&ei=BUxYS-GvKIuLOKaotbgJ&sig2=Kv8CBjHeXm8lAVC3XxRrIQ&ie=UTF8&view=map&cid=262423906154203330&ved=0CBsQpQY&hq=DKRZ,+Bundesstra%C3%9Fe+45a,+20146+Hamburg&hnear=&z=16&iwloc=A|DKRZ]], Raum 034 || || Zeit || Donnerstag 16:15 - 17:45 || || Vorbesprechung || Do. 9.4.2015 16:15 im DKRZ, Raum 034 || || Mailingliste || [[http://wr.informatik.uni-hamburg.de/listinfo/ppg-15|PPG-15]] || ===== Dozenten ===== * [[People:Hermann Lenhart]] * [[People:Thomas Ludwig]] ===== Zeitplan und Materialien ===== Grundlegende Info + Sylesheet -- {{:teaching:sommersemester_2015:ppg15-01-einfuehrung-stilesheet.pdf|Info-Blatt}} **Termine** * 09.04. {{:teaching:sommersemester_2015:ppg15--intro-small.pdf|Einführung ins Praktikum}},{{:teaching:sommersemester_2015:ppg15-01-einfuehrung-linux-cluster.pdf|Cluster Einführung}} * 16.4. {{:teaching:sommersemester_2015:ppg15-makefile-small.pdf|Einführung Makefile}}, {{:teaching:sommersemester_2015:ppg15-make-basic.zip|Beispile für Makefile Einführung}} * {{:teaching:sommersemester_2015:ppg15-01-erstes-fortran-program.pdf|Übungsaufgabe Blatt01}},{{:teaching:sommersemester_2015:ppg15-program-glider.zip|Programm zur Darstellung Game of Life - Glider}} * 23.04. {{:teaching:sommersemester_2015:ppg-15-mpi-intro1.pdf|Einführung MPI - I}},{{:teaching:sommersemester_2015:ppg-15-02-mpi-einfach.pdf|Übungsaufgabe Blatt02}} * 30.04. {{:teaching:sommersemester_2014:ppg-14-debugging.pdf|Einführung ins sequentielle Debugging}} * {{teaching:sommersemester_2015:ppg-15-03-fortran-debugging.pdf|Übungsaufgabe Blatt03}}, {{:teaching:sommersemester_2014:sorter.tgz|Material zu Übungsblatt03}} * 07.05. {{teaching:sommersemester_2015:ppg-15-mpi-intro2-scatter.pdf|Einführung MPI - II}}, {{teaching:sommersemester_2015:ppg-15-04-scatter-poisson-problem.pdf|Übungsaufgabe Blatt04}}, * {{:teaching:sommersemester_2015:scatter-beispiel.zip|Material zu Übungsblatt04}} * 19.05. {{teaching:sommersemester_2015:ppg-15-mpi-intro3-scatterv.pdf|Einführung MPI - III}}, {{teaching:sommersemester_2015:ppg15-05-mpi-poisson-jakobi.pdf|Übungsaufgabe Blatt05}}, * {{teaching:sommersemester_2015:ppg15-scatterv-bsp.zip|Material zu Übungsblatt05}} * 04.06. {{teaching:sommersemester_2015:ppg15-06-mpi-poisson-seidel.pdf|Übungsaufgabe Blatt06}} * 11.06. {{teaching:sommersemester_2015:ppg-15-mpi-intro4.pdf|Einführung MPI - IV}}, {{teaching:sommersemester_2015:ppg15-07-mpi-non-blocking-poisson-jakobi-speedup.pdf|Übungsaufgabe Blatt07}}, * {{teaching:sommersemester_2015:ppg15-deadlock.zip|Material zu Übungsblatt07}} * 18.06. {{teaching:sommersemester_2015:ppg-15-openmp-intro1.pdf|Einführung OpenMP - I}}, {{teaching:sommersemester_2015:ppg-15-08-openmp-einfach.pdf|Übungsaufgabe Blatt08}}, * {{teaching:sommersemester_2015:openmp-hallo.tar.gz|Material zu Übungsblatt08}} * 25.06. {{teaching:sommersemester_2015:ppg-15-openmp-intro2.pdf|Einführung OpenMP - II}}, {{teaching:sommersemester_2015:ppg-15-09-openmp-poisson.pdf|Übungsaufgabe Blatt09}} ===== Literaturhinweise ===== **FORTRAN** * Tutorial [[http://wwwasdoc.web.cern.ch/wwwasdoc/WWW/f90/f90.html]] * Wikipedia F95 [[http://en.wikipedia.org/wiki/Fortran_95_language_features]] * Wiki-Tutorial [[http://de.wikibooks.org/wiki/Fortran]] * GNU-FORTRAN Guide [[http://gcc.gnu.org/onlinedocs/gfortran/]] * Liste günstiger Nachschlagewerke vom RRZ Uni-Hamburg. [[http://www.rrz.uni-hamburg.de/publikationen/handbuecher/vom-rrzn-hannover.html]] * davon für FORTRAN: [[http://www.rrzn.uni-hannover.de/buch.html?&no_cache=1&titel=fortran]] * Buch: Modern FORTRAN explained; Metcalf, Reid & Cohen, Oxford University Press 2011 * Buch: Fortran 95/2003 for Scientists adn Engineers, Stephen J. Chapman, McGraw Hill Higher Education, 3rd Edition * Katalog ZMAW Bibliotheks-Ausleihe für FORTRAN: [[https://kataloge.uni-hamburg.de/DB=1.20/CMD?ACT=SRCHA&IKT=1016&SRT=YOP&TRM=fortran]] **OpenMP** * Allgemeine OpenMP Seite: [[http://openmp.org/wp/]] * OpenMP Spezifikationen: [[http://openmp.org/wp/openmp-specifications/]] Hinweis: Version 3.1 enthält als wichtiges neues Sprachmittel das Konzept "Task" * Kurzfassung wichtige OpenMP Direktiven: [[http://openmp.org/mp-documents/OpenMP3.1-FortranCard.pdf]] * Introduction to Parallele Programmierung in Fortran95 using OpenMP by Miguel Hermanns: [[http://www.openmp.org/presentations/miguel/F95_OpenMPv1_v2.pdf]] * Buch: Using OpenMP (Stand 2.5), Stephen J. Chapman, Gabriel Lost, Ruud van de Pas, MIT Press, Cambridge, Massachusetts, U.S.A. **MPI** * Buch: Using MPI, W. Gropp, E. Lusk, A. Skjellum, MIT Press, Cambridge, Massachusetts, U.S.A. * MPI-Kurs: Writing Message Passing Parallel Programms with MPI (2009), MacDonald, Minty, Harding, Brown & Baumann: [[http://www.zib.de/zibdoc/mpikurs/mpi-course.pdf]] * Kurzeinführung in MPI anhand von Beispielen: [[http://hamilton.nuigalway.ie/teaching/AOS/NINE/mpi-first-examples.html]] * MPI Standard: [[http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf]] * MPI Befehlsübersicht: [[http://www.mcs.anl.gov/research/projects/mpi/www/www3/]] **Makefile** * Makefile Tutorial: [[http://www.gnu.org/software/make/manual/make.html]] * Makefile Beispiele: [[http://www.webalice.it/o.drofa/davide/makefile-fortran/makefile-fortran.html]] * Makefile Tutorial: [[http://makepp.sourceforge.net/1.19/makepp_tutorial.html]] **VampirTrace & Vampir** * Cheatsheet: [[http://www.vampir.eu/public/files/pdf/vtcheatsheet_a4.pdf]] * Tutorial: [[http://www.vampir.eu/tutorial/manual/performance_data_visualization]] * Übersicht: [[http://www.tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/software_werkzeuge_zur_unterstuetzung_von_programmierung_und_optimierung/vampirtrace|Link Tu Dresden]]