Exkurs: Paralleles Rechnen

Größe: px
Ab Seite anzeigen:

Download "Exkurs: Paralleles Rechnen"

Transkript

1 Münster Exkurs: Paralleles Rechnen December 2, 2013

2 , Münster Exkurs: Paralleles Rechnen 2 /27 Warum parallel Rechnen?

3 Westf alische Wilhelms-Universit at M unster Exkurs: Paralleles Rechnen 2 /27 JUQUEEN, FZ J ulich, Platz 8 weltweit WWU M unster Warum parallel Rechnen?,,

4 Westf alische Wilhelms-Universit at M unster Exkurs: Paralleles Rechnen 2 /27 Warum parallel Rechnen? JUQUEEN, FZ J ulich, Platz 8 weltweit WWU M unster nur etwas f ur spezial Anwendungen!,,

5 Westf alische Wilhelms-Universit at M unster Exkurs: Paralleles Rechnen 2 /27 Warum parallel Rechnen? JUQUEEN, FZ J ulich, Platz 8 weltweit WWU M unster wirklich?!,,

6 Westf alische Wilhelms-Universit at M unster Exkurs: Paralleles Rechnen 2 /27 Warum parallel Rechnen? WWU M unster Parallelrechner gibt es u berall!,,

7 Münster Exkurs: Paralleles Rechnen 3 /27 Wie hilft paralleles Rechnen? Nebenläufigkeit Abarbeitung mehrerer Prozesse auf einem Prozessor Multi-Tasking Betriebssysteme seit den 60er Jahren Bedienung mehrerer Geräte und Benutzer Ziel: Steigerung der Auslastung Hyperthreading : Nutze Wartezeiten des Prozessors Multi-Core / Multi-Processor Mehrere Dinge gleichzeitig: Web-Browser, Desktop Koordinationsproblematik tritt bereits hier auf Verteilte Anwendungen Datenbasis ist inhärent verteilt: betriebswirtschaftliche Software, Warenfluß in großen Unternehmen Hier wichtig: plattformübergreifende Kommunikation, Client-Server Architekturen Auch wichtig: Sicherheit, VPN, etc. (behandeln wir nicht),

8 Münster Exkurs: Paralleles Rechnen 4 /27 Nicht mehr schneller, sondern mehr! Kathy Yelick: Ten Ways to Waste a Parallel Computer Keynote ISCA The 36th International Symposium on Computer Architecture (mit Daten von Kunle Olukotun, Lance Hammond, Herb Sutter, Burton Smith, Chris Batten und Krste Asanoviç),

9 , Münster Exkurs: Paralleles Rechnen 5 /27 Zahl der Cores pro System wächst sehr schnell

10 Westf alische Wilhelms-Universit at M unster Exkurs: Paralleles Rechnen 6 /27 I I I IBM BlueGene Q z.b. JUQUEEN im FZ J ulich (Platz 8 weltweit) einige unter den TOP 500 WWU M unster Es gibt sehr verschiedene Parallelrechner,,

11 , Münster Exkurs: Paralleles Rechnen 6 /27 Es gibt sehr verschiedene Parallelrechner 4 12 Core AMD-Opteron kann sich auch die Mathematik leisten ;-)

12 , Münster Exkurs: Paralleles Rechnen 6 /27 Es gibt sehr verschiedene Parallelrechner Nvidia Geforce GTX Streamprozessoren 22. März 2012

13 , Münster Exkurs: Paralleles Rechnen 6 /27 Es gibt sehr verschiedene Parallelrechner Mobiltelefone Multi-Core Prozessoren z.b. links: Android-Handy mit 1,5 GHz Dual-Core-CPU ( 300e) rechts: Quad-Core Smartphone

14 Münster Exkurs: Paralleles Rechnen 7 /27 Paralleles Rechnen zur Wettersimulation Erste Idee eines Parallelrechners zur Wettervorhersage stammt von Lewis Fry Richardson Buch: Weather Prediction by Arithmetical Finite Differences (1916) An einzelnen Messpunkten werden Wetterdaten in versch. Höhen erhoben Messpunkte über die Erde verteilt Auflösung ca. 100 km Jeder Messpunkt sollte von einem Computer ausgewertet werden Vorhersage für den Folgetag

15 Münster Exkurs: Paralleles Rechnen 7 /27 Paralleles Rechnen zur Wettersimulation Erste Idee eines Parallelrechners zur Wettervorhersage stammt von Lewis Fry Richardson Buch: Weather Prediction by Arithmetical Finite Differences (1916) An einzelnen Messpunkten werden Wetterdaten in versch. Höhen erhoben Messpunkte über die Erde verteilt Auflösung ca. 100 km Jeder Messpunkt sollte von einem Computer ausgewertet werden Vorhersage für den Folgetag Wurde nie umgesetzt, und hätte so auch nicht funktioniert

