Konzepte der parallelen Programmierung
|
|
- Stephanie Vogt
- vor 6 Jahren
- Abrufe
Transkript
1 Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Konzepte der parallelen Programmierung Parallele Programmiermodelle Nöthnitzer Straße 46 Raum 1029 Tel (bernd.trenkler@tu-dresden.de)
2 Definition: Paralleles Programmiermodell Programmiermodell für Parallelrechner /Geig 92a/ Gesamtheit der Grundprinzipien einer Klasse von Schnittstellen, über die der Entwickler von Anwendungs-Software in seinen Programmen die Parallelität ausnutzt Programmiermodell /RaRü 2010/ Ein (paralleles) Programmiermodell definiert die Sicht des Programmierers auf die (parallele) Maschine. Es definiert, wie der Programmierer die Maschine ansprechen kann. Die Sicht wird definiert durch:! das Verhalten der Hardware! das verwendete Betriebssystem! den Compiler! die verwendete Laufzeitbibliothek
3 Kennzeichnung Paralleler Programmiermodelle Kennzeichnung entsteht aus der Beantwortung folgender Fragestellungen: - Welche Ebenen der Parallelität werden ausgenutzt? - Liegt implizite oder explizite Parallelität vor? - In welcher Form muss der Programmierer die Parallelität spezifizieren? - Wie erfolgt die Abarbeitung der parallelen Einheiten? - Wie erfolgt der Informationsaustausch zwischen den parallelen Teilen? - Welche Synchronisationsmöglichkeiten gibt es?
4 Kennzeichnung Paralleler Programmiermodelle Ebenen der Parallelität Programmebene (oder Jobebene)! Prozessebene (oder Taskebene)! Blockebene! Anweisungsebene (oder Befehlsebene)!!! Suboperationsebene
5 Kennzeichnung Paralleler Programmiermodelle Implizite und explizite Parallelität Implizite Parallelität - Am einfachsten für den Programmierer - Programmierer formuliert nur sequentiellen Algorithmus und kümmert sich nicht um Organisation der parallelen Abarbeitung - Sehr hohe Compileranforderungen Explizite Parallelität - Parallelität muss im Programm explizit durch den Programmierer formuliert werden z.b.: à Prozesse, die beim Start des Programms erzeugt werden und miteinander kommunizieren können à Unabhängige Tasks, die dynamisch in einem Taskpool verwaltet werden à Parallelisierung von Schleifen - Geringere Compileranforderungen
6 Kennzeichnung Paralleler Programmiermodelle Spezifizierung der Parallelität Prozesse, die beim Start des Programms erzeugt werde (MPI, CAF) - mpirun np 16 progam.exe, à Prozesse kommunizieren über Nachrichtenaustausch - program.exe --g95 images=4 à images kommunizieren in einem partiell globalen Adressraum über gemeinsame Variable Parallele Threads, innerhalb der paralelen Regionen - program.exe à Programmstart nur mit Masterthread - omp_set_num_thraeds(4) im Programm à vier Threads innerhalb der parallelen Regionen à Threads kommunizieren in einem globalen Adressraum über gemeinsame Variable
7 Kennzeichnung Paralleler Programmiermodelle Unabhängige Task, die in einem Taskpool verwaltet werden - Innerhalb von OpenMP erst ab Standard 3.0 möglich - Vorher innerhalb von OpenMP nur: - Schleifenparallelisierung (Iterationen ohne Datenabhängigkeiten) #pragma omp parallel for {... } - Parallele Sektionen #pragma omp parallel { #pragma omp sections { {... } #pragma omp section {... } #pragma omp section {... } } }
8 Kennzeichnung Paralleler Programmiermodelle Art der Abarbeitung der parallelen Einheiten SIMD - Single Instuction Stream Multiple Data Stream - synchron SPMD - Single Program Multiple Data - asynchron
9 Kennzeichnung Paralleler Programmiermodelle Informationsaustausch zwischen den parallelen Teilen Kommunikation über Nachrichtenaustausch! MPI MPI_Send(), MPI_Recv() MPI_Bcast(), MPI_Reduce() Kommunikation über gemeinsame Variable! Globaler Adressraum (OpenMP) shared (x) private (a) z.b.: Thread 1: a=x! Partiell Globaler Adressraum (Coarray Fortran, Unified Parallel C) real :: x(20)[*] z.b.: Image 1: a = x(12)[2]
10 Kennzeichnung Paralleler Programmiermodelle Möglichkeiten der Synchronisation Ereignissynchronisation! Barrieren MPI_Barrier (MPI_Comm comm) Implizite Synchronisierung bei synchronen MPI- Kommunikationsfunktionen (MPI_Ssend(), MPI_Recv()) #pragma omp barrier Implizite Barrieren bei einigen OpenMP-Funktionen! Events z.b.: #pragma omp parallel à natürliche Barriere, wo parallele Region in den Master-Thread übergeht MPI_Wait(), MPI_Test() bei nichtblockierenden MPI-Kommunikationsfunktionen (MPI_Isend(), MPI_Irecv())
11 Kennzeichnung Paralleler Programmiermodelle Zugriffssynchronisation! Kritische Bereiche #pragma omp critical! Locks Sperrmechanismus, der in OpenMP über Laufzeitfunktionen verwaltet wird void omp_init_lock () void omp_set_lock () void omp_unset_lock () void omp_destroy_lock ()
12 Klassifizierung Paralleler Programmiermodelle Wesentliches Klassifizierungsmerkmal ist:! Die Organisation des Adressraumes aus Sicht des Programmierers: globaler Adressraum bzw. partiell globaler Adressraum lokaler Adressraum! Darüber hinaus tritt Datenparallelität als eigenständiges Programmiermodell in Erscheinung. Es ergeben sich folgende Programmiermodelle:! Programmiermodell Speicherkopplung In Verbindung mit SPMD Globaler Adressraum - OpenMP Partiell globaler Adressraum (PGAS) - CAF - UPC
13 Klassifizierung Paralleler Programmiermodelle! Programmiermodell Nachrichtenkopplung In Verbindung mit SPMD MPI! Programmiermodell Datenparallelität Datenparallelität Dieselben Operationen werden auf unterschiedliche Elemente einer Datenstruktur (z.b. Feld) angewandt Operationen müssen unabhängig voneinander sein Elemente der Datenstruktur werden gleichmäßig auf die Prozessoren verteilt
14 Klassifizierung Paralleler Programmiermodelle Datenparallele Programmiersprachen Sequentielle Programmiersprachen werden zu datenparallelen Programmiersprachen erweitert, um Datenparallelität auszunutzen datenparallele Programmiersprachen verwenden wie sequentielle Programmiersprachen nur einen Kontrollfluss, - der aber auch datenparallele Operationen ausführen kann datenparallele Operationen meist nur für Felder FORTAN 90/95 Umsetzung von for-schleifen in datenparallele Anweisungen for i: = 1 to n do end c(i) = a(i-1) + b(i) datenparallele Anweisung in FORTRAN 90/95 c(1:n) = a(0:n-1) + b(1:n) (Problematik alter Wert neuer Wert beachten)
15 Klassifizierung Paralleler Programmiermodelle Realisierung der Datenparallelität im SIMD-Modell FORTRAN 90/95 Feldoperationen auf - Vektorrechnern und - Feldrechnern NEC SX-6 bis 2011 am ZIH FORTRAN90/SX Compiler z.b.: f90 C hopt sx6 file.f90 - C hopt Aggressive Optimierung beinhaltet z.b. bei der Matrix- Multiplikation das Austauschen des Codes durch Code aus der FORTRAN compiler lib - sx6 Optimierung des Codes für die NEC SX-6
16 Klassifizierung Paralleler Programmiermodelle Realisierung der Datenparallelität im MIMD-Modell Geschieht üblicherweise durch das SPMD-Konzept - OpenMP und MPI nutzen SPMD-Konzept Beispiel: Skalarprodukt zweier Vektoren (für i=1,2,3,...,n)! gemeinsamer Adressraum... sum=0.0; #pragma omp parallel shared(sum) { #pragma omp for reduction(+: sum) for (i=1;i<=n;i++) { sum = sum + x[i] * y[i]; } }...
17 Klassifizierung Paralleler Programmiermodelle! verteilter Adressraum... /* Problemgröße n an alle Prozessoren */ /* id Abfrage */ /* Anzahl der Prozessoren (p) ermitteln */ /* Datenverteilung an die Prozessoren */ area_loc = n / p; lower_bound_loc = id * area_loc; upper_bound_loc = [(id + 1) * area_loc] 1; sum_loc = 0.0; for (i= lower_bound_loc; i<= upper_bound_loc; i++) sum_loc = sum_loc + x[i] * y[i]; /* Bildung der globalen Summe */...
18 Publizierte Modelle a) Ungerer! Speicherkopplung! Nachrichtenkopplung! Datenparallelität b) Culler! Shared address! Message passing! Data parallel
19 Publizierte Modelle c) Giloi unterteilt in folgende 4 Programmiermodelle:! Vektorisierung! SPMD-Datenparallel! Nachrichtenorientiert! Gemeinsamer Speicher
OpenMP - 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
MehrParallele Programmiermodelle
Parallele Programmiermodelle ProSeminar: Parallele Programmierung Semester: WS 2012/2013 Dozentin: Margarita Esponda Einleitung - Kurzer Rückblick Flynn'sche Klassifikationsschemata Unterteilung nach Speicherorganissation
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
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
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 - Geschichte. 1997: OpenMP Version 1.0 für Fortran
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
MehrParallelverarbeitung. Parallelverarbeitung. 2. Grundlagen. 2. Grundlagen. 2.1 Parallelität
2. Grundlagen Parallelverarbeitung SS 2005 Inhalt Parallelität Ebenen der Parallelität Parallelrechnerarchitekturen Parallele Programmiermodelle 18.04.05 Roland Wismüller, Univ. Siegen roland.wismueller@uni-siegen.de
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 - 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
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
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
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.
MehrGrundlagen der Parallelisierung
Grundlagen der Parallelisierung Philipp Kegel, Sergei Gorlatch AG Parallele und Verteilte Systeme Institut für Informatik Westfälische Wilhelms-Universität Münster 3. Juli 2009 Inhaltsverzeichnis 1 Einführung
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
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Programmtransformationen: Vom PRAM Algorithmus zum MPI Programm Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Modell und
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
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++
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
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
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
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
MehrKonzepte der parallelen Programmierung
Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Konzepte der parallelen Programmierung PCAM Methode Nöthnitzer Straße 46 Raum 1029 Tel. +49 351-463 - 34787 (bernd.trenkler@tu-dresden.de)
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
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
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
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
Mehr1 Konzepte der Parallelverarbeitung
Parallelverarbeitung Folie 1-1 1 Konzepte der Parallelverarbeitung Erhöhung der Rechenleistung verbesserte Prozessorarchitekturen mit immer höheren Taktraten Vektorrechner Multiprozessorsysteme (Rechner
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
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 I Multikern-Praktikum Wintersemester 06-07 Inhalt Was ist OpenMP? Parallele Regionen Konstrukte zur Arbeitsteilung
Mehr2 Rechnerarchitekturen
2 Rechnerarchitekturen Rechnerarchitekturen Flynns Klassifikation Flynnsche Klassifikation (Flynn sche Taxonomie) 1966 entwickelt, einfaches Modell, bis heute genutzt Beschränkung der Beschreibung auf
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
MehrProgrammtransformationen: Vom PRAM Algorithmus zum MPI Programm
Programmtransformationen: Vom PRAM Algorithmus Dr. Victor Pankratius David J. Meder IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrComputational Biology: Bioelektromagnetismus und Biomechanik
Computational Biology: Bioelektromagnetismus und Biomechanik Implementierung Gliederung Wiederholung: Biomechanik III Statische Elastomechanik Finite Elemente Diskretisierung Finite Differenzen Diskretisierung
MehrUniversität Marburg Seminar Einführung und Überblick. Parallele Modelle. Universität Marburg Studienfach Informatik Spaska Forteva
Parallele Modelle Einführung und Überblick Universität Marburg Studienfach Informatik Spaska Forteva Überblick Das Programmiermodell Basiskonzepte der Parallelität Übersicht über die Modelle Quellen Das
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
MehrParalleles Rechnen. (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich
Paralleles Rechnen (Architektur verteilter Systeme) von Thomas Offermann Philipp Tommek Dominik Pich Gliederung Motivation Anwendungsgebiete Warum paralleles Rechnen Flynn's Klassifikation Theorie: Parallel
MehrArchitektur von Parallelrechnern 50
Architektur von Parallelrechnern 50 Rechenintensive parallele Anwendungen können nicht sinnvoll ohne Kenntnis der zugrundeliegenden Architektur erstellt werden. Deswegen ist die Wahl einer geeigneten Architektur
MehrBeispielvortrag: HPCG auf Intel Haswell-EP
Beispielvortrag: HPCG auf Intel Haswell-EP Johannes Hofmann 1 Seminarvortrag Architekturen von Multi- und Vielkern-Prozessoren Erlangen, 19.4.2016 1 Computer Architecture, University Erlangen-Nuremberg
MehrBeschreiben Sie die Eigenschaften der verschiedenen Rechnertypen an Hand:
Hochschule Harz FB Automatisierung/Informatik Fachprüfung: Parallele Algorithmen (Musterklausur) Alle Hilfsmittel sind zugelassen! 1. Aufgabe Beschreiben Sie die Eigenschaften der verschiedenen Rechnertypen
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
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:
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:
MehrProseminar Rechnerarchitekturen. Parallelcomputer: Multiprozessorsysteme
wwwnet-texde Proseminar Rechnerarchitekturen Parallelcomputer: Multiprozessorsysteme Stefan Schumacher, , PGP Key http://wwwnet-texde/uni Id: mps-folientex,v
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
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
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
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Programmieren mit OpenMP Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Inhalt Was ist OpenMP? Parallele Regionen Konstrukte
Mehrexamen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.
examen.press examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt. Thomas Rauber Gudula Rünger Parallele Programmierung 3. Auflage
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Programmieren mit OpenMP Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Inhalt Was ist OpenMP? Parallele Regionen Konstrukte
MehrGrundlagen der Informatik. von Prof. Dr. Peter Pepper Technische Universität Berlin
Grundlagen der Informatik von Prof. Dr. Peter Pepper Technische Universität Berlin R. Oldenbourg Verlag München Wien 1992 Inhalt Vorwort 11 Prolog 13 1. Über den Begriff Information" 19 1.1 Information
MehrLEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610
LEISTUNGSVERGLEICH VON FPGA, GPU UND CPU FÜR ALGORITHMEN ZUR BILDBEARBEITUNG PROSEMINAR INF-B-610 Dominik Weinrich dominik.weinrich@tu-dresden.de Dresden, 30.11.2017 Gliederung Motivation Aufbau und Hardware
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
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
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
MehrParallelverarbeitung
Parallelverarbeitung WS 2015/16 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 18. Januar 2016 Betriebssysteme / verteilte Systeme Parallelverarbeitung
MehrVorstellung der Fachgebiete
Fakultät Informatik, Institut für Technische Informatik, Professur Rechnerarchitektur Vorstellung der Fachgebiete Institut für Technische Informatik Zellescher Weg 12 Nöthnitzer Straße 46 Willers-Bau A
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
MehrOpenMP. Marco Nielinger. Westfälische Wilhelms-Universität Münster. Ausarbeitung. im Rahmen des Seminars Parallele Programmierung im SS03
Westfälische Wilhelms-Universität Münster Ausarbeitung OpenMP im Rahmen des Seminars Parallele Programmierung im SS03 Marco Nielinger Themensteller: Prof. Dr. Herbert Kuchen Betreuer: Dipl.-Wirt.Inform.
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
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 MPI und OpenMP
Paralleles Programmieren mit MPI und OpenMP Vorlesung «Algorithmen für das wissenschaftliche Rechnen» 6.5.2002 Olaf Schenk, Michael Hagemann 6.5.2002 Algorithmen des wissenschaftlichen Rechnens 1 Organisatorisches
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:
Mehr2. Der ParaNut-Prozessor "Parallel and more than just another CPU core"
2. Der ParaNut-Prozessor "Parallel and more than just another CPU core" Neuer, konfigurierbarer Prozessor Parallelität auf Daten- (SIMD) und Thread-Ebene Hohe Skalierbarkeit mit einer Architektur neues
MehrParallelprogrammierung
Lesender: Prof. Dr.-Ing. habil Ilka Philippow Fakultät für Informatik und Automatisierung FG Softwaresysteme/Prozessinformatik email: ilka.philippow@tu-ilmenau.de Tel. 69 2826 Sekr. 69 2870, Frau Meusel,
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
MehrParallele Programmierung mit MPI
Parallele Programmierung mit MPI Marc-Oliver Straub entstanden aus: Parallele Programmierung mit MPI - ein Praktikum Warum Parallelprogrammierung große numerische Probleme (Simulation) optische Bildverarbeitung
Mehr1.1 Merkmale von OpenMP
1 Einführung OpenMP ist eine Programmierschnittstelle, mit deren Hilfe Parallelität in C, C++ und Fortran-Programmen spezifiziert werden kann. Anders als viele konkurrierende Ansätze zur Parallelisierung
MehrPraxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern
Praxiseinheit: Realisierung einer hardwarebeschleunigten Disparitätenberechnung zur automatischen Auswertung von Stereobildern Institut für Betriebssysteme und Rechnerverbund TU Braunschweig 25.10., 26.10.
MehrCrashkurs Wissenschaftliches Rechnen in der Praxis: Parallele Numerik und ihre Umsetzung
Crashkurs Wissenschaftliches Rechnen in der Praxis: Parallele Numerik und ihre Umsetzung Dominik Göddeke dominik.goeddeke@math.tu-dortmund.de Vorlesung Wissenschaftliches Rechnen Fakultät für Mathematik
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
MehrCUDA. Moritz Wild, Jan-Hugo Lupp. Seminar Multi-Core Architectures and Programming. Friedrich-Alexander-Universität Erlangen-Nürnberg
CUDA Seminar Multi-Core Architectures and Programming 1 Übersicht Einleitung Architektur Programmierung 2 Einleitung Computations on GPU 2003 Probleme Hohe Kenntnisse der Grafikprogrammierung nötig Unterschiedliche
MehrVerteilte Betriebssysteme
Verteiltes System Eine Sammlung unabhängiger Rechner, die dem Benutzer den Eindruck vermitteln, es handle sich um ein einziges System. Verteiltes Betriebssystem Betriebssystem für verteilte Systeme Verwaltet
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
MehrKorrektheit durch modulare Konstruktion. Wie kann man die Korrektheit reaktiver Systeme gewährleisten?
Korrektheit durch modulare Konstruktion Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Ansatz: Durch systematische Konstruktion (Schlagwort: strukturierte Programmierung für parallele Programmiersprachen)
MehrGrundlagen der Programmierung 2. Parallele Verarbeitung
Grundlagen der Programmierung 2 Parallele Verarbeitung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 27. Mai 2009 Parallele Algorithmen und Ressourcenbedarf Themen: Nebenläufigkeit,
MehrNutzung paralleler Prozesse bei der Umweltsimulation
Nutzung paralleler Prozesse bei der Umweltsimulation RALF Wieland rwieland@zalf.de ZALF/LSA Nutzung paralleler Prozesse bei der Umweltsimulation p. 1 Warum parallele Prozesse? Die Steigerung der Taktfrequenz
MehrWie kann man die Korrektheit reaktiver Systeme gewährleisten?
Korrektheit durch modulare Konstruktion Wie kann man die Korrektheit reaktiver Systeme gewährleisten? Ansatz: Durch systematische Konstruktion (Schlagwort: strukturierte Programmierung für parallele Programmiersprachen)
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
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
MehrBerichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
MehrParallele Rechnerarchitekturen
Bachelor Parallele en Informatik 3 ( ) Prof. Dietmar Fey Ziel des s Paralleles Rechnen Keine akademische Nische mehr Vielmehr Allgemeingut für den Beruf des Informatikers Bedingt durch Multikern- (und
MehrEntwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation
Entwicklung algorithmischer Skelette für CUDA am Beispiel von Affintiy Propagation Christoph Winter Fakultät für Informatik und Mathematik Ostbayerische Technische Hochschule Regensburg 93049 Regensburg
MehrMPI Prozessgruppen, Topologien, kollektive Kommunikation
MPI Prozessgruppen, Topologien, kollektive Kommunikation Parallelrechner Sommersemester 2004 tome@informatik.tu-chemnitz.de Inhalt Prozessgruppen und der Communicator Kollektive Kommunikation Prozess Topologien
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
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..........................
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
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
MehrChapel Dennis Appelt. Seminar: Sprachen für Parallelverarbeitung.
Chapel Dennis Appelt Seminar: Sprachen für Parallelverarbeitung INSTITUTE FOR PROGRAM STRUCTURES AND DATA ORGANIZATION, FACULTY OF INFORMATICS KIT University of the State of Baden-Wuerttemberg and National
MehrSynchrone Botschaften
Synchrone Botschaften PPJ-84 Prozesse kommunizieren und synchronisieren sich direkt miteinander, bzw. über Kanäle, die höchstens eine Botschaft aufnehmen. Operationen: send (b): receive (v): blockiert
MehrModelle der Parallelverarbeitung
Modelle der Parallelverarbeitung Modelle der Parallelverarbeitung 12. Message Passing Interface Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Sommersemester 2017 1 / 36 Überblick
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
Mehr1 Konzepte der Parallelverarbeitung
Parallelverarbeitung Folie 1-1 1 Konzepte der Parallelverarbeitung Erhöhung der Rechenleistung verbesserte Prozessorarchitekturen mit immer höheren Taktraten Vektorrechner Multiprozessorsysteme (Rechner
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
MehrAutomatic Loop Interchange
Seminerausarbeitung zur Lehrveranstaltung 185.272 Grundlagen methodischen Arbeitens im WS 2006/07 Automatic Loop Interchange bearbeiten von Ahmet Hulusi AKAN Matrikelnummer: 0325157 Studienkennzahl: 534
MehrSoftwaresysteme I Übungen Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2007 U9.fm
U9 9. Übung U9 9. Übung U9-1 Überblick Besprechung Aufgabe 6 (printdir) Posix-Threads U9.1 U9-2 Motivation von Threads U9-2 Motivation von Threads UNIX-Prozesskonzept: eine Ausführungsumgebung (virtueller
MehrMulti- und Many-Core
Multi- und Many-Core Schriftliche Ausarbeitung zum Seminar Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg
MehrVorlesung "Verteilte Systeme" Sommersemester 1999. Verteilte Systeme. Adreßraum. Rechner. Verteilte Systeme, Sommersemester 1999 Folie 19.
Verteilte Systeme 19. Distributed Shared Memory Sharing!! No Sharing! Sharing? Evolution der Berechnungsmodelle Vergangenheit Gemeinsamer Speicher Einzelrechner Gegenwart Nachrichtenkommunikation Verteilte
MehrPräfix-Summe. Das Schweizer Offiziersmesser der Parallelen Algorithmen. Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen
Präfix-Summe Das Schweizer Offiziersmesser der Parallelen Algorithmen Parallele Rechenmodelle Präfix-Summe Brents Lemma Anwendungen Parallele Rechenmodelle Beispiel: Summieren von Zahlen Verlauf des Rechenprozesses:
Mehr