====== 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 || [[https://www.uni-hamburg.de/onTEAM/campus/index.html?loc=i12340438|DKRZ]], Raum 034 || || Zeit || Donnerstag 16:15 - 17:45 || || Vorbesprechung || Do. 6.4.2017 16:15 im DKRZ, Raum 034 || || Mailingliste || [[https://wr.informatik.uni-hamburg.de/listinfo/ppg-17|PPG-17]] || ===== Dozenten ===== * [[People:Hermann Lenhart]] * [[People:Thomas Ludwig]] ===== Zeitplan und Materialien ===== **Termine** * 6.04. Vorbesprechung:{{:teaching:sommersemester_2017:ppg17-intro-open.pdf|Kursübersicht}} {{:teaching:sommersemester_2017:ppg17-01-einfuehrung-linux-cluster.pdf|Einführung WR-Lehre Cluster}} * 13.04. {{teaching:sommersemester_2017:ppg-17-makefile.pdf|Einführung Makefile}}, {{teaching:sommersemester_2017:ppg-17-makefile-example.zip|Beispiele für Makefile Einführung}},{{teaching:sommersemester_2017:ppg-17-01-einfuehrung-stilesheet.pdf|Info und Stylesheet zu Übungen}}, {{teaching:sommersemester_2017:ppg-17-01-erstes-fortran-program.pdf|Übungsblatt01}},{{teaching:sommersemester_2017:ppg-17-glider.zip|Programm zur Darstellung Game of Life}} * 20.04. {{teaching:sommersemester_2017:ppg-17-folien-debugging-tim.pdf|Einführung Seq. Debugging}},{{teaching:sommersemester_2017:ppg-17-gdb-cheat-sheet.pdf|Info GDB cheatsheet}},{{teaching:sommersemester_2017:ppg-17-02-fortran-debugging.pdf|Übungsblatt02}},{{teaching:sommersemester_2017:debugging-sortier-programm.tar.gz|Programm zu Übungsblatt02}} * 27.04. {{teaching:sommersemester_2017:ppg-17-parallel-prog-intro-small.pdf|Einführung Parallele Programmierung}}, {{teaching:sommersemester_2017:ppg-17-03-poisson-problem.pdf|Übungsaufgabe Blatt03}},{{teaching:sommersemester_2017:ppg-17-poisson-struktur.tar.gz|Blatt03-Programmstruktur}},{{:teaching:sommersemester_2016:ppg16-03-poisson-solution.pdf|Musterlösung Blatt03}} * 4.05. {{teaching:sommersemester_2017:ppg-17-mpi-intro.pdf|Einführung MPI}}, {{teaching:sommersemester_2017:ppg-17-04-mpi-einfach.pdf|Übungsaufgabe Blatt04}} * 11.05. {{teaching:sommersemester_2017:ppg-17-mpi-intro2-kollektiv.pdf|Einführung MPI kollektive Befehle}}, {{teaching:sommersemester_2017:ppg-17-05-scatter-visual.pdf|Übungsaufgabe Blatt05}} * 18.05. {{teaching:sommersemester_2017:ppg-17-mpi-intro3-scatterv.pdf|Einführung MPI ScatterV}}, {{teaching:sommersemester_2017:ppg-17-06-scatterv-poisson-description.pdf|Übungsaufgabe Blatt06}} * 01.06. {{teaching:sommersemester_2017:ppg-17-mpi-intro4-isend.pdf|Einführung MPI Non-blocking Kommunikation}}, {{teaching:sommersemester_2017:ppg-17-07-mpi-poisson-jakobi.pdf|Übungsaufgabe Blatt07}} * 15.06. {{teaching:sommersemester_2017:ppg-17-leistung.pdf|Cache-Misses und Leistungskurve}}, {{teaching:sommersemester_2017:ppg-17-08-mpi-poisson-seidel.pdf|Übungsaufgabe Blatt08}} * 22.06. {{teaching:sommersemester_2017:ppg-17-openmp-intro1.pdf|OpenMP Intro1}}, {{teaching:sommersemester_2017:ppg-17-09-openmp-einfach_non-blocking-poisson-jakobi-speedup.pdf|Übungsaufgabe Blatt09}} * 29.06. {{teaching:sommersemester_2017:ppg-17-openmp-intro2.pdf|OpenMP Intro2}}, {{teaching:sommersemester_2017:ppg-17-10-openmp-poisson.pdf|Übungsaufgabe Blatt10}} * 06.07. * 13.07. ===== Literaturhinweise ===== **FORTRAN** * 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/]] * 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]] **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]] **MPI** * Buch: Using MPI, W. Gropp, E. Lusk, A. Skjellum, MIT Press, Cambridge, Massachusetts, U.S.A. * MPI Befehlsübersicht: [[http://www.mcs.anl.gov/research/projects/mpi/www/www3/]] * MPI Tutorial: [[https://idre.ucla.edu/sites/default/files/mpi-2013-02-13.pdf?x83242]] * 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]] **OpenMP** * Allgemeine OpenMP Seite: [[http://openmp.org/wp/]] * OpenMP First Example UMASS Dartmouth: [[http://www.math.umassd.edu/~anarayan/eas520/pdfs/openmp-intro.pdf]] * OpenMP Paqrt 2 UMASS Dartmouth: [[http://www.math.umassd.edu/~anarayan/eas520/pdfs/openmp-2.pdf]] * Kurzfassung wichtige OpenMP Direktiven: [[http://openmp.org/mp-documents/OpenMP3.1-FortranCard.pdf]] * Introduction to Parallele Programmierung in Fortran95 using OpenMP by Emery Berger: [[https://people.cs.umass.edu/~emery/classes/cmpsci691w-spring2006/lectures/cmpsci691w-lecture14-openmp.pdf]] * Buch: Using OpenMP (Stand 2.5), Stephen J. Chapman, Gabriel Lost, Ruud van de Pas, MIT Press, Cambridge, Massachusetts, U.S.A. **Score-P** * Cheat Sheet [[https://www.vampir.eu/public/files/pdf/spcheatsheet_a4.pdf]]