16 Münster Exkurs: Paralleles Rechnen 7 /27 Paralleles Rechnen zur Wettersimulation Heute: Deutscher Wetterdienst NEC SX-9 Vectorrechner (seit 2009) ca. 11 TFlops Auflösung von 2,8 km

17 Münster Exkurs: Paralleles Rechnen 7 /27 Paralleles Rechnen zur Wettersimulation Heute: Deutscher Wetterdienst NEC SX-9 Vectorrechner (seit 2009) ca. 11 TFlops Auflösung von 2,8 km Earthsimulator Japanischer Supercomputer Klimasimulationen der gesamten Erde Führte von 2002 bis 2004 die TOP 500 an Upgrade 2009

18

19 Münster Exkurs: Paralleles Rechnen 8 /27 Konzepte für Parallelrechner P P P C C C Gemeinsamer Speicher Verteilter Speicher Verbindungsnetzwerk Speicher M,

20 , Münster Exkurs: Paralleles Rechnen 8 /27 Konzepte für Parallelrechner P C M P C M Gemeinsamer Speicher Verteilter Speicher Verbindungsnetzwerk

21

22 , Münster Exkurs: Paralleles Rechnen 9 /27 MPI: Message Passing Interface Portable Bibliothek zum Nachrichtenaustausch Wurde durch ein intern. Gremium entwickelt 1997 wurde der Standard überarbeitet (MPI2) Open-Source Implementieren gibt beispielweise von: MPICH 1 und OpenMPI 2 Eigenschaften von MPI: Direkte Anbindung an C, C++ und Fortran verschiedene Arten von Punkt-zu-Punkt Kommunikation globale Kommunikation Daten Umwandlung in heterogenen Systemen Virtuelle Netze & Topologien möglich

23 , Münster Exkurs: Paralleles Rechnen 10 /27 Hello World 1 # include <mpi.h> # include <iostream > 3 int main ( int argc, char ** argv ) 5 { int *buf, i, rank, nints, len ; 7 char hostname [256]; 9 MPI_Init (& argc,& argv ); MPI_Comm_rank ( MPI_COMM_WORLD, & rank ); 11 gethostname ( hostname,255); std :: cout << " Hello world! I am process number : " << rank 13 << " on host " << hostname << std :: endl ; MPI_Finalize (); 15 return 0; }

24 , Münster Exkurs: Paralleles Rechnen 11 /27 Kompilieren eines Programms Das Beispiel ist im SPMD-Stil geschrieben; der MPI Standard legt dies nicht fest und man kann auch andere Paradigmen verwenden. Kompilieren eines MPI C-Programmes und starten mit 8 Prozessen: mpicc -o hello hello.c mpirun -machinefile machines -np 8 hello Die Liste der Computer steht in der Datei machines. Für C++ Programme heisst der Compiler mpicxx -o hello hello.cc

25 , Münster Exkurs: Paralleles Rechnen 12 /27 Initialisierung und Beenden Bevor irgend ein MPI Befehl aufgerufen werden darf, muss MPI mit MPI_Init initialisiert werden, damit MPI das parallele Programm starten kann. int MPI_Init ( int *argc, char *** argv ) Nach dem letzten MPI Aufruf wird MPI_Finalize ausgeführt, um alles Prozesse ordentlich zu beenden. int MPI_ Finalize ( void )

26 , Münster Exkurs: Paralleles Rechnen 13 /27 Kommunikator MPI erlaubt es Kommunikation auf einem Subset der gestarten Prozesse durchzuführen, indem virtuelle Netzwerke, sogenannte Kommunikatoren, angelegt werden. MPI Comm beschreibt einen Kommunikator, eine Menge von Prozessen {0,..., P 1}. Des vordefinierte Netzwerk MPI COMM WORLD enthält alle gestarten Prozesse. Virtuelle Topologien: Ein Kommunikator kann zusätzlich eine spezielle Struktur erhalten, z.b. ein mehrdimensionales Feld, oder ein allgemeiner Graph. Kontext: Jeder Kommunikator definiert seinen eigenen Kommunikationskontext.

27 , Münster Exkurs: Paralleles Rechnen 14 /27 Rank und Size Die Anzahl der Prozesse in einem Kommunikator wird mit MPI_Comm_size bestimmt: int MPI_Comm_size ( MPI_Comm comm, int * size ) Innerhalb eines Kommunikators hat jeder Prozess eine eindeutige Nummer, diese wird mit MPI_Comm_rank bestimmt: int MPI_Comm_rank ( MPI_Comm comm, int * rank )

