Parallele Programmierung mit OpenMP
|
|
- Felix Baumann
- vor 8 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
OpenMP - 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
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
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
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
MehrBeispiel: Schleifenparallelisierung
Beispiel: Schleifenparallelisierung for (i = 0; i high) { printf ( Exiting during iteration %d\n,i); break; for (j=low;j
MehrPraktikum: Paralleles Programmieren für Geowissenschaftler
Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart & Enno Zickler hermann.lenhart@zmaw.de OpenMP Allgemeine Einführung I OpenMP Merkmale: OpenMP ist keine Programmiersprache!
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
MehrMaster-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
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
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
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
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
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
MehrWir 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
MehrSchmitt, 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):
MehrModellierung 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; {
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++
MehrObjektorientierte 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
MehrÜbersicht Programmablaufsteuerung
Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen
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
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
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
MehrJava 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
MehrSoftwarelö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]
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
MehrErweiterung 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
MehrFunktionen 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
MehrGliederung. 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,
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
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
MehrProgrammierparadigmen
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...
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
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 ZPL Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Agenda 1. ZPL Überblick 2. Konzepte von ZPL Regionen, Region Specifiers
MehrDeklarationen 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.
MehrÜ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
MehrSysteme 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
MehrWas 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
MehrÜber Arrays und verkettete Listen Listen in Delphi
Über Arrays und verkettete Listen Listen in Delphi Michael Puff mail@michael-puff.de 2010-03-26 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einführung 3 2 Arrays 4 3 Einfach verkettete Listen 7 4 Doppelt verkettete
MehrDesign 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
MehrKontrollstrukturen 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
MehrVersionsverwaltung 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,
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
MehrZä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 --
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
MehrErwin 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
MehrEinfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at
Inhalt SWP Funktionale Programme (2. Teil) Einfache Ausdrücke Datentypen Rekursive funktionale Sprache Franz Wotawa Institut für Softwaretechnologie wotawa@ist.tugraz.at Interpreter für funktionale Sprache
MehrEin 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++,
MehrAutomatisches Parallelisieren
Automatisches Parallelisieren Vorlesung im Wintersemester 2010/11 Eberhard Zehendner FSU Jena Thema: Datenabhängigkeitsanalyse Eberhard Zehendner (FSU Jena) Automatisches Parallelisieren Datenabhängigkeitsanalyse
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
MehrDie 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
MehrMonitore. 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
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
MehrGPGPU 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
MehrVerankerung des Themas Unternehmensnachfolge in KMU
Verankerung des Themas Unternehmensnachfolge in KMU Jahreskonferenz der Kampagne für Weitermacher Wiesbaden, 21.08.2012 I Aktualität des Themas Haben Sie sich bereits mit dem Thema Unternehmensnachfolge
Mehr2A 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
MehrKontrollstrukturen, Strukturierte Programmierung
, Strukturierte Programmierung Steuer- und Kontrollfluss Strukturierte Programmierung Arten von Strukturblöcken Sequenz Alternative Iteration C-Spezifisches Seite 1 Elementare Algorithmen SelectionSort
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
MehrDas 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,
MehrAngebot. 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
MehrStatuten 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
MehrEs 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
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
MehrAlgorithmen 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
MehrProgrammieren 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;
Mehr(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)
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
MehrHochschule 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
MehrModul 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%
MehrFallunterscheidung: 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
MehrAnlegen 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
MehrAbschlussprü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,
MehrAGROPLUS 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
MehrAnleitung 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
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation
MehrHOTEL 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
MehrAccess [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
MehrDas 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
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
MehrBenutzerhandbuch - 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ü
MehrEinsatz 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
MehrMetadateneditoren für ArcGIS
Metadateneditoren für ArcGIS Matthias Schenker Geoinformatik AG Zürich, Schweiz Inhalt Metadaten in ArcGIS Erweiterung des bestehenden ISO-Editors Einbinden eigener Editoren Import und Export von bestehenden
MehrAngebot. 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
MehrErfahrungen 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
MehrMediator 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
MehrAnleitung 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
MehrAnbindung 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
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
MehrBernadette 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.
MehrAutoCAD 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
MehrXSLT 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,
MehrResultate 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
MehrCorporate Websites MEHRSPRACHIGE MULTICHANNEL-PROJEKTE MIT WORKFLOWS. 18. und 19. September DMEXCO 2013. Michael Steinfort, comspace. www.sitecore.
Corporate Websites MEHRSPRACHIGE MULTICHANNEL-PROJEKTE MIT WORKFLOWS Michael Steinfort, comspace 18. und 19. September DMEXCO 2013 Deutschland und die Sprachen Corporate Websites haben bei internationalen
MehrSpeicher 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
MehrTipps 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
MehrOperationalisierbare 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
Mehr1 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
Mehr2. 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
MehrBOKUbox. 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
Mehr