Parallele Programmierung mit OpenMP
|
|
|
- Felix Baumann
- vor 9 Jahren
- Abrufe
Transkript
1 Parallele Programmierung mit OpenMP - Eine kurze Einführung RRZN Kolloquium SS
2 Gliederung 1. Grundlagen 2. Programmiermodell 3. Sprachkonstrukte 4. Vergleich MPI und OpenMP RRZN Kolloquium SS
3 Was ist OpenMP? Abkürzung für Open Multi Processing Modell für die parallele Programmierung Shared Memory Architekturen CPU 1 CPU 2 a=3 c=a*a a RRZN Kolloquium SS
4 Was ist OpenMP? Abkürzung für Open Multi Processing Modell für die parallele Programmierung Shared Memory Architekturen Standard seit 1997 Erweiterungen für Fortran, C und C++ portabel und skalierbar inkrementelle Parallelisierung Programme bleiben seriell lauffähig RRZN Kolloquium SS
5 Grundlagen compilerbasiert OpenMP Sprachmittel: Compilerdirektiven Bibliotheksroutinen Umgebungsvariablen hauptsächlich Parallelisierung von Schleifen Kommunikation über gemeinsame Variablen Programmiermodell: Fork-Join-Modell RRZN Kolloquium SS
6 Fork-Join-Modell serieller Bereich 0 parallele Region Team of Threads serieller Bereich 0 Master Thread parallele Region Team of Threads serieller Bereich 0 Master Thread RRZN Kolloquium SS
7 Syntax der Direktiven Fortran: Behandlung als Kommentare!$omp Name [clauses] keine Unterscheidung von Groß- und Kleinschreibung C/C++: #pragma Direktiven #pragma omp Name [clauses] Unterscheidung von Groß- und Kleinschreibung include Datei <omp.h> für Bibliotheksroutinen RRZN Kolloquium SS
8 Parallel Direktive Fortran:!$omp parallel [clause] Block!$omp end parallel C/C++: #pragma omp parallel [clause] strukturierter Block /* omp end parallel */ clause kann sein: shared, private, firstprivate, lastprivate RRZN Kolloquium SS
9 Parallel Direktive (Beispiel) Fortran: integer omp_get_thread_num()!$omp parallel write(*,*) Threadnummer:,omp_get_thread_num()!$omp end parallel C/C+: #include <omp.h> #inlcude <stdio.h> #pragma omp parallel printf( Threadnummer: %d\n,omp_get_thread_num()); /* omp end parallel */ RRZN Kolloquium SS
10 Parallel Direktive (Beispiel) Fortran: integer omp_get_thread_num()!$omp parallel write(*,*) Threadnummer: omp_get_thread_num()!$omp end parallel E10K: f90 openmp prog.f HLRN: xlf_r qsmp=omp prog.f export OMP_NUM_THREADS=4./a.out C/C++: #include <omp.h> #inlcude <stdio.h> #pragma omp parallel printf( Threadnummer: %d\n,omp_get_thread_num()); /* omp end parallel */ E10K: cc xopenmp prog.c HLRN: xlc_r qsmp=omp prog.c export OMP_NUM_THREADS=4./a.out RRZN Kolloquium SS
11 Parallel Direktive (Beispiel) Fortran integer omp_get_thread_num()!$omp parallel Threadnummer: 2 write(*,*) Threadnummer: Threadnummer: 3 omp_get_thread_num() Threadnummer: 0!$omp end Threadnummer: parallel 1 Threadnummer: 0 Threadnummer: 1 Threadnummer: 2 E10k: f90 openmp prog.f Threadnummer: 3 HLRN: xlf_r qsmp=omp prog.f C/C++ #include <omp.h> #inlcude <stdio.h> Threadnummer: #pragma 0omp parallel Threadnummer: printf( 3 Threadnummer: /* end parallel 2 */ Threadnummer: 1 Threadnummer: 2 Threadnummer: 0 Threadnummer: 1 Threandummer: E10K: 3 cc opemnp prog.f HLRN: xlc_r qsmp=omp prog.f RRZN Kolloquium SS
12 Parallel Direktive (Beispiel 2) Fortran: do i=1,20 a(i)= i + b(i) end do C/C++: for (i=0;i<20;i++) a[i] = i + b[i]; RRZN Kolloquium SS
13 Parallel Direktive: (Beispiel) Fortran:!$omp parallel do i=1,20 a(i)= i + b(i) end do!$omp end parallel C/C++: #pragma omp parallel for (i=0;i<20;i++) a[i] = i + b[i]; /*omp end parallel */ RRZN Kolloquium SS
14 Work-Sharing-Direktiven Aufteilung der Arbeit in der parallelen Region auf die Mitglieder des Thread-Teams müssen dynamisch in der parallelen Region liegen starten keine neuen Threads keine implizite Barrier beim Eintritt Synchronisation am Ende der Direktive wichtige Direktivenarten: do-direktive (Fortran) for-direktive (C/C++) RRZN Kolloquium SS
15 Do/For-Direktive die unmittelbar folgende Schleife wird parallel ausgeführt nur einen Eintritts- und einen Austrittspunkt Anzahl der gesamten Schleifendurchläufe muß vorher bekannt sein Fortran:!$ omp do[clause] for-schleife!$omp end do C/C++: #pragma omp for [clause] new line for-schleife for-schleife muß kanonische Form haben: for (i=0;i<20;i++) RRZN Kolloquium SS
16 Do/For-Direktive (Beispiel) Fortran:!$omp parallel!$omp do do i=1,20 a(i)= i + b(i) end do!$omp end do!$omp end parallel C/C++: #pragma omp parallel #pragma omp for for (i=0;i<20;i++) a[i] = i + b[i]; /*omp end parallel */ RRZN Kolloquium SS
17 For-Direktive i=0 i=0!$omp parallel!$omp do do i=1,20 a(i)=b(i)+i i=1,5 i= 6,10 i= 11,15 i= 16,20 end do!$omp end do a(i)= b(i)+i a(i)= b(i)+i a(i)= b(i)+i a(i)= b(i)+i!$omp end parallel i= RRZN Kolloquium SS
18 Do/For-Direktive (Beispiel) Fortran: do i=1,20 x=i*i a(i)= x + b(i) end do C/C++: for (i=0;i<20;i++) { x=i*i; a[i] = x+b[i]; } RRZN Kolloquium SS
19 Do/For-Direktive (Beispiel) Fortran: C/C++:!$omp parallel do do i=1,20 x=i*i a(i)= x + b(i) end do!$omp end parallel do #pragma omp parallel for for (i=0;i<20;i++) {x=i*i; a[i] = x +b[i];} /*omp end parallel */ RRZN Kolloquium SS
20 Do/For-Direktive (Beispiel) Fortran: C/C++:!$omp parallel for do i=1,20 x=i*i a(i)= x + b(i) end do!$omp end parallel #pragma omp parallel for for (i=0;i<20;i++) {x=i*i; a[i] = x +b[i];} /*omp end parallel */ liefert falsche Ergebnisse RRZN Kolloquium SS
21 Do/For-Direktive (private) Fortran: C/C++:!$omp parallel do private(x) do i=1,20 x=i*i a(i)= x + b(i) end do!$omp end parallel do #pragma omp parallel for private(x) for (i=0;i<20;i++){ x=i*i; a[i] = x +b[i];} /*omp end parallel */ RRZN Kolloquium SS
22 Data scope clauses charakterisieren die Eigenschaften der Variablen shared (list): default nur einen Speicherplatz für alle CPUs innerhalb des Teams Ausnahme: Schleifenindizes sind immer private private (list): jeder Thread hat eine lokale Kopie der Variablen firstprivate (list): Initialisierung wird in Schleife übernommen lastprivate (list): Master Thread übernimmt Werte aus der Schleife RRZN Kolloquium SS
23 Beispiel: Summenbildung Fortran: sum=0.0 do i=1,20 sum=sum+a(i) end do C/C++: sum=0.0; for (i=0;i<20;i++) sum=sum+a[i]; RRZN Kolloquium SS
24 Beispiel: Summenbildung Fortran: C/C++:!$omp parallel do sum=0.0 do i=1,20 sum=sum+a(i) end do!$omp end parallel do #pragma omp parallel for sum=0.0; for (i=0;i<20;i++) sum=sum+a[i]; /* end parallel for */ liefert falsche Ergebnisse RRZN Kolloquium SS
25 Reduction clause reduction (operator:list) führt Operation mit den Variablen in list durch Variablen in list müssen shared sein (haben aber sowohl private als auch shared Eigenschaften) operator kann sein: Fortran: +,*,-,.and.,.or.,.eqv.,.neqv, max, min C/C++: +, *, -, &, &&, am Schleifenende wird globale Operation mit den Variablen in list durchgeführt RRZN Kolloquium SS
26 Beispiel: reduction clause Fortran: sum=0 $!omp parallel do reduction(+:sum) do i=1,20 sum=sum+a(i) end do!$omp end parallel do RRZN Kolloquium SS
27 Beispiel: Summenbildung Fortran: sum=0 sum=0!omp parallel do!$omp& reduction(+:sum) do i=1,20 i=1,5 i= 6,10 i= 11,15 i= 16,20 sum=sum+a(i) end do sum= 10 sum= 20 sum= 30 sum= 40!$omp end parallel do sum= RRZN Kolloquium SS
28 Beispiel: MD-Code!$omp parallel do!$omp& private(i,j,k,rij,d)!$omp& reduction(+ : pot, kin) do i=1,np f(1:nd,i) = 0.0 do j=1,np if (i.ne. j) then call dist(nd,box,pos(1,i),pos(1,j),rij,d) pot = pot + 0.5*v(d) do k=1,nd f(k,i) = f(k,i) - rij(k)*dv(d)/d enddo endif enddo kin = kin + dotr8(nd,vel(1,i),vel(1,i)) enddo!$omp end parallel do kin = kin*0.5*mass!$omp parallel do!$omp& private(i,j) do i = 1,np do j = 1,nd pos(j,i) = pos(j,i) + vel(j,i)*dt + 0.5*dt*dt*a(j,i) vel(j,i) = vel(j,i) + 0.5*dt*(f(j,i)*rmass + a(j,i)) a(j,i) = f(j,i)*rmass enddo enddo!$omp end parallel do RRZN Kolloquium SS
29 MD-Code: Auswertung E(n)=T(1)/(T(n)*n), E(n)=Effizienz T(1) = serielle CPU-Zeit T(n) = parallele CPU-Zeit
30 OpenMP: Fehlerquellen race conditions: - Programmergebnis hängt vom genauen zeitlichen Verhalten der Threads ab - häufige Ursache: unbeabsichtigt gemeinsame Variablen deadlocks Verklemmungen Threads werden eingesperrt, indem sie auf gesperrte Daten warten, die nie freigegeben werden RRZN Kolloquium SS
31 OpenMP: Mehr als parallele Schleifen auch einzelne Programmsegmente können auf verschiedene Threads verteilt werden: single Direktive: nur ein Thread arbeitet sections Direktive: Aufgaben für je einen Thread Synchronisationsmöglichkeiten: barrier Direktive: Synchronisation nowait clause: Aufhebung der expliziten Synchronisation Scheduling-Verhalten veränderbar RRZN Kolloquium SS
32 Weitere Informationen OpenMP Homepage: OpenMP am HLRS: Parallel Programming in OpenMP: R. Chandra et al: Academic Press 2001 OpenMP Shared Memory Parallel Programming: R. Eigemann, M. Voss (eds.): Springer LNCS, RRZN Kolloquium SS
33 OpenMP: Zusammenfassung Standard für shared memory Programmierung inkrementeller Ansatz für Parallelisierung Fork-Join-Modell compilerbasiert wichtige Konstrukte für Schleifenparallelisierung: parallel-direktive, do/for-direktive, reduction- u. private-clause RRZN Kolloquium SS
34 Vergleich: OpenMP und MPI Hardware Sprachen Kommunikation Aufwand Implementation Serialität bleibt erhalten Besonderheiten OpenMP Shared Memory Fortran, C und C++ Gemeinsame Variablen Je nach Ziel Compilerdirektiven Ja Inkrementelle Parallelisierung MPI Shared und Distributed Memory Fortran, C und C++ Message Passing Erheblich Bibliotheksfunktionen Nein auf sehr hohe CPU- Anzahlen skalierbar RRZN Kolloquium SS
35 Vielen Dank für Ihre Aufmerksamkeit RRZN Kolloquium SS
Vorlesung 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
Parallele 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
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
Beispiel: Schleifenparallelisierung
Beispiel: Schleifenparallelisierung for (i = 0; i high) { printf ( Exiting during iteration %d\n,i); break; for (j=low;j
Master-Thread führt Programm aus, bis durch die Direktive
OpenMP seit 1998 Standard (www.openmp.org) für die Shared-Memory Programmierung; (Prä-)Compiler für viele Systeme kommerziell oder frei (z.b. Omni von phase.hpcc.jp/omni) verfügbar Idee: automatische Generierung
Threads und OpenMP. Frank Mietke <[email protected]> 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
OpenMP. 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
Hochleistungsrechnen 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
Wir machen neue Politik für Baden-Württemberg
Wir machen neue Politik für Baden-Württemberg Am 27. März 2011 haben die Menschen in Baden-Württemberg gewählt. Sie wollten eine andere Politik als vorher. Die Menschen haben die GRÜNEN und die SPD in
Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München
MANUEL KALLWEIT & FABIAN KINDERMANN Literaturempfehlung: Vorlesungsskript von Heidrun Kolinsky zu FORTRAN 90/95: http://www.rz.uni-bayreuth.de/lehre/fortran90/vorlesung/index.html Schmitt, Günter (1996):
Modellierung und Programmierung 1
Modellierung und Programmierung 1 Prof. Dr. Sonja Prohaska Computational EvoDevo Group Institut für Informatik Universität Leipzig 19. November 2015 Gültigkeitsbereich (Scope) von Variablen { int m; {
6. 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++
Objektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
Übersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
4. 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
Einige 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
Projektseminar 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
Java Kurs für Anfänger Einheit 4 Klassen und Objekte
Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse
Softwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:
VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
Gliederung. Programmierparadigmen. Sprachmittel in SCHEME. Objekte: Motivation. Objekte in Scheme
Gliederung Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Einführung Sprachmittel Sommer 2011, 20. Juni 2011,
Propädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) [email protected] Universität Leipzig Institut für Informatik Technische Informatik
Praktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe [email protected] OpenMP Einführung I: Allgemeine Einführung Prozesse
Programmierparadigmen
Programmierparadigmen D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2011, 20. Juni 2011, c 2011 D.Rösner D. Rösner PGP 2011...
Deklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?
Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS
Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss
Systeme 1 Kapitel 6 Nebenläufigkeit und wechselseitiger Ausschluss Threads Die Adressräume verschiedener Prozesse sind getrennt und geschützt gegen den Zugriff anderer Prozesse. Threads sind leichtgewichtige
Was ist Logische Programmierung?
Was ist Logische Programmierung? Die Bedeutung eines Computer-Programms kann durch Logik erklärt werden. Die Idee der logischen Programmierung besteht darin, die Logik eines Programms selber als Programm
Über Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff [email protected] 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
Design by Contract with JML
Thema: Design by Contract with JML Proseminar: Assertions Verfasser: Literatur: Betreuer: Natalya Moriz Gary T.Leavens and Yoonsik Cheon: Design by Contract with JML Prof. Dr. Heike Wehrheim 1 Inhalt DBC
Kontrollstrukturen und Funktionen in C
Kontrollstrukturen und Funktionen in C Lernziele: Vertiefen der Kenntnisse über Operatoren, Kontrollstrukturen und die Verwendung von Funktionen. Aufgabe 1: Quickies: Datentypen in C a) Was sind die elementaren
Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS 2012. Lehrstuhl i9, Prof. Dr. T.
Versionsverwaltung GIT & SVN Alexander aus der Fünten Proseminar: Methoden und Werkzeuge, SS 2012 Lehrstuhl i9, Prof. Dr. T. Seidl RWTH Aachen Ablauf Was ist Versionsverwaltung? Arbeitsmodelle Lokale,
Programmieren 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
Zählen von Objekten einer bestimmten Klasse
Zählen von Objekten einer bestimmten Klasse Ziel, Inhalt Zur Übung versuchen wir eine Klasse zu schreiben, mit der es möglich ist Objekte einer bestimmten Klasse zu zählen. Wir werden den ++ und den --
Parallele 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
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected]
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie [email protected] Interpreter für funktionale Sprache
Ein Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
Automatisches Parallelisieren
Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Thema: Datenabhängigkeitsanalyse Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse
Einfü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
Die Java Stream API. Funktionale Programmierung mit der Stream API des JDK 1.8. Prof. Dr. Nikolaus Wulff
Die Java Stream API Funktionale Programmierung mit der Stream API des JDK 1.8 Prof. Dr. Nikolaus Wulff Funktionale Programmierung Neben der Collection API mit default Methoden ist als weitere Neuerung
Monitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
Konzepte 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
GPGPU mit NVIDIA CUDA
01.07.12 GPGPU mit NVIDIA CUDA General-Purpose on Formatvorlagecomputing des Graphics Processing durch Units Untertitelmasters mit KlickenCompute bearbeiten NVIDIA Unified Device Architecture Gliederung
2A Basistechniken: Weitere Aufgaben
2A Basistechniken: Weitere Aufgaben 2A.3 Programmierung unter UNIX/Linux 1. Gegeben sind einige Ausschnitte von C-Programmen, die unter UNIX/Linux ausgeführt werden sollen. Beantworten Sie die zugehörigen
Kontrollstrukturen, Strukturierte Programmierung
, Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort
Parallel 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
Das Seminarangebot richtet sich an drei Gruppen von Frauen:
Betriebswirtschaftliche Unternehmenssteuerung von Frau zu Frau Seminarangebot 2016 Gibt es eine weibliche Betriebswirtschaft? Nein, natürlich nicht! Zahlen sind geschlechtsneutral. Aber: Die Schlüsse,
Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen
Angebot UVV-Prüfungen und Wartungen von mobilen Abfallpressen Sehr geehrte Damen und Herrn, die Firma Allpress Ries führt UVV-Überprüfungen und Wartungen von Müllpressen seit ca. 1970 durch. Unsere Monteure
Statuten in leichter Sprache
Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch
Es gibt nur eine Bilanz die zählt: Ihre Zufriedenheit.
Es gibt nur eine Bilanz die zählt: Inhalt Im August 2013 führte die Packenius, Mademann & Partner GmbH eine Online-Kurzbefragung zum Thema Pflege durch. Die Ergebnisse sind auf ganze Zahlen gerundet. Untersuchungsdesign
Algorithmen mit Python
Algorithmen mit Python Vorbesprechung zum Proseminar im Sommersemester 2009 http://www.python.org 1 Sie lernen in DAP Java und C/C++: 80% Syntax, 20% Algorithmen-Design Idee Schon ein einfaches Hello World
Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff
Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;
(http://www.landesrechtbw.de/jportal/portal/t/f32/page/bsbawueprod.psml?pid=dokumentanzeige&showdoccase=1&js_peid=tr
Inklusion durch Leichte Sprache Gemäß 8 Absatz 2 der Verordnung des Sozialministeriums zur baulichen Gestaltung von Heimen und zur Verbesserung der Wohnqualität in den Heimen Baden-Württembergs (LHeimBauVO)
Nutzung paralleler Prozesse bei der Umweltsimulation
Nutzung paralleler Prozesse bei der Umweltsimulation RALF Wieland [email protected] ZALF/LSA Nutzung paralleler Prozesse bei der Umweltsimulation p. 1 Warum parallele Prozesse? Die Steigerung der Taktfrequenz
Hochschule München, FK 03 FA SS 2012. Ingenieurinformatik
Hochschule München, FK 03 FA SS 2012 Ingenieurinformatik Zulassung geprüft vom Aufgabensteller: Teil 1/Aufgabe 1: 30 Minuten ohne Unterlagen, Teil 2/Aufgaben 2-4: 60 Minuten, beliebige eigene Unterlagen
Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007. Name: Note:
1 Modul Datenbanksysteme 2 Prüfung skizzenhaft SS Aug. 2007 Name: Note: Nr. Aufgaben Max. Punkte Erreichte Punkte 1 Grundlagen ~ 10% Vgl. Hinweis unten 2 Integrität, Procedures, Triggers, Sichten ~ 20%
Fallunterscheidung: if-statement
Fallunterscheidung: if-statement A E 1 E 2 V 1 V 2 Syntax: if ( ausdruck ) Semantik: else anweisungsfolge_1 anweisungsfolge_2 1. Der ausdruck wird bewertet 2. Ergibt die Bewertung einen Wert ungleich 0
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt
Anlegen eines Speicherbereichs mit DB, DW eleganter in Kombination mit EQU, Timer-Interrupt AMPEL-Steuerung(en) Die Beschreibung und Programmierung der Ampel (vor allem Ampel_5) können sehr kompliziert
Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1
B 1.0 B 1.1 L: Wir wissen von, dass sie den Scheitel hat und durch den Punkt läuft. Was nichts bringt, ist beide Punkte in die allgemeine Parabelgleichung einzusetzen und das Gleichungssystem zu lösen,
AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15
Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15 1 Bitte melden Sie sich über das Campusmanagementportal campus.studium.kit.edu
HOTEL BÄREN. Familie Sauter Beobachtungen & Problembereiche. Interview mit Stefan Sauter (Miteigentümer)
HOTEL BÄREN Familie Sauter Beobachtungen & Problembereiche Interview mit Stefan Sauter (Miteigentümer) Werdegang Stefan Sauter 1990 bis 2004 Wie sein Bruder Thomas im Angestelltenverhältnis 1995 bis 2000
Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten
Berichte bieten die gleichen Möglichkeit zur Berechnung von Werten wie Formulare und noch einige mehr. Im Gegensatz zu Formularen bieten Berichte die Möglichkeit, eine laufende Summe zu bilden oder Berechnungen
Das MTI Steuerungssystem. Zukunftsorientierte Mischerautomatisation
Perfect Mix Unser Produktionsmanagement für Sicherheit und Effi zienz Das MTI Steuerungssystem Zukunftsorientierte Mischerautomatisation Made in Germany Made by MTI MTI Steuerungssystem erfüllt in vollem
1. 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
Benutzerhandbuch - Elterliche Kontrolle
Benutzerhandbuch - Elterliche Kontrolle Verzeichnis Was ist die mymaga-startseite? 1. erste Anmeldung - Administrator 2. schnittstelle 2.1 Administrator - Hautbildschirm 2.2 Administrator - rechtes Menü
Einsatz von Dynamic Computing bei einem erfolgreichen Schweizer KMU. Bernard Frossard CEO
Einsatz von Dynamic Computing bei einem erfolgreichen Schweizer KMU Bernard Frossard CEO swisspro group Rechtsform Aktiengesellschaft Gründungsjahr 18. Oktober 1999 Geschäftsbereiche Anzahl Standorte 16
Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen
Angebot UVV-Prüfungen und Wartungen von mobilen Abfallpressen Sehr geehrte Damen und Herrn, die Firma Allpress Ries Hydraulikservice und Pressen GmbH führt UVV-Überprüfungen und Wartungen von Müllpressen
Erfahrungen mit Hartz IV- Empfängern
Erfahrungen mit Hartz IV- Empfängern Ausgewählte Ergebnisse einer Befragung von Unternehmen aus den Branchen Gastronomie, Pflege und Handwerk Pressegespräch der Bundesagentur für Arbeit am 12. November
Mediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
Anleitung Scharbefragung
Projekt Evaline Anleitung Scharbefragung v.1.2 Inhalt Anleitung Scharbefragung... 1 1 Einleitung... 2 1.1 Vorlagen... 2 1.2 Journal... 2 2 Befragung Veranstaltungen / Angebote... 3 2.1 Methode... 3 2.2
Anbindung LMS an Siemens S7. Information
Datum: 18.09.2003 Status: Autor: Datei: Lieferzustand Rödenbeck Dokument1 Versio n Änderung Name Datum 1.0 Erstellt TC 18.09.03 Seite 1 von 1 Inhalt 1 Allgemein...3 2 Komponenten...3 3 Visualisierung...4
OpenMP 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
Bernadette Büsgen HR-Consulting www.buesgen-consult.de
Reiss Profile Es ist besser mit dem Wind zu segeln, als gegen ihn! Möchten Sie anhand Ihres Reiss Rofiles erkennen, woher Ihr Wind weht? Sie haben verschiedene Möglichkeiten, Ihr Leben aktiv zu gestalten.
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung
AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i
XSLT Vortrag. 2. Beispiel XML. 3. Anwendungsmöglichkeiten von XSLT 4. XHTML
XSLT Vortrag 1. Was ist XSLT? XSLT ist eine Transformationssprache für XML Dokumente. XSLT war wahrscheinlich die erste XML basierte Programmiersprache. XSLT ist von der Struktur her Template-Matching,
Resultate GfS-Umfrage November 2006. Wie bekannt ist das Phänomen Illettrismus bei der Schweizer Bevölkerung?
Resultate GfS-Umfrage November 2006 Wie bekannt ist das Phänomen Illettrismus bei der Schweizer Bevölkerung? Frage 1: Kennen Sie das Phänomen, dass Erwachsene fast nicht lesen und schreiben können, obwohl
Speicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
Tipps für die praktische Durchführung von Referaten Prof. Dr. Ellen Aschermann
UNIVERSITÄT ZU KÖLN Erziehungswissenschaftliche Fakultät Institut für Psychologie Tipps für die praktische Durchführung von Referaten Prof. Dr. Ellen Aschermann Ablauf eines Referates Einleitung Gliederung
Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2
Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2 von Christoph Knabe http://public.beuth-hochschule.de/~knabe/ Ch. Knabe: Operationalisierbare Qualitätskriterien
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Diese Frage kann und darf aus wettbewersrechtlichen Gründen die AGFS nicht beantworten. 24 F12 Siehe Chart Seite 43 F22 Grundsätzlich funktionieren
2. Besonderheit Teilnehmereinkommen für ALG II - Empfänger:
Beiblatt zu den Ausfüllhinweisen für die aktuellen Beleglisten der 2. Förderrunde des ESF-BAMF-Programms zur Förderrichtlinie vom 01.10.2009 i. d. F. vom 21.12.2011 1. Einleitung Auf Grundlage der Trägerrundschreiben
BOKUbox. Zentraler Informatikdienst (ZID/BOKU-IT) Inhaltsverzeichnis
BOKUbox BOKUbox ist ein Spezialservice für alle Mitarbeiter/innen der BOKU. Kurzfristiger Austausch von vielen und großen Dateien kann Ihre Mailbox schnell überlasten. BOKUbox ist die perfekte Alternative