28 , Münster Exkurs: Paralleles Rechnen 15 /27 Beispiel (I) 1 # include <stdio.h> # include < string.h> 3 # include <mpi.h> // provides MPI macros and functions 5 int main ( int argc, char * argv []) { 7 int my_rank ; int P; 9 int dest ; int source ; 11 int tag =50; char hostname [256]; 13 MPI_Status status ; 15 MPI_Init (& argc,& argv ); // begin of every MPI program MPI_Comm_size ( MPI_COMM_WORLD,& P); // number of processes 17 MPI_Comm_rank ( MPI_COMM_WORLD,& my_rank ); // my process number gethostname ( hostname,255);

29 Münster Exkurs: Paralleles Rechnen 16 /27 Beispiel (II) 20 // number of current process always between 0 and P -1 if ( my_rank!=0) { 22 dest = 0; MPI_Send ( hostname, strlen ( hostname )+1, MPI_CHAR, // Send data 24 dest,tag, MPI_COMM_WORLD ); // ( blocking ) } 26 else { for ( source =1; source <P; source ++) 28 { MPI_Recv ( hostname,256, MPI_CHAR, source, tag, // Receive data 30 MPI_COMM_WORLD,& status ); // ( blocking ) std :: cout << " Reveived a message from process " << source 32 << " on machine " << hostname << std :: endl ; } 34 } 36 MPI_Finalize (); // end of every MPI program return 0; 38 },

30 , Münster Exkurs: Paralleles Rechnen 17 /27 Ausgabe des Beispielprogramms (mit P=8) > mpirun -machinefile machines -np 8./mpi-name Reveived a message from process 1 on machine SCHAF03 Reveived a message from process 2 on machine SCHAF05 Reveived a message from process 3 on machine SCHAF07 Reveived a message from process 4 on machine SCHAF11 Reveived a message from process 5 on machine SCHAF13 Reveived a message from process 6 on machine SCHAF14 Reveived a message from process 7 on machine SCHAF15

31 Münster Exkurs: Paralleles Rechnen 18 /27 Blockierende Kommunikation Die Entsprechung zu send und recv bieten int MPI_ Send ( void * message, int count, MPI_ Datatype dt, 2 int dest, int tag, MPI_ Comm comm ); int MPI_ Recv ( void * message, int count, MPI_ Datatype dt, 4 int src, int tag, MPI_ Comm comm, MPI_ Status * status ); Die ersten drei Parameter message, count und dt beschreiben die eigentlichen Daten. message ist ein Zeiger auf ein Feld mit count Elementen des Typs dt. Die Angabe des Datentyps erlaubt die automatische Umwandlung durch MPI. Die Parameter dest, tag und comm beschreiben das Ziel bzw. die Quelle der Nachricht.

32 Münster Exkurs: Paralleles Rechnen 18 /27 Blockierende Kommunikation Die Entsprechung zu send und recv bieten 1 int MPI_ Send ( void * message, int count, MPI_ Datatype dt, int dest, int tag, MPI_ Comm comm ); 3 int MPI_ Recv ( void * message, int count, MPI_ Datatype dt, int src, int tag, MPI_ Comm comm, 5 MPI_ Status * status ); Die ersten drei Parameter message, count und dt beschreiben die eigentlichen Daten. message ist ein Zeiger auf ein Feld mit count Elementen des Typs dt. Die Angabe des Datentyps erlaubt die automatische Umwandlung durch MPI. Die Parameter dest, tag und comm beschreiben das Ziel bzw. die Quelle der Nachricht. MPI bietet verschiedene Varianten von MPI Send (MPI BSend, MPI SSend, MPI RSend), die wir aber jetzt nicht weiter diskutieren wollen.

33 Münster Exkurs: Paralleles Rechnen 18 /27 Blockierende Kommunikation Die Entsprechung zu send und recv bieten 1 int MPI_ Send ( void * message, int count, MPI_ Datatype dt, int dest, int tag, MPI_ Comm comm ); 3 int MPI_ Recv ( void * message, int count, MPI_ Datatype dt, int src, int tag, MPI_ Comm comm, 5 MPI_ Status * status ); Die ersten drei Parameter message, count und dt beschreiben die eigentlichen Daten. message ist ein Zeiger auf ein Feld mit count Elementen des Typs dt. Die Angabe des Datentyps erlaubt die automatische Umwandlung durch MPI. Die Parameter dest, tag und comm beschreiben das Ziel bzw. die Quelle der Nachricht. MPI bietet verschiedene Varianten von MPI Send (MPI BSend, MPI SSend, MPI RSend), die wir aber jetzt nicht weiter diskutieren wollen. MPI ANY SOURCE und MPI ANY TAG können verwendet werden, um belibige Nachrichten zu empfangen. Damit enthält MPI Recv die Funktionalität von recv any.,

