OpenMP - Geschichte. 1997: OpenMP Version 1.0 für Fortran
|
|
- Jutta Ziegler
- vor 6 Jahren
- Abrufe
Transkript
1 OpenMP - Geschichte 1997: OpenMP Version 1.0 für Fortran Standard für f r die Shared-Memory Memory-Programmierung inzwischen für f r alle namhaften SMP-Rechner verfügbar wird im techn.-wiss. Rechnen die proprietären ren Direktiven und die unmittelbare Verwung der pthreads abgelösen 1998:OpenMP Version 1.0 für C und C : OpenMP Erläuterungen für Fortran 2000: OpenMP Version 2.0 für Fortran Unterstützung tzung des Fortran90-Module Module-Konzeptes
2 OpenMP - Verbreitung OpenMP Version 1.0 ist inzwischen auf allen wesentlichen Plattformen verfügbar Im Rechenzentrum: HP V-Class V und J-Class J mit dem KAP/Pro-Toolset von KAI (Teilmenge ab Version 2.4 auch im HP-Fortran90 Compiler) SGI Origin 200 im SGI-Compiler integriert (Version 7.3) LINUX-PC mit dem PGI-Compiler (Version 3.1) Informationen ->
3 OpenMP - die wichtigsten Direktiven parallel... Der Code innerhalb einer parallelen Region... parallel wird von allen Threads ausgeführt do... Die Berechnung einer Schleife innerhalb einer... parallelen Region wird auf die Threads verteilt sections... Die Berechnung von unterschiedlichen Code-... section... Abschnitten innerhalb einer parallelen... sections Region wird auf die Threads verteilt critical... Kritische Bereiche werden zu einer Zeit immer critical nur von einem Thread ausgeführt single... Der eingeschlossene Code-Abschnitt wird nur... single von einem Thread ausgeführt master... Der eingeschlossene Code-Abschnitt wird nur... master wird nur vom Master-Thread ausgeführt barrier Synchronisationspunkt
4 OpenMP - die wichtigsten Klauseln shared (list) private(list) reduction(op:list) gemeinsam genutzter Speicherbereich (Variablen, Felder) Die Threads arbeiten auf privaten Instanzen der aufgelisteten Variablen und Felder Die Variablen (und Felder) der Liste werden zunächst privat behandelt und am Ende des zugeh. Konstruktes in einer Reduktion (meist op=+) zusammengeführt threadprivate(list) Anlegen von privaten Kopien globaler Daten ( COMMON-Blöcke )
5 Skalarprodukt - serielle Version real*8 a(100),b(100),x integer*4 i read (unit=10,fmt=*) b do i = 1,100 x = x + a(i) * b(i) Einlesen der Daten Berechnung des Skalarproduktes x = Σ i=1,...,100 a i * b i Ausgabe des Ergebnisses
6 Skalarprodukt - 1. OpenMP Version (Fortran) real*8 a(100), b(100), x, h integer*4 i Vereinbarungen read x = (unit=10,fmt=*) 0.0d0 a Master Thread liest die Daten ein read (unit=10,fmt=*) b!$omp parallel private(i,h) shared(a,b,x)!$omp x = do0.0d0 do i = 1, 100 Sie liegen in globalen Feldern und h = a(i) * b(i) müssen nicht kopiert werden do i = 1, 100!$omp critical h = a(i) * b(i) x = x + h Die Berechnung der Teile des!$omp x = x critical + h Skalarproduktes wird aufgeteilt. Die globalen Variable x muß in einem!$omp parallel geschützten Bereich geändert werden!$omp parallel private(i,h) shared(a,b,x)!$omp do!$omp critical!$omp critical!$omp parallel Der Master gibt das Gesamtergebnis aus
7 Skalarprodukt - 1. OpenMP Version (Fortran) real*8 a(100), b(100), x, h integer*4 i read (unit=10,fmt=*) b Vereinbarungen Master Thread liest die Daten ein!$omp parallel private(i,h) shared(a,b,x)!$omp do do i = 1, 100 h = a(i) * b(i)!$omp critical x = x + h!$omp critical!$omp parallel gesch Sie liegen in globalen Feldern und müssen nicht kopiert werden Die Berechnung der Teile des Skalarproduktes wird aufgeteilt. Die globalen Variable x muß in einem geschützten Bereich geändert werden Der Master gibt das Gesamtergebnis aus
8 Skalarprodukt - 2. OpenMP Version (Fortran) real*8 a(100), b(100), x, x_local integer*4 i Vereinbarungen!$ompopen parallel (unit=10,file="input.dat") private(i,x_local) Master shared(a,b,x) Thread liest die Daten ein read x_local (unit=10,fmt=*) = 0.0d0 b!$omp do!$omp parallel do i = private(i,x_local) 1, 100 shared(a,b,x) Sie liegen in globalen Feldern und x_local x_local = 0.0d0 = x_local + a(i) müssen * b(i) nicht kopiert werden!$omp do i = 1, do100!$omp x_local do = x_local + a(i) * b(i) Die Berechnung der Teile des!$omp critical do Skalarproduktes wird aufgeteilt.!$omp critical x = x + x_local!$ompx = x + critical x_local critical Die globalen Variable x muß in einem!$omp parallel parallel geschützten Bereich geändert werden Der Master gibt das Gesamtergebnis aus
9 Skalarprodukt - 3. OpenMP Version (Fortran) real*8 a(100), b(100), x integer*4 i Vereinbarungen Master Thread liest die Daten ein!$ompread parallel (unit=10,fmt=*) private(i) b shared(a,b) reduction(+:x)!$omp do Sie liegen in globalen Feldern und do i = 1, 100 müssen nicht kopiert werden!$omp parallel private(i) shared(a,b) reduction(+:x)!$omp x = x + a(i) * b(i) Die Berechnung der Teile des do i = do 1, 100!$omp x = do x + a(i) * b(i) Skalarproduktes wird aufgeteilt.!$omp parallel Einfache Programmierung durch!$omp parallel Benutzung der Reduktions-Klausel Der Master gibt das Gesamtergebnis aus
10 Skalarprodukt - 3. OpenMP Version (Fortran) real*8 a(100), b(100), x integer*4 i Vereinbarungen Master Thread liest die Daten ein read (unit=10,fmt=*) b Sie liegen in globalen Feldern und müssen nicht kopiert werden!$omp parallel private(i) shared(a,b) reduction(+:x)!$omp do do i = 1, 100 x = x + a(i) * b(i)!$omp parallel Die Berechnung der Teile des Skalarproduktes wird aufgeteilt. Einfache Programmierung durch Benutzung der Reduktions-Klausel Der Master gibt das Gesamtergebnis aus
11 Skalarprodukt - 4. OpenMP Version (Fortran)!$omp parallel private(i) shared(a,b,x) real*8 a(100), b(100), x, x_local integer*4 i!$omp parallel private(i) shared(a,b,x) read (unit=10,fmt=*) b!$omp read (unit=10,fmt=*) master a read (unit=10,fmt=*) b!$omp master!$omp x barrier = 0.0d0!$omp do reduction(+:x)!$omp barrier!$omp do doreduction(+:x) i = 1, 100 do i = 1, 100 x = x + a(i) * b(i) do!$omp master!$omp parallel!$omp parallel x = x + a(i) * b(i)!$omp master Vereinbarungen Master Thread liest die Daten ein Sie liegen in globalen Feldern und müssen nicht kopiert werden Die Berechnung der Teile des Skalarproduktes wird aufgeteilt. Einfache Programmierung durch Benutzung der Reduktions-Klausel Der Master gibt das Gesamtergebnis aus
12 Skalarprodukt - 4. OpenMP Version (Fortran) real*8 a(100), b(100), x, x_local integer*4 i!$omp parallel private(i) shared(a,b,x) read (unit=10,fmt=*) b!$omp master!$omp barrier!$omp do reduction(+:x) do i = 1, 100 x = x + a(i) * b(i)!$omp master!$omp parallel Vereinbarungen Master Thread liest die Daten ein Sie liegen in globalen Feldern und müssen nicht kopiert werden Die Berechnung der Teile des Skalarproduktes wird aufgeteilt. Einfache Programmierung durch Benutzung der Reduktions-Klausel Der Master gibt das Gesamtergebnis aus
13 !$omp parallel private(i) shared(a,b,x) Fehlersuche mit Assure (Fortran) real*8 read a(100), (unit=10,fmt=*) b(100), x, x_local b!$omp integer*4 master i!!$omp Die parallel Barriere private(i) steht shared(a,b,x) an der falschen Stelle!!$omp barrier Vereinbarungen Master Thread liest die Daten ein read x = (unit=10,fmt=*) 0.0d0 b!$omp master! Wird u.u. von späten Threads noch Sie liegen ausgeführt in globalen Feldern und müssen nicht kopiert werden! nachdem frühe Threads schon ihren Beitrag aufaddiert haben!$omp barrier!$omp do reduction(+:x) do i = 1, 100 dox i = x = + 1, a(i) 100 * b(i)!$omp do reduction(+:x) x = x + a(i) * b(i)!$omp master!$omp parallel!$omp master!$omp parallel Die Berechnung der Teile des Skalarproduktes wird aufgeteilt. Einfache Programmierung durch Benutzung der Reduktions-Klausel Der Master gibt das Gesamtergebnis aus
14 Fehlersuche mit Assure (HP)
15 TotalView + OpenMP (SGI, HP?, Linux?)
16 Hybride Parallelisierung mit OpenMP + MPI (HP, Linux) Skalarprodukt - kombinierte Version include "mpif.h" real*8 a(100), b(100), x, x_local integer i, islave, itag, ierror, nproc, myrank, master parameter ( master = 0 ) data itag / 4711 / call MPI_Init ( ierror ) call MPI_Comm_size ( MPI_COMM_WORLD, nproc, ierror ) call MPI_Comm_rank ( MPI_COMM_WORLD, myrank, ierror ) if ( myrank == master ) then read (unit=10,fmt=*) b if call MPI_Bcast ( a, 100, MPI_DOUBLE_PRECISION, master, MPI_COMM_WORLD, ierror ) call MPI_Bcast ( b, 100, MPI_DOUBLE_PRECISION, master, MPI_COMM_WORLD, ierror ) x_local = 0.0d0!$omp parallel do private(i) shared(a,b) reduction(+:x_local) do i = 1+myrank, 100, nproc x_local = x_local + a(i) * b(i) call MPI_Reduce ( x_local, x, 1, MPI_DOUBLE_PRECISION, MPI_SUM, master, MPI_COMM_WORLD, ierror ) if ( myrank == master ) then if call MPI_Finalize ( ierror )
17 call MPI_Init ( ierror ) Hybride Parallelisierung mit OpenMP + MPI (HP, Linux) call MPI_Comm_size ( MPI_COMM_WORLD, nproc, ierror ) Skalarprodukt - kombinierte Version call MPI_Comm_rank ( MPI_COMM_WORLD, myrank, ierror ) if ( myrank == master ) then include "mpif.h" real*8 a(100), b(100), x, x_local read (unit=10,fmt=*) integer i, islave, itag, ierror, nproc, a myrank, master parameter ( master = 0 ) read (unit=10,fmt=*) data itag / 4711 / b call MPI_Init ( ierror ) if call MPI_Comm_size ( MPI_COMM_WORLD, nproc, ierror ) call MPI_Comm_rank MPI_COMM_WORLD, myrank, ierror ) call MPI_Bcast ( a, 100, MPI_DOUBLE_PRECISION, master,... ) if ( myrank == master ) then call MPI_Bcast ( b, 100, MPI_DOUBLE_PRECISION, master,... ) x_local = read 0.0d0 (unit=10,fmt=*) b if!$omp parallel do private(i) shared(a,b) reduction(+:x_local) call MPI_Bcast ( a, 100, MPI_DOUBLE_PRECISION, master, MPI_COMM_WORLD, ierror ) call MPI_Bcast ( b, 100, MPI_DOUBLE_PRECISION, master, MPI_COMM_WORLD, ierror ) do i = 1+myrank, 100, nproc 0.0d0 x_local = x_local + a(i) * b(i)!$omp parallel do private(i) shared(a,b) reduction(+:x_local) do i = 1+myrank, 100, nproc x_local = x_local + a(i) * b(i) call MPI_Reduce (x_local,x,1,mpi_double_pr.,mpi_sum,master,...) call MPI_Reduce ( x_local, x, 1, MPI_DOUBLE_PRECISION, MPI_SUM, master, MPI_COMM_WORLD, ierror ) if ( myrank if ( myrank == master master ) then ) then write x if if call MPI_Finalize ( ierror ) call MPI_Finalize ( ierror )
Parallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP - Eine kurze Einführung - 11.06.2003 RRZN Kolloquium SS 2003 1 Gliederung 1. Grundlagen 2. Programmiermodell 3. Sprachkonstrukte 4. Vergleich MPI und OpenMP 11.06.2003
MehrParallel Regions und Work-Sharing Konstrukte
Parallel Regions und Work-Sharing Konstrukte Um eine Parallelisierung von größeren Programmabschnitten, als es einzelne Schleifen sind, zu ermöglichen, stellt OpenMP als allgemeinstes Konzept die Parallel
MehrOpenMP. Viktor Styrbul
OpenMP Viktor Styrbul Inhaltsverzeichnis Was ist OpenMP Warum Parallelisierung Geschichte Merkmale von OpenMP OpenMP-fähige Compiler OpenMP Ausführungsmodell Kernelemente von OpenMP Zusammenfassung Was
MehrOpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009
- Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009 Grundlagen der Parallelen Programmierung Hardware Threads vs. Prozesse Kritische Abschnitte Lange
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart hermann.lenhart@zmaw.de MPI Einführung I: Einführung Nachrichtenaustausch mit MPI MPI point-to-point communication
MehrShared-Memory Programmiermodelle
Shared-Memory Programmiermodelle mehrere, unabhängige Programmsegmente greifen direkt auf gemeinsame Variablen ( shared variables ) zu Prozeßmodell gemäß fork/join Prinzip, z.b. in Unix: fork: Erzeugung
MehrKurzübersicht über die wichtigsten MPI-Befehle
Kurzübersicht über die wichtigsten MPI-Befehle Hans Joachim Pflug Rechen- und Kommunkationszentrum der RWTH Aachen Inhalt MPI_Init / MPI_Finalize...2 MPI_Comm_size / MPI_Comm_rank...3 MPI_Send / MPI_Recv...4
Mehrder RWTH Aachen Konfiguration und parallele Programmierung Dieter an Mey
Der Sun Fire SMP-Cluster der RWTH Aachen Konfiguration und parallele Programmierung Dieter an Mey http://www.rz.rwth-aachen.de/hpc e-mail: anmey@rz.rwth-aachen.de Inhalt Das Sun Fire SMP-Cluster der RWTH
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Nathanael Hübbe hermann.lenhart@zmaw.de MPI Einführung I: Hardware Voraussetzung zur Parallelen Programmierung
MehrKonzepte der parallelen Programmierung
Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Konzepte der parallelen Programmierung Parallele Programmiermodelle Nöthnitzer Straße 46 Raum 1029 Tel. +49 351-463
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de OpenMP Einführung I: Allgemeine Einführung Prozesse
MehrVorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016
Paralleles Programmieren mit und MPI Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Steinbuch Centre for Computing Hartmut Häfner, Steinbuch Centre for Computing (SCC) STEINBUCH CENTRE
MehrEinige Grundlagen zu OpenMP
Einige Grundlagen zu OpenMP Stephanie Friedhoff, Martin Lanser Mathematisches Institut Universität zu Köln 22. Juni 2016 Überblick Was ist OpenMP? Basics Das OpenMP fork-join-modell Kompilieren und Ausführen
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil III Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung
MehrParallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2008 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung
MehrHochleistungsrechnen mit Windows Verifikations- und Analyseprogramme Christian Terboven Rechen- und Kommunikationszentrum RWTH Aachen
Hochleistungsrechnen mit Windows Verifikations- und Analyseprogramme hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 Hochleistungsrechnen mit Windows enter omputing and ommunication Agenda
Mehr2 Dieter an Mey, SunHPC 2002, Einleitung 10000,000 1000,000 100,000 10,000 1,000 0,100 0,010. 0,001 Cyber 175 Cyber 205
Inhalt Das Sun Fire SMP-Cluster: Dieter an Mey Rechen- und Kommunikationszentrum der RWTH Aachen 12. März 2002 anmey@rz rz.rwth-aachen.de http://www www.rz.rwth-aachen.de [/hpc hpc[/ [/sun]] -Optimierung
MehrVorlesung Betriebssysteme II
1 / 15 Vorlesung Betriebssysteme II Thema 3: IPC Robert Baumgartl 20. April 2015 2 / 15 Message Passing (Nachrichtenaustausch) Prinzip 2 grundlegende Operationen: send(), receive() notwendig, wenn kein
MehrParalleles Programmieren mit OpenMP und MPI OpenMP-Übungsaufgaben Steinbuch Centre for Computing
Paralleles Programmieren mit OpenMP und MPI OpenMP-Übungsaufgaben Steinbuch Centre for Computing und Universität Karlsruhe (TH) www.scc.kit.edu Parallele Berechnung von PI program compute_pi integer integer,
MehrThreads und OpenMP. Frank Mietke <frank.mietke@informatik.tu-chemnitz.de> Cluster- & Gridcomputing Frank Mietke 7/4/04
Threads und OpenMP Frank Mietke 1 Ziel der Vorlesungen Einführung in Threads Programmierung mit Threads Einführung in OpenMP Programmierung mit OpenMP 2 Was ist
Mehr1. Einführung in OpenMP
1. Einführung in OpenMP Übersicht Einführung Homogene und inhomogene Arbeitsverteilung Rekursive Parallelität Beispiele Parallele Programmierung 1 Nicolas Maillard, Marcus Ritt 1 Überblick OpenMP: Vereinfachte
MehrJannis Beese, Universität Stuttgart, Ferienakademie 2009
Jannis Beese, Universität Stuttgart, Ferienakademie 2009 I. Was ist OpenMP? II. Konzepte III. Beispiele IV. Sichtbarkeit von Daten V. Kompilier-Vorgang VI. Effizienz 01.10.2009 Jannis Beese Portable, shared-data
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart hermann.lenhart@informatik.uni-hamburg.de MPI Einführung II: Send/Receive Syntax Broadcast Reduce Operation
MehrTotalview. Henrichs NEC Australia. Dieter an Mey
Totalview http://www.rz.rwth www.rz.rwth-aachen.de/sw/prog/totalview/ Dr. Jörg J Henrichs NEC Australia Dieter an Mey (anmey@rz.rwth( anmey@rz.rwth-aachen.de) Rechenzentrum und Kommunikationszentrum RWTH
Mehr4.4. MPI Message Passing Interface
4.4. MPI Message Passing Interface Ferienakademie 2009 Franz Diebold Agenda 1. Einführung, Motivation 2. Kommunikationsmodell 3. Punkt-Zu-Punkt-Kommunikation 4. Globale Kommunikation 5. Vergleich MPI und
MehrEinführung in die Parallele Programmierung
Einführung in die Parallele Programmierung K. Benkert 1, A. Stock 2 1 High Performance Computing Centre Stuttgart www.hlrs.de Universität Stuttgart 2 Institut für Aerodynamik und Gasdynamik (IAG) www.iag.uni-stuttgart.de
MehrParallele Programmierung mit MPI im Überblick
Parallele Programmierung mit MPI im Überblick Dieter an Mey e-mail: anmey@rz.rwth-aachen.de 1 Parallelisierung im Überblick Parallelisierung mit OpenMP und MPI an einigen einfachen Beispielen Rechenarchitekturen
MehrAnleitung für zwei Fortran-Openmp-Beispiele auf der NWZSuperdome
Anleitung für zwei Fortran-Openmp-Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.f90 1.2
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Nathanael Hübbe MPI Kollektive Operationen Neben Point-to-Point Kommunikation mittels Send & Recv verfügt
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart & Felix Hoffmann hermann.lenhart@informatik.uni-hamburg.de MPI Einführung III Scatterv / Gatherv Programmbeispiele
MehrExkurs: Paralleles Rechnen
Münster Exkurs: Paralleles Rechnen Münster Exkurs: Paralleles Rechnen 2 /21 Konzepte für Parallelrechner P P P C C C Gemeinsamer Speicher Verteilter Speicher Verbindungsnetzwerk Speicher M, Münster Exkurs:
Mehr4. Parallelprogrammierung
4. Parallelprogrammierung AlDaBi Prak4kum David Weese 2010/11 Enrico Siragusa WS 2011/12 Inhalt Einführung in Parallelität OpenMP Bemerkungen zur P- Aufgabe EINFÜHRUNG IN PARALLELITÄT Folien z.t. aus VL
MehrVorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016
Paralleles Programmieren mit OpenMP und MPI MPI-Übungsaufgaben Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Hartmut Steinbuch Häfner, Centre Steinbuch for Computing Centre for Computing
MehrProjektseminar Parallele Programmierung
HTW Dresden WS 2016/2017 Organisatorisches Praktikum, 4 SWS Do. 15:10-18:30 Uhr, Z136c, 2 Doppelstunden Labor Z 136c ist Montag und Donnerstag 15:10-18:30 reserviert, gemeinsam mit anderen Projektseminaren
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil I Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung
MehrPGI Accelerator Model
PGI Accelerator Model Philip Höhlein, Nils Werner Supervision: R. Membarth, P. Kutzer, F. Hannig Hardware-Software-Co-Design Universität Erlangen-Nürnberg Philip Höhlein, Nils Werner 1 Übersicht Motivation
MehrWeitere Extras. Datentypen selbstgemacht
Datentypen selbstgemacht Neben Standarddatentypen INTEGER, REAL, COMPLEX, LOGICAL, CHARACTER kann man (in Fortran 90) eigene Datentypen definieren ( Derived Types ) TYPE typname! Vereinbarung von Komponenten
MehrOpenMP am Beispiel der Matrizenmultiplikation
OpenMP am Beispiel der Matrizenmultiplikation David J. Meder, Dr. Victor Pankratius IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe
MehrAutomatische Parallelisierung
MPI und OpenMP in HPC Anwendungen findet man immer häufiger auch den gemeinsamen Einsatz von MPI und OpenMP: OpenMP wird zur thread-parallelen Implementierung des Codes auf einem einzelnen Rechenknoten
MehrParallele Programmierung mit OpenMP
Parallele Programmierung mit OpenMP Wolfgang Dautermann FH Joanneum Chemnitzer Linuxtage 2009 1 Motivation 2 OpenMP Übersicht 3 Hello World - der erste Code 4 OpenMP-Compilerdirektiven Threaderzeugung
Mehr2 SunHPC 2002, Einführung in OpenMP, Dieter an Mey
Parallele Programmierung für Shared-Memory Memory-Rechner mit OpenMP Parallele Programmierung für Shared-Memory Memory-Rechner mit OpenMP Dieter an Mey Rechen- und Kommunikationszentrum der RWTH Aachen
MehrRechnerarchitektur (RA)
12 Rechnerarchitektur (RA) Sommersemester 2015 OpenMP Michael Engel Informatik 12 michael.engel@tu-.. http://ls12-www.cs.tu-.de/daes/ Tel.: 0231 755 6121 2015/07/07 Basierend auf Material von OpenMP Usage
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart & Enno Zickler Dr. HermannJ. Lenhart hermann.lenhart@informatik.unihamburg.de MPI Einführung II: Kollektive
MehrMatrix Transposition mit gaspi_read_notify. Vanessa End HPCN Workshop 11. Mai 2016
Matrix Transposition mit gaspi_read_notify Vanessa End HPCN Workshop 11. Mai 2016 Überblick Motivation Matrix Transposition GASPI Matrix Transposition in GASPI Zusammenfassung und Ausblick 2 Motivation
MehrShared-Memory Parallelisierung von C++ Programmen
Shared-Memory Parallelisierung von C++ Programmen 9. Februar 2006 1 Übersicht Ergebnisse Zusammenfassung 2 3 Übersicht Ergebnisse Zusammenfassung Übersicht Verbreitete Parallelisierungstechniken für Shared-Memory:
MehrMulti- und Many-Core
Multi- und Many-Core Benjamin Warnke Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg 2016-12-15 Benjamin
MehrViktor Styrbul. Inhaltverzeichnis:
Viktor Styrbul In dieser Ausarbeitung geht es um die Programmierschnittstelle OpenMP. Es wird an ihre Eigenschaften und ihre Merkmalle eingegangen. Es werden existierende Kernelemente aufgezählt und Ausführungsmodell
MehrLinux Cluster in Theorie und Praxis
Foliensatz Center for Information Services and High Performance Computing (ZIH) Linux Cluster in Theorie und Praxis Parallelisierung und Cell Programmierung 03. Dezember 2009 Verfügbarkeit der Folien Vorlesungswebseite:
MehrCompute Unified Device Architecture CUDA
Compute Unified Device Architecture 06. Februar 2012 1 / 13 Gliederung 2 / 13 : Compute Unified Device Architecture entwickelt von Nvidia Corporation spezifiziert Software- und Hardwareeigenschaften Ziel:
MehrOpenMP. Michael Westermann
Westfälische Wilhelms-Universität Münster Ausarbeitung OpenMP im Rahmen des Seminars Parallele und verteilte Programmierung Michael Westermann Themensteller: Prof. Dr. Herbert Kuchen Betreuer: Dipl. Wirt.-Inform.
MehrDatenparallelität. Bildverarbeitung Differentialgleichungen lösen Finite Element Methode in Entwurfssystemen
Datenparallelität PPJ-38 Viele Prozesse bzw. Prozessoren führen zugleich die gleichen Operationen auf verschiedenen Daten aus; meist Datenelemente in regulären Datenstrukturen: Array, Folge Matrix, Liste.
MehrParallele Programmierung mit OpenMP und MPI
Parallele Programmierung mit OpenMP und MPI oder Wieso früher alles besser war Robin Geyer 08.10.2010 Robin Geyer () Parallele Programmierung mit OpenMP und MPI 08.10.2010 1 / 52 Fahrplan Einführung /
Mehr6. Der OpenMP Standard. Direktiven-basiertes API zur Programmierung von Parallelrechnern mit gemeinsamem Speicher für FORTRAN, C und C++
6. Der OpenMP Standard Direktiven-basiertes API zur Programmierung von Parallelrechnern mit gemeinsamem Speicher für FORTRAN, C und C++ OpenMP Programmiermodell OpenMP Direktiven basieren in C and C++
MehrInhaltsverzeichnis. Vorwort NXTundNXC DerNXT NXC Not exactly C Compiler Zusammenfassung 17
Vorwort 13 1 NXTundNXC 15 1.1 DerNXT 15 1.2 NXC 16 1.2.1 Not exactly C 16 1.2.2 Compiler 17 1.2.3 Zusammenfassung 17 2 BricxCC 19 2.1 Installation 19 2.2 Oberfläche 20 2.3 Menüleiste 22 2.3.1 Datei 22
Mehr2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
MehrFORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München
FORTRAN77 eine höllische Programmiersprache Christian Sternecker TU-München Sommersemester 2010 Aufbau des Vortrags Geschichte Merkmale Höllische Konzepte Typsicherheit Programmstruktur Speicherverwaltung
MehrEvaluation. Einleitung. Implementierung Integration. Zusammenfassung Ausblick
Christopher Schleiden Bachelor Kolloquium 15.09.2009 Einleitung Evaluation Implementierung Integration Zusammenfassung Ausblick Einleitung laperf Lineare Algebra Bibliothek für C++ Möglichkeit zur Integration
MehrProgrammierpraktikum
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Praktikum: Grundlagen der Programmierung Programmierpraktikum Woche 04 (17.11.2016) Stefan Berktold s.berktold@tum.de PRÄSENZAUFGABEN Heutige Übersicht
MehrTrend der letzten Jahre in der Parallelrechentechnik
4.1 Einführung Trend der letzten 10-15 Jahre in der Parallelrechentechnik weg von den spezialisierten Superrechner-Plattformen hin zu kostengünstigeren Allzwecksystemen, die aus lose gekoppelten einzelnen
MehrParallel Programming: Message-Passing-Interface
Vorlesung Rechnerarchitektur 2 Seite 71 MPI-Einführung Parallel Programming: Voraussetzungen im Source-Code für ein MPI Programm: mpi.h includen Die Kommandozeilenparameter des Programms müssen an MPI_Init
MehrParallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt
Parallel Processing in a Nutshell & kurz vorgestellt 16. Juni 2009 1 / 29 1 Das Problem 2 2 / 29 1 Das Problem 2 3 2 / 29 1 Das Problem 2 3 4 2 / 29 1 Das Problem 2 3 4 2 / 29 Multi-Core Prozessoren halten
MehrParallele und verteilte Programmierung
Thomas Rauber Gudula Rünger Parallele und verteilte Programmierung Mit 165 Abbildungen und 17 Tabellen Jp Springer Inhaltsverzeichnis 1. Einleitung 1 Teil I. Architektur 2. Architektur von Parallelrechnern
Mehr6. Grundlagen der Programmierung
Computeranwendung in der Chemie Informatik für Chemiker(innen) 6. Grundlagen der Programmierung Jens Döbler 2003 "Computer in der Chemie", WS 2003-04, Humboldt-Universität VL6 Folie 1 Dr. Jens Döbler Grundlagen
MehrHochleistungsrechnen Hybride Parallele Programmierung. Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen
Hochleistungsrechnen Hybride Parallele Programmierung Prof. Dr. Thomas Ludwig Universität Hamburg Informatik Wissenschaftliches Rechnen Inhaltsübersicht Einleitung und Motivation Programmiermodelle für
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 OpenMP-Programmierung Teil II Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung
MehrMulti-threaded Programming with Cilk
Multi-threaded Programming with Cilk Hobli Taffame Institut für Informatik Ruprecht-Karls Universität Heidelberg 3. Juli 2013 1 / 27 Inhaltsverzeichnis 1 Einleitung Warum Multithreading? Ziele 2 Was ist
MehrBeispiel Parallelisierung 2D Laplace. Lagrange Formulierung/Hyperelastisches Material. Finite Differenzen Diskretisierung
Simulation von physikalischen Feldern im menschlichen Körper Implementierung Gliederung Gliederung Wiederholung: Biomechanik III Statische elastomechanische Probleme Finite Elemente Diskretisierung Finite
Mehr4. Parallelprogrammierung. AlDaBi Praktikum
4. Parallelprogrammierung AlDaBi Praktikum Inhalt Einführung in Parallelität OpenMP Bemerkungen zur P-Aufgabe Einführung in Parallelität Folien z.t. aus VL Programmierung von Hardwarebeschleunigern von
MehrOpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer
OpenCL Programmiersprachen im Multicore-Zeitalter Tim Wiersdörfer Inhaltsverzeichnis 1. Was ist OpenCL 2. Entwicklung von OpenCL 3. OpenCL Modelle 1. Plattform-Modell 2. Ausführungs-Modell 3. Speicher-Modell
MehrProgrammieren mit OpenMP
Programmieren mit OpenMP Dr. Victor Pankratius David J. Meder IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Inhalt Was
MehrComputational Biology: Bioelektromagnetismus und Biomechanik
Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung
MehrParallele Programmierung in C++ mit OpenMP
Parallele Programmierung in C++ mit OpenMP Lukas Wendt Hochschule für Angewandte Wissenschaften Hamburg lukas.wendt@haw-hamburg.de 31. Januar 2017 Zusammenfassung In den letzten Jahren haben sich Mehrkernsystem
Mehr4. Parallelprogrammierung
4. Parallelprogrammierung AlDaBi Prak4kum David Weese 2010/11 René Rahn WS 2014/15 Inhalt Einführung in Parallelität OpenMP Bemerkungen zur P- Aufgabe Einführung in Parallelität Folien z.t. aus VL Programmierung
MehrVorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016
Paralleles Programmieren mit OpenMP und MPI Einführung in MPI Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Steinbuch Centre for Computing Hartmut Häfner, Steinbuch Centre for Computing
MehrOpenMP Primer. Rechnerübung Rechnerarchitektur
OpenMP Primer Rechnerübung Rechnerarchitektur 1 Expliting Multicre Parallelism OpenMP basiert auf frk-jin Prgrammiermdel Prgramme starten mit nur einem Thread Zusätzliche Threads (thread team) werden für
MehrMicrosoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber
Microsoft.NET Framework & Component Object Model ein Vortrag von Florian Steuber Übersicht I..NET Framework 1. Was ist das.net Framework? 2. Das.NET Execution Model 3. Sprachunabhängigkeit, CTS und CLS
MehrIntroduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
MehrProjektseminar Parallele Programmierung
HTW Dresden WS 2014/2015 Organisatorisches Praktikum, 4 SWS Do. 15:00-18:20 Uhr, Z136c, 2 Doppelstunden o.g. Termin ist als Treffpunkt zu verstehen Labore Z 136c / Z 355 sind Montag und Donnerstag 15:00-18:20
MehrMatlab. Alexandra Mehlhase & Felix Böckelmann. 26. Juni Analysetechniken in der Softwaretechnik Technische Universität Berlin SS 2008
Was ist /Simulink Modellierung mit Modellierung mit /Simulink Vergleich -Modelica Analysetechniken in der Softwaretechnik Technische Universität Berlin SS 2008 26. Juni 2008 Inhaltsverzeichnis Was ist
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Nathanael Hübbe hermann.lenhart@informatik.uni-hamburg.de MPI Kommunikation: Das wichtigste Kriterium für
Mehrhttp://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.dvi
Open Multi Processing Dipl. Math. F. Braun Universität Regensburg Rechenzentrum http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.html http://www.uniregensburg.de/edv/kurs_info/brf09510/hpc/openmp/openmp.pdf
MehrParallele Systeme. 1 Einführung 2 1.1 Durchführung der erweiterten Übung... 3 1.2 OpenMP... 3
Lehrstuhl für Informatik 12 Cauerstraße 11 91058 Erlangen TECHNISCHE FAKULTÄT 1. Erweiterte Übung zur Vorlesung Parallele Systeme Inhaltsverzeichnis 1 Einführung 2 1.1 Durchführung der erweiterten Übung..........................
MehrSeminarvortrag: Direktivenbasierte Programmierung von Beschleunigern mit OpenMP 4.5 und OpenACC 2.5 im Vergleich
Seminarvortrag: Direktivenbasierte Programmierung von Beschleunigern mit Direktivenbasierte Programmierung von Beschleunigern mit Agenda Einführung / Motivation Überblick zu OpenMP und OpenACC Asynchronität
MehrInformatik-Seminar Thema: Monaden (Kapitel 10)
Informatik-Seminar 2003 - Thema: Monaden (Kapitel 10) Stefan Neumann 2. Dezember 2003 Inhalt Einleitung Einleitung Die IO()-Notation Operationen Einleitung Gegeben seien folgende Funktionen: inputint ::
MehrPROGRAMMIERKURS FORTRAN
Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert,
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de MPI Einführung III: Kommunikation Standard = blockierende
MehrGrundlagen der Fortran Sprache
Kapitel 1 Grundlagen der Fortran Sprache Programmieren bezeichnet das Verfahren, in einer bestimmten Sprache (Syntax) Anweisungen (sog. Quellcode) für den Computer zu schreiben. Dieser Programmcode wird
MehrKapitel 1 Parallele Modelle Wie rechnet man parallel?
PRAM- PRAM- DAG- R UND R Coles und Kapitel 1 Wie rechnet man parallel? Vorlesung Theorie Paralleler und Verteilter Systeme vom 11. April 2008 der Das DAG- Das PRAM- Das werkmodell Institut für Theoretische
MehrGrundlagen der Informatik für Ingenieure I
18. Programmieren und Programmiersprachen 18.2 Java vs. C++.1 18 Programmieren und Programmiersprachen 18 Programmieren und Programmiersprachen Sicher werden Sie oft in Ihrem Leben danach gefragt werden,
MehrProgrammsteuerung. Mittel zur Programmverzweigung:
Programmsteuerung Mittel zur Programmverzweigung: GOTO Anweisung: Unbedingtes GOTO: GOTO L (L=Labelnummer) Bedingtes GOTO (Finger weg!): GOTO(L1,L2, ) I (L1,L2, =Labelnummer, I: Integervariable, die angibt,
MehrCompiler Aufruf. Fortran 95 unter UNIX (z.b. Linux): Der Programmtext stehe in den Dateien (files):
L3 Fortran 95 - Compiler Compiler Aufruf Fortran 95 unter UNIX (z.b. Linux): Der Programmtext stehe in den Dateien (files): meinfixed.f MeinFree.f90 (MeinFree.f95) Die Endung.f steht für das veraltete
MehrATIK ORMAT SINFO HAFTS WIRT. Swetlana Konovalov Seminar Programmiersprachen Westfälische Wilhelms-Universität Münster
Westfälische Wilhelms-Universität Münster WIRTSCHAFTS ATIK ORMAT SINFO TSCH HAFTS WIRT FORTRAN Swetlana Konovalov Seminar Programmiersprachen 04.06.200906 Inhalt Einführung Historische Entwicklung Charakteristika
MehrDer neue Hessische Hochleistungsrechner HHLR
Der neue Hessische Hochleistungsrechner HHLR Erste Erfahrungen Norbert Conrad, conrad@hrz.tu-darmstadt.de ZKIHessen 26.8.2002 1 Darmstädter Hochleistungsrechner 1987: IBM 3090 VF ( 2 x 0,12 GFLOPS Vektor
MehrI Grundlagen der parallelen Programmierung 1
vii I Grundlagen der parallelen Programmierung 1 1 Einführung...... 3 1.1 Paradigmenwechsel in der Softwareentwicklung..... 4 1.2 Anwendungsbereiche...... 5 1.3 Parallelität in der Hardware..... 5 1.3.1
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrTaschenrechner Version 6.1
Taschenrechner Version 6.1 Wie kann ich ein Programmteil 10 mal wiederholen? Start i := 1 FOR i := 1 TO 10 DO Eingabe Berechnung Ausgabe BLOCK i:= i+1 i
MehrPROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN Teil 13: UNIX/LINUX: ZUM ABSCHLUSS Bemerkungen zum Abschluss Wir haben in unserer Veranstaltung absolut bei weitem nicht alle Themen im Zusammenhang mit Unix
MehrParallele Programmierung
Parallele Programmierung PThreads OpenMP MPI Übung: Architektur Paralleler Rechnersysteme WS08/09 J.Simon 1 PThread Programmierung Übung: Architektur Paralleler Rechnersysteme WS08/09 J.Simon 2 1 PThreads
Mehr