34 , Münster Exkurs: Paralleles Rechnen 19 /27 Datenumwandlung MPI erlaubt die Verwendung in heterogenen Netzen. Hierbei ist es nötig manche Daten an die Darstellung auf der fremden Architektur anzupassen. MPI definiert die architektur-unabhängigen Datentypen: MPI CHAR, MPI UNSIGNED CHAR, MPI BYTE MPI SHORT, MPI INT, MPI LONG, MPI LONG LONG INT, MPI UNSIGNED, MPI UNSIGNED SHORT, MPI UNSIGNED LONG, MPI FLOAT, MPI DOUBLE and MPI LONG DOUBLE. Der MPI Datentyp MPI BYTE wird nie konvertiert.

35 , Status Münster Exkurs: Paralleles Rechnen 20 /27 1 typedef struct { int count ; 3 int MPI_ SOURCE ; int MPI_TAG ; 5 int MPI_ ERROR ; } MPI_ Status ; MPI_Status ist ein zusammengesetzter Datentyp, der Informationen über die Anzahl der empfangenen Objekte, den Quellprozess, das Tag und den Fehlerstatus enhält.

36 , Münster Exkurs: Paralleles Rechnen 21 /27 Guard Funktion Die Guard Funktion rprobe liefert int MPI_ Iprobe ( int source, int tag, MPI_ Comm comm, 2 int * flag, MPI_ Status * status ); Es ist eine nicht-blockierende Funktion, die überprüft, ob eine Nachricht vorliegt. flag erhält den Wert true ( 0) wenn eine Nachricht mit passendem source und tag empfangen werden kann. Auch hier können MPI ANY SOURCE und MPI ANY TAG verwendet werden.

37 , Münster Exkurs: Paralleles Rechnen 22 /27 Non-blocking Communication Die Funktionen asend und arecv bietet MPI als int MPI_ ISend ( void * buf, int count, MPI_ Datatype dt, 2 int dest, int tag, MPI_ Comm comm, MPI_ Request * req ); 4 int MPI_ IRecv ( void * buf, int count, MPI_ Datatype dt, int src, int tag, MPI_ Comm comm, 6 MPI_ Request * req ); MPI Request speichert den Status einer Kommunikation, wie unsere msgid.

38 , Münster Exkurs: Paralleles Rechnen 23 /27 MPI Request-Objekte Der Status einer Nachricht kann mit Hilfe der MPI Request-Objekte und folgender Funktion geprüft werden: int MPI_Test ( MPI_Request *req, int *flag, 2 MPI_ Status * status ); flag wird auf true ( 0) gesetzt, wenn die Kommunikation, die req beschreibt abgeschlossen ist. In diesem Fall enthält status weitere Informationen.

39 , Münster Exkurs: Paralleles Rechnen 24 /27 Globale Kommunikation MPI bietet ebenfalls Funktionen zur globalen Kommunikation, welche alle Prozesse eines Kommunikators einschließen. int MPI_ Barrier ( MPI_ Comm comm ); implementiert eine Barriere; alle Prozesse werden blockiert, bis der letzte Prozess die Funktion ausgeführt hat. 1 int MPI_ Bcast ( void * buf, int count, MPI_ Datatype dt, int root, MPI_ Comm comm ); verteilt eine Nachricht an alle Prozesse eine Kommunikators (Einer-an-Alle Kommunikation).

40 , Münster Exkurs: Paralleles Rechnen 25 /27 Einsammeln von Daten MPI hat eine Reihe verschiedener Funktionen um Daten von verschiedenen Prozessen einzusammeln. Z.B: int MPI_ Reduce ( void * sbuf, void * rbuf, int count, 2 MPI_ Datatype dt, MPI_Op op, int root, MPI_ Comm comm ); kombiniert die Daten im Sende-Puffer sbuf aller Prozesse durch die assoziative Operation op (z.b. MPI SUM, MPI MAX oder MPI MIN). Das Ergebnis erhält der Prozesse root in seinen Empfang-Puffer rbuf.

41 , Münster Exkurs: Paralleles Rechnen 26 /27 Zeitmessung MPI bietet direkt Funktionen zur Zeitmessung: 1 double MPI_ Wtime (); Der Rückgabewert sind Sekunden seit einem,,beliebigen Zeitpunkt in der Vergangenheit. Die Zeit für eine spezielle Operation läßt sich also mit 1 double start = MPI_ Wtime (); expensive_ funktion (); 3 std :: cout << " elapsed time = " << MPI_ Wtime () - start << std :: endl ; bestimmen.

42 , Münster Exkurs: Paralleles Rechnen 27 /27 Weitere Informationen MPI: Dokumentation der verschiedenen Message-Passing Interface Standards MPICH-A Portable Implementation of MPI Open MPI: Open Source High Performance Computing Liste von MPI Tutorials

Exkurs: Paralleles Rechnen

Exkurs: 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:

Mehr

Paralleles Rechnen: MPI

Paralleles Rechnen: MPI Münster Paralleles Rechnen: MPI 11.12.2015 Top 500 Münster Paralleles Rechnen: MPI 2 /23 32 Großrechner in Deutschland unter den Top 500 davon 5 Systeme unter den Top 50 8 Hazel Hen (HLRS Stuttgart) 11

Mehr

Das Message Passing Paradigma (1)

Das Message Passing Paradigma (1) Das Message Passing Paradigma (1) Das Message Passing Paradigma (2) Sehr flexibel, universell, hoch effizient Programm kann logisch in beliebig viele Prozesse aufgeteilt werden Prozesse können unterschiedlichen

Mehr

Kurzübersicht über die wichtigsten MPI-Befehle

Kurzübersicht über die wichtigsten MPI-Befehle Kurzübersicht über die wichtigsten MPI-Befehle Hans Joachim Pflug Rechen- und Kommunkationszentrum der RWTH Aachen Inhalt MPI_Init / MPI_Finalize...2 MPI_Comm_size / MPI_Comm_rank...3 MPI_Send / MPI_Recv...4

Mehr

MPI Message Passing Interface. Matus Dobrotka Jan Lietz

MPI Message Passing Interface. Matus Dobrotka Jan Lietz MPI Message Passing Interface Matus Dobrotka Jan Lietz 25.5.2016 MPI Ein Standard, der den Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen beschreibt MPI-Applikation mehrere

Mehr

Message Passing Interface: MPI

Message Passing Interface: MPI Message Passing Interface: MPI Geschichte: Erster MPI Standard Etwa 60 Personen, von 40 Institutionen (29-30 April 1992) MPI 1 im November 1993 MPI 1.1 im Juni 1995 MPI 1.2 Juli 1997 (Nur Ergänzung zu

Mehr

Modelle der Parallelverarbeitung

Modelle 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

Mehr

4.4. MPI Message Passing Interface

4.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

Mehr

Parallel Programming: Message-Passing-Interface

Parallel Programming: Message-Passing-Interface Vorlesung Rechnerarchitektur 2 Seite 71 MPI-Einführung Parallel Programming: Voraussetzungen im Source-Code für ein MPI Programm: mpi.h includen Die Kommandozeilenparameter des Programms müssen an MPI_Init

Mehr

Distributed-Memory Programmiermodelle II

Distributed-Memory Programmiermodelle II Distributed-emory Programmiermodelle II Stefan Lang Interdisziplinäres Zentrum für Wissenschaftliches Rechnen Universität Heidelberg INF 368, Raum 532 D-69120 Heidelberg phone: 06221/54-8264 email: Stefan.Lang@iwr.uni-heidelberg.de

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Enno Zieckler hermann.lenhart@informatik.uni-hamburg.de MPI Kommunikation: Das wichtigste Kriterium für

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Nathanael Hübbe hermann.lenhart@informatik.uni-hamburg.de MPI Kommunikation: Das wichtigste Kriterium für

Mehr

Grundlagen zu MPI. Martin Lanser Mathematisches Institut Universität zu Köln. October 24, 2017

Grundlagen zu MPI. Martin Lanser Mathematisches Institut Universität zu Köln. October 24, 2017 Grundlagen zu MPI Martin Lanser Mathematisches Institut Universität zu Köln October 24, 2017 Überblick Einige Grundlagen Punkt-zu-Punkt Kommunikation Globale Kommunikation Kommunikation plus Berechnung

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: 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

Mehr

Parallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt

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

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de MPI Einführung III: Kommunikation Standard = blockierende

Mehr

Trend der letzten Jahre in der Parallelrechentechnik

Trend der letzten Jahre in der Parallelrechentechnik 4.1 Einführung Trend der letzten 10-15 Jahre in der Parallelrechentechnik weg von den spezialisierten Superrechner-Plattformen hin zu kostengünstigeren Allzwecksystemen, die aus lose gekoppelten einzelnen

Mehr

MPI: Message passing interface

MPI: Message passing interface MPI: Message passing interface Es werden mehrere Prozesse gestartet, die das gleiche Programm abarbeiten. Diese Prozesse können auf dem gleichen Knoten oder verschiedenen Knoten eines Clusters von Rechnern

Mehr

Computergrundlagen Moderne Rechnerarchitekturen

Computergrundlagen Moderne Rechnerarchitekturen Aufbau eines modernen Computers Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart DDR3- Speicher Prozessor Prozessor PEG Graphikkarte(n) weitere

Mehr

Computergrundlagen Moderne Rechnerarchitekturen

Computergrundlagen Moderne Rechnerarchitekturen Computergrundlagen Moderne Rechnerarchitekturen Axel Arnold Institut für Computerphysik Universität Stuttgart Wintersemester 2010/11 Aufbau eines modernen Computers DDR3- Speicher Prozessor Prozessor PEG

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: 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

Mehr

Einführung in das parallele Programmieren mit MPI und Java

Einführung in das parallele Programmieren mit MPI und Java Einführung in das parallele Programmieren mit und Java Seite 1 Übersicht Parallele Prozesse und Erste Schritte mit Kollektive Kommunikation Weitere Möglichkeiten Seite 2 Literatur (1) Homepage des 2-Forums

Mehr

Wissenschaftliches Rechen

Wissenschaftliches Rechen Wissenschaftliches Rechen Paralleles Höchstleistungsrechnen Christian Engwer Uni Münster April 5, 2011 Christian Engwer (Uni Münster) Wissenschaftliches Rechen April 5, 2011 1 / 20 Organisatorisches Vorlesung

Mehr

Parallelverarbeitung

Parallelverarbeitung 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

Mehr

Message-Passing: Einführung

Message-Passing: Einführung Message-Passing: Einführung Architecture of Parallel Computer Systems WS15/16 JSimon 1 Punkt zu Punkt Senden und Empfangen Message-Passing Mechanismus Erzeugung von Prozessen Übertragung einer Nachricht

Mehr

Projektseminar Parallele Programmierung

Projektseminar Parallele Programmierung HTW Dresden WS 2017/2018 Organisatorisches Praktikum, 4 SWS Do. 15:10-18:30 Uhr, Z136c, 2 Doppelstunden Labor Z 136c ist Donnerstag 15:10-18:30 reserviert, gemeinsam mit anderen Projektseminaren Selbständige

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Einführung in das parallele Programmieren mit MPI

Einführung in das parallele Programmieren mit MPI Einführung in das parallele Programmieren mit Seite 1 Skript Skript Seite Seite 3 -Versionen -Versionen: Befehle: Version 1.0 (1994): Unterstützung von Fortran77 und C. Version 1.1 (1995): Berichtigungen

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016

Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Paralleles Programmieren mit OpenMP und MPI MPI-Übungsaufgaben Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Hartmut Steinbuch Häfner, Centre Steinbuch for Computing Centre for Computing

Mehr

Arrays (Felder/Vektoren)

Arrays (Felder/Vektoren) Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff

Mehr

Ein kleiner Blick auf die generische Programmierung

Ein kleiner Blick auf die generische Programmierung TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Inhalt Compiler/Editor Klassendeklaration

Mehr

Angewandte Mathematik und Programmierung

Angewandte Mathematik und Programmierung Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der

Mehr

Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden

Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden Dokument: gns_ipc_server.c, 1 - Seite 1 - - 1: 1 von 1 - Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden int main(int argc,

Mehr

Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016

Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Paralleles Programmieren mit OpenMP und MPI Einführung in MPI Vorlesung Parallelrechner und Parallelprogrammierung, SoSe 2016 Steinbuch Centre for Computing Hartmut Häfner, Steinbuch Centre for Computing

Mehr

Seminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler

Seminar Ausgewählte Komponenten von Betriebssystemen. IDL4 Compiler Seminar Ausgewählte Komponenten von Betriebssystemen IDL4 Compiler IDL4 Compiler Hristo Pentchev Überblick CORBA IDL Allgemein IDL4 Compiler Beispiele CORBA Common Objekt Request Broker Architecture Gemeinsame

Mehr

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven MPI-Programmierung unter Windows mit MPIH2 Installieren von MPIH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen hristian Terboven Rechen- und Kommunikationszentrum RWTH Aachen 1 02/2007 luster-installationsworkshop

Mehr

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE

Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach

Mehr

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz

Einführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public

Mehr

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin

Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm

Mehr

C-Kurs 2010 Pointer. 16. September v2.7.3

C-Kurs 2010 Pointer. 16. September v2.7.3 C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next

Mehr

Grundlagen der Informatik 6. Arrays I

Grundlagen der Informatik 6. Arrays I 6. Arrays I Motivation Array (konstante Länge) Speicherbereich Eingabe von Arrays Grundlagen der Informatik (Alex Rempel) 1 Motivation Beispiel: Bildschirmpixel zeichnen Auflösung 800x600, d.h. insgesamt

Mehr

Multi- und Many-Core

Multi- 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

Mehr

Projektseminar Parallele Programmierung

Projektseminar 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

Mehr

Vorlesung Betriebssysteme II

Vorlesung 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

Mehr

Einige Grundlagen zu OpenMP

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

Mehr

Praktikum Parallele Programmierung. Travelling Salesman Problem (TSP)

Praktikum Parallele Programmierung. Travelling Salesman Problem (TSP) UNIVERSITÄT HAMBURG FACHBEREICH INFORMATIK Praktikum Parallele Programmierung Travelling Salesman Problem (TSP) von Ihar Aleinikau Olesja Aleinikau & Timo Dahlbüdding 1. Problemstellung Aufgabe des TSP

Mehr

DAP2 Praktikum Blatt 1

DAP2 Praktikum Blatt 1 Fakultät für Informatik Lehrstuhl 11 / Algorithm Engineering Prof. Dr. Petra Mutzel, Carsten Gutwenger Sommersemester 2009 DAP2 Praktikum Blatt 1 Ausgabe: 21. April Abgabe: 22. 24. April Kurzaufgabe 1.1

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

MPI Prozessgruppen, Topologien, kollektive Kommunikation

MPI 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

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

Mehr

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart hermann.lenhart@informatik.uni-hamburg.de MPI Einführung II: Send/Receive Syntax Broadcast Reduce Operation

Mehr

C-Kurs 2011: Arrays, Strings, Pointer

C-Kurs 2011: Arrays, Strings, Pointer C-Kurs 2011: Arrays, Strings, Pointer Sebastian@Pipping.org 15. September 2011 v3.0.33 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. Ohne Pointer geht nichts. 2 Pointer

Mehr

Beschreiben Sie die Eigenschaften der verschiedenen Rechnertypen an Hand:

Beschreiben 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

Mehr

Repetitorium Programmieren I + II

Repetitorium Programmieren I + II Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case

Mehr

Parallele Algorithmen SoSe 2016

Parallele Algorithmen SoSe 2016 Hochschule Harz FB Automatisierung und Informatik 3. Labor: MPI Parallele Algorithmen SoSe 2016 Thema: MPI-Programmierung im Cluster mit globalen Kommunikationsoperationen: 1 Versuchsziele Einen Cluster

Mehr

Message Passing Interface (MPI)

Message Passing Interface (MPI) Westfälische Wilhelms-Universität Münster Ausarbeitung Message Passing Interface (MPI) Im Rahmen des Seminars Parallele und Verteilte Programmierung Julian Pascal Werra Themensteller: Prof. Dr. Herbert

Mehr

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015 Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)

Mehr

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches

Mehr

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1

Mehr

Parallele und Verteilte Algorithmen, Sommer 2007 Software zu den Übungen

Parallele und Verteilte Algorithmen, Sommer 2007 Software zu den Übungen PHILIPPS-UNIVERSITÄT MARBURG Fachbereich Mathematik und Informatik Prof. Dr. R. Loogen J.Berthold D-35032 Marburg Hans Meerwein Straße Lahnberge 23.April 2007 Übungen zu Parallele und Verteilte Algorithmen,

Mehr

Einführung in C. EDV1-04C-Einführung 1

Einführung in C. EDV1-04C-Einführung 1 Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags

Mehr

Einführung in die Parallelprogrammierung MPI Teil 1: Einführung in MPI

Einführung in die Parallelprogrammierung MPI Teil 1: Einführung in MPI Einführung in die Parallelprogrammierung MPI Teil 1: Einführung in MPI Annika Hagemeier Jülich Supercomputing Centre (JSC) Forschungszentrum Jülich Inhalt Was ist MPI? MPI Historie Programmiermodell Kommunikationsmodell

Mehr

! "eine Zeichenkette\nmit Doppelapostroph \" und Backslash \\"

! eine Zeichenkette\nmit Doppelapostroph \ und Backslash \\ 1.2. Datentypen Zeichenketten: Zeichenkettenliterale wie»üblich«"eine Zeichenkette\nmit Doppelapostroph \" und Backslash \\" werden als 0-terminierte char-felder realisiert char* hello = "Hello, World";

Mehr

Einführung in PVM. Das PVM System

Einführung in PVM. Das PVM System Einführung in PVM Übungen zur Vorlesung Parallele und verteilte Algorithmen Philipps-Universität Marburg Sommersemester 2002 Das PVM System PVM steht für Parallele Virtuelle Maschine Netzwerk von Unix-Workstations

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Wissenschaftliches Rechnen

Wissenschaftliches Rechnen Institut für Numerische und Angewandte Mathematik 11.04.2012 FB Mathematik und Informatik der Universität Münster Prof. Dr. Christian Engwer, Dipl. Math. Dipl. Inf. Sebastian Westerheide Übung zur Vorlesung

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11 C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Wer

Mehr

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 27. März 2009 Gruppe: F Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 9 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 15 Pkt.) Was liefert

Mehr

Teil 5: Zeiger, Felder, Zeichenketten Gliederung

Teil 5: Zeiger, Felder, Zeichenketten Gliederung Teil 5: Zeiger, Felder, Zeichenketten Gliederung Zeiger und Adressen Felder (Arrays) Zeichenketten (Strings) Zeigerarithmetik Mehrdimensionale Felder Zeiger und Adressen Felder Zeichenketten Zeigerarithmetik

Mehr

Konzepte der parallelen Programmierung

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

Mehr

Simulation der MPI collective operations im PIOsimHD

Simulation der MPI collective operations im PIOsimHD Uni Hamburg WR - Informatik 04.04.2012 Simulation der MPI collective operations im PIOsimHD 1 Artur Thiessen Informatik Bachelor Matrikelnummer: 5944906 7thiesse@informatik.uni-hamburg.de Inhaltsverzeichnis

Mehr

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16

C++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16 C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,

Mehr

Programmierkurs. Steffen Müthing. November 16, Interdisciplinary Center for Scientific Computing, Heidelberg University

Programmierkurs. Steffen Müthing. November 16, Interdisciplinary Center for Scientific Computing, Heidelberg University Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University November 16, 2018 Standardbibliothek Datenstrukturen Algorithmen Variablen und Referenzen Aufrufkonventionen

Mehr

Parallele Programmierung mit MPI

Parallele 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

Mehr

Grundlagen der Informatik 2. Typen

Grundlagen der Informatik 2. Typen Grundlagen der Informatik 2. Typen Speicher, Speicherbedarf Ein-/Ausgabe Grundlagen der Informatik (Alex Rempel) 1 Wiederholung // root calculation #include #include using namespace

Mehr

Vorlesungsprüfung Programmiersprache 1

Vorlesungsprüfung Programmiersprache 1 Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory

Mehr

Klausur zu High Performance Computing 09. Juli 2011, SS 2011

Klausur zu High Performance Computing 09. Juli 2011, SS 2011 Alexander Vondrous, Britta Nestler, Fakultät IWI, Hochschule Karlsruhe Klausur zu High Performance Computing 09. Juli 2011, SS 2011 Es sind keine Hilfsmittel zugelassen. Bearbeitungszeit: 90 Minuten Aufgabe

Mehr

Linux Cluster in Theorie und Praxis

Linux Cluster in Theorie und Praxis Foliensatz Center for Information Services and High Performance Computing (ZIH) Linux Cluster in Theorie und Praxis Parallelisierung und Cell Programmierung 03. Dezember 2009 Verfügbarkeit der Folien Vorlesungswebseite:

Mehr

Multicomputer ohne gemeinsamen Speicher 170

Multicomputer ohne gemeinsamen Speicher 170 Multicomputer ohne gemeinsamen Speicher 170 CPU RAM CPU RAM Netzwerk CPU RAM CPU RAM CPU RAM Multicomputer bestehen aus einzelnen Rechnern mit eigenem Speicher, die über ein Netzwerk miteinander verbunden

Mehr

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:

Klausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte: Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen

16. Structs und Klassen I. Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen 491 16. Structs und Klassen I Rationale Zahlen, Struct-Definition, Operator-Überladung, Datenkapselung, Klassen-Typen Rechnen mit rationalen Zahlen 492 Rationale Zahlen (Q) sind von der Form n d mit n

Mehr

Programmieren mit MPI

Programmieren mit MPI Programmieren mit MPI MPI steht für: Message Passing Interface Standard. Spezifiziert die Schnittstelle einer Bibliothek für Nachrichtentausch. Standardisierung durch ein Gremium, in dem: Hersteller v.

Mehr

Informatik I (D-MAVT)

Informatik I (D-MAVT) Informatik I (D-MAVT) Übungsstunde 8, 22.4.2009 simonmayer@student.ethz.ch ETH Zürich Aufgabe 1: Pointer & Structs Schauen wir s uns an! Aufgabe 2: Grossteils gut gemacht! Dynamische Arrays! Sortieren:

Mehr

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!

Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf  Seite 1 von 29 Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente

Mehr

2 MPI MESSAGE-PASSING INTERFACE

2 MPI MESSAGE-PASSING INTERFACE 2-1 2 MPI MESSAGE-PASSING INTERFACE 2.1 IMPLEMENTIERUNGEN VON MPI Mittlerweile gibt es eine Vielzahl an Implementierungen des Message-Passing Interfaces. Sowohl freie (GNU GPL) also auch kommerziell nutzbare

Mehr

Prozesse und Threads. wissen leben WWU Münster

Prozesse und Threads. wissen leben WWU Münster Münster Multi Threading in C++ 1 /19 Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message

Mehr

Ein- und Ausgabe mit Dateien

Ein- und Ausgabe mit Dateien Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: B Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

Ein- und Ausgabe mit Dateien

Ein- und Ausgabe mit Dateien Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen

Mehr

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.

Klausur: Grundlagen der Informatik I, am 06. Februar 2009 Gruppe: A Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr. Seite 1 von 8 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert

Mehr

OpenCL. Programmiersprachen im Multicore-Zeitalter. Tim Wiersdörfer

OpenCL. 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

Mehr