Parallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt

Größe: px
Ab Seite anzeigen:

Download "Parallel Processing in a Nutshell OpenMP & MPI kurz vorgestellt"

Transkript

1 Parallel Processing in a Nutshell & kurz vorgestellt 16. Juni / 29

2 1 Das Problem 2 2 / 29

3 1 Das Problem / 29

4 1 Das Problem / 29

5 1 Das Problem / 29

6 Multi-Core Prozessoren halten Einzug (nicht nur) auf dem Desktop Neuer Rechencluster des CITEC (16 Nodes mit je 8 Kernen -> 128 Kerne) Ziele: 3 / 29

7 Multi-Core Prozessoren halten Einzug (nicht nur) auf dem Desktop Neuer Rechencluster des CITEC (16 Nodes mit je 8 Kernen -> 128 Kerne) Ziele: Zeitkritische Anwendungen von Multi Core profitieren lassen 3 / 29

8 Multi-Core Prozessoren halten Einzug (nicht nur) auf dem Desktop Neuer Rechencluster des CITEC (16 Nodes mit je 8 Kernen -> 128 Kerne) Ziele: Zeitkritische Anwendungen von Multi Core profitieren lassen Langläufer optimal auf vorhandene Rechenresourcen verteilen Lösungen (naiv) 3 / 29

9 Multi-Core Prozessoren halten Einzug (nicht nur) auf dem Desktop Neuer Rechencluster des CITEC (16 Nodes mit je 8 Kernen -> 128 Kerne) Ziele: Zeitkritische Anwendungen von Multi Core profitieren lassen Langläufer optimal auf vorhandene Rechenresourcen verteilen Lösungen (naiv) Zeitkritische Sektionen in mehrere Threads aufteilen 3 / 29

10 Multi-Core Prozessoren halten Einzug (nicht nur) auf dem Desktop Neuer Rechencluster des CITEC (16 Nodes mit je 8 Kernen -> 128 Kerne) Ziele: Zeitkritische Anwendungen von Multi Core profitieren lassen Langläufer optimal auf vorhandene Rechenresourcen verteilen Lösungen (naiv) Zeitkritische Sektionen in mehrere Threads aufteilen Verteilen der Jobs per Hand oder in Skripten 3 / 29

11 Multi-Core Prozessoren halten Einzug (nicht nur) auf dem Desktop Neuer Rechencluster des CITEC (16 Nodes mit je 8 Kernen -> 128 Kerne) Ziele: Zeitkritische Anwendungen von Multi Core profitieren lassen Langläufer optimal auf vorhandene Rechenresourcen verteilen Lösungen (naiv) Zeitkritische Sektionen in mehrere Threads aufteilen Verteilen der Jobs per Hand oder in Skripten 3 / 29

12 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) 4 / 29

13 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen 4 / 29

14 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen 4 / 29

15 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen Multi-Threading auf Unix/Windows NT Plattformen mit SHARED Memory 4 / 29

16 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen Multi-Threading auf Unix/Windows NT Plattformen mit SHARED Memory per Kommandozeilenoption bspw. des GCC einschaltbar (-fopenmp) Vorteile: 4 / 29

17 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen Multi-Threading auf Unix/Windows NT Plattformen mit SHARED Memory per Kommandozeilenoption bspw. des GCC einschaltbar (-fopenmp) Vorteile: Programm compiliert/läuft auch seriell 4 / 29

18 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen Multi-Threading auf Unix/Windows NT Plattformen mit SHARED Memory per Kommandozeilenoption bspw. des GCC einschaltbar (-fopenmp) Vorteile: Programm compiliert/läuft auch seriell Programmteile lassen sich leicht parallelisieren 4 / 29

19 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen Multi-Threading auf Unix/Windows NT Plattformen mit SHARED Memory per Kommandozeilenoption bspw. des GCC einschaltbar (-fopenmp) Vorteile: Programm compiliert/läuft auch seriell Programmteile lassen sich leicht parallelisieren Threadanzahl muss nicht (aber kann) vorher festgelegt werden 4 / 29

20 Hello World Konzept Syntax Hello World++ API (C, C++, Fortran), von diversen Hard- und Softwareherstellern entwickelt und behütet (AMD, Cray, Fujitsu, HP, IBM, Intel, NEC, SGI, Sun, Microsoft,...) besteht aus: Compiler-Direktiven (#PRAGMA) Runtime-Library-Routinen Umgebungsvariablen Multi-Threading auf Unix/Windows NT Plattformen mit SHARED Memory per Kommandozeilenoption bspw. des GCC einschaltbar (-fopenmp) Vorteile: Programm compiliert/läuft auch seriell Programmteile lassen sich leicht parallelisieren Threadanzahl muss nicht (aber kann) vorher festgelegt werden 4 / 29

21 Hello World Konzept Syntax Hello World++ #include < s t d i o. h> #include < s t d l i b. h> i n t main ( i n t argc, char argv [ ] ) { #pragma omp p a r a l l e l { p r i n t f ( " Hallo Welt! \ n " ) ; } return (EXIT_SUCCESS ) ; } / 29

22 Hello World Konzept Syntax Hello World++ gcc -o HelloWorld -fopenmp HelloWorld.c Hallo Welt! Hallo Welt! Hallo Welt! Hallo Welt! ssh arminius./helloworld Hallo Welt! 6 / 29

23 Hello World Konzept Syntax Hello World++ Durch explizite Compileranweisungen werden Programmsektionen in Threads ( team ) aufgeteilt. Der Speicherbereich wird geshared 7 / 29

24 Hello World Konzept Syntax Hello World++ Durch explizite Compileranweisungen werden Programmsektionen in Threads ( team ) aufgeteilt. Der Speicherbereich wird geshared Verschachtelte Parallelisierung von der API möglich 7 / 29

25 Hello World Konzept Syntax Hello World++ Durch explizite Compileranweisungen werden Programmsektionen in Threads ( team ) aufgeteilt. Der Speicherbereich wird geshared Verschachtelte Parallelisierung von der API möglich Dynamische Erhöhung/Reduzierung der Anzahl der Threads 7 / 29

26 Hello World Konzept Syntax Hello World++ Durch explizite Compileranweisungen werden Programmsektionen in Threads ( team ) aufgeteilt. Der Speicherbereich wird geshared Verschachtelte Parallelisierung von der API möglich Dynamische Erhöhung/Reduzierung der Anzahl der Threads KEINE explizite Unterstützung von I/O 7 / 29

27 Hello World Konzept Syntax Hello World++ Durch explizite Compileranweisungen werden Programmsektionen in Threads ( team ) aufgeteilt. Der Speicherbereich wird geshared Verschachtelte Parallelisierung von der API möglich Dynamische Erhöhung/Reduzierung der Anzahl der Threads KEINE explizite Unterstützung von I/O Threads können ihre Daten cachen. Bei geteilten Variablen muss ggf. explizit geflushed werden 7 / 29

28 Hello World Konzept Syntax Hello World++ Durch explizite Compileranweisungen werden Programmsektionen in Threads ( team ) aufgeteilt. Der Speicherbereich wird geshared Verschachtelte Parallelisierung von der API möglich Dynamische Erhöhung/Reduzierung der Anzahl der Threads KEINE explizite Unterstützung von I/O Threads können ihre Daten cachen. Bei geteilten Variablen muss ggf. explizit geflushed werden 7 / 29

29 Hello World Konzept Syntax Hello World++ #pragma omp <Direktive> [Klausel,... ] parallel - erstellt Team von Threads for - verteilt Schleife aufs Team sections - leitet Block mit Unteraufgaben ein single - Block für einen Thread parallel for - Kombi parallel & for task - Erstellen von tasks 8 / 29

30 Hello World Konzept Syntax Hello World++ #pragma omp <Direktive> [Klausel,... ] master Block für Master-Thread critical Block für einen Thread gleichzeitig barrier Barriere für alle Threads taskwait Warte auf beenden der tasks atomic garantiere Atomare Speicherbehandlung flush Schreibe Thread-Variablen ordered Durchlaufe Block in Schleife sortiert threadprivate Kopiere Variablen in für T. private 9 / 29

31 Hello World Konzept Syntax Hello World++ #pragma omp <Direktive> [Klausel,... ] Klauseln: shared (list) private (list) firstprivate (list) Initialisierung aller private lastprivate (list) Update nach Ende der Region reduction (operator:list) Update nach Ende der Region nach Regel 10 / 29

32 Hello World Konzept Syntax Hello World++ i n t main ( i n t argc, char argv ) { i n t a [ 5 ], i, x =1; #pragma omp p a r a l l e l for shared ( x ) for ( i =0; i < 5; i ++) { p r i n t f ( " S c h r i t t %d \ n ", i ) ; sleep ( 1 ) ; a [ i ] = x = x+x ; } for ( i =0; i <5; p r i n t f ( " a[%d ] = %d \ n ", i, a [ i + + ] ) ) ; return (EXIT_SUCCESS ) ; } / 29

33 Hello World Konzept Syntax Hello World++ gcc -o zweitesbeispiel-omp -fopenmp zweitesbeispiel.c gcc -o zweitesbeispiel-serial zweitesbeispiel.c time./zweitesbeispiel-serial Schritt 0 Schritt 1 Schritt 2 Schritt 3 Schritt 4 a[1] = 2 a[2] = 4 a[3] = 8 a[4] = 16 a[5] = 32 real 0m5.001s 12 / 29

34 Hello World Konzept Syntax Hello World++ time./zweitesbeispiel-omp Schritt 0 Schritt 2 Schritt 4 Schritt 1 Schritt 3 a[1] = 2 a[2] = 16 a[3] = 4 a[4] = 32 a[5] = 8 real 0m2.002s 13 / 29

35 Hello World Konzept Syntax Hello World++ i n t main ( i n t argc, char argv ) { i n t id, i ; omp_set_num_threads ( 4 ) ; #pragma omp p a r a l l e l for p r i v a t e ( i d ) for ( i = 0; i < 4; ++ i ) { i d = omp_get_thread_num ( ) ; p r i n t f ( " Hello World from thread %d \ n ", i d ) ; #pragma omp b a r r i e r i f ( i d == 0) p r i n t f ( " There are %d threads \ n ", omp_get_num_threads ( ) ) ; } } / 29

36 Hello World Konzept Syntax Hello World++ $ gcc -o drittesbeispiel -fopenmp drittesbeispiel.c $./drittesbeispiel Hello World from thread 2 Hello World from thread 1 Hello World from thread 3 Hello World from thread 0 There are 4 threads 15 / 29

37 Hello World Konzept Syntax Hello World++ Was NICHT kann: Auf verteilten Speicher zugreifen Speichereffizienz garantieren 16 / 29

38 Hello World Konzept Syntax Hello World++ Was NICHT kann: Auf verteilten Speicher zugreifen Speichereffizienz garantieren Garantie gleichen Verhaltens verschiedener Implementationen 16 / 29

39 Hello World Konzept Syntax Hello World++ Was NICHT kann: Auf verteilten Speicher zugreifen Speichereffizienz garantieren Garantie gleichen Verhaltens verschiedener Implementationen Prüfen von Datenkonsistenz, Abhängigkeiten, deadlocks, race conditions 16 / 29

40 Hello World Konzept Syntax Hello World++ Was NICHT kann: Auf verteilten Speicher zugreifen Speichereffizienz garantieren Garantie gleichen Verhaltens verschiedener Implementationen Prüfen von Datenkonsistenz, Abhängigkeiten, deadlocks, race conditions Synchronisierte I/O 16 / 29

41 Hello World Konzept Syntax Hello World++ Was NICHT kann: Auf verteilten Speicher zugreifen Speichereffizienz garantieren Garantie gleichen Verhaltens verschiedener Implementationen Prüfen von Datenkonsistenz, Abhängigkeiten, deadlocks, race conditions Synchronisierte I/O 16 / 29

42 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität 17 / 29

43 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL, / 29

44 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und / 29

45 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und 2.0 Freie Implementationen verfügbar: lam-mpi, CH, Open (lam-mpi Nachfolger) / 29

46 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und 2.0 Freie Implementationen verfügbar: lam-mpi, CH, Open (lam-mpi Nachfolger)... Eine API mit Vorwärtskompabilität 17 / 29

47 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und 2.0 Freie Implementationen verfügbar: lam-mpi, CH, Open (lam-mpi Nachfolger)... Eine API mit Vorwärtskompabilität API gesichert durch Gremium ( Forum) 17 / 29

48 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und 2.0 Freie Implementationen verfügbar: lam-mpi, CH, Open (lam-mpi Nachfolger)... Eine API mit Vorwärtskompabilität API gesichert durch Gremium ( Forum) Damit Sourcecode-kompabilität 17 / 29

49 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und 2.0 Freie Implementationen verfügbar: lam-mpi, CH, Open (lam-mpi Nachfolger)... Eine API mit Vorwärtskompabilität API gesichert durch Gremium ( Forum) Damit Sourcecode-kompabilität C, C++, Fortran 17 / 29

50 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Message Passing Interface - Standard zur Nachrichtenübertragung Ziele: Effizienz, Portabilität, Flexibilität Forum: IBM, Intel, HP, ncube s Vertex, p4, Zipcode, Chimp, PVM, Chameleon, PICL,... Seit 1995: 1.0, danach 1.1, 1.2 und 2.0 Freie Implementationen verfügbar: lam-mpi, CH, Open (lam-mpi Nachfolger)... Eine API mit Vorwärtskompabilität API gesichert durch Gremium ( Forum) Damit Sourcecode-kompabilität C, C++, Fortran 17 / 29

51 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Kommunikation auf Prozessebene Shared Memory, TCP,... Implementationen übernehmen: 18 / 29

52 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Kommunikation auf Prozessebene Shared Memory, TCP,... Implementationen übernehmen: Verteilen der Prozesse (bspw. mit rsh/ssh) 18 / 29

53 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Kommunikation auf Prozessebene Shared Memory, TCP,... Implementationen übernehmen: Verteilen der Prozesse (bspw. mit rsh/ssh) Wahl des Kommunikationsmediums 18 / 29

54 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Kommunikation auf Prozessebene Shared Memory, TCP,... Implementationen übernehmen: Verteilen der Prozesse (bspw. mit rsh/ssh) Wahl des Kommunikationsmediums 18 / 29

55 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Vorbedingungen Erster -Aufruf: _Init () Bewirkt u.a. Erstellung von _COMM_WORLD 19 / 29

56 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Vorbedingungen Erster -Aufruf: _Init () Bewirkt u.a. Erstellung von _COMM_WORLD Letzter ()-Aufruf _Finalize () 19 / 29

57 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Vorbedingungen Erster -Aufruf: _Init () Bewirkt u.a. Erstellung von _COMM_WORLD Letzter ()-Aufruf _Finalize () -Programme können mit extra Wrappern gebaut werden (mpicc, mpicxx, mpif77). 19 / 29

58 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Vorbedingungen Erster -Aufruf: _Init () Bewirkt u.a. Erstellung von _COMM_WORLD Letzter ()-Aufruf _Finalize () -Programme können mit extra Wrappern gebaut werden (mpicc, mpicxx, mpif77). -Programme werden mit einem Helfer verteilt und gestartet: mpirun -np 4 -hostfile hostfile.txt executable 19 / 29

59 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Vorbedingungen Erster -Aufruf: _Init () Bewirkt u.a. Erstellung von _COMM_WORLD Letzter ()-Aufruf _Finalize () -Programme können mit extra Wrappern gebaut werden (mpicc, mpicxx, mpif77). -Programme werden mit einem Helfer verteilt und gestartet: mpirun -np 4 -hostfile hostfile.txt executable 19 / 29

60 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Erstes Beispiel #include <mpi. h> i n t main ( i n t argc, char argv ) { i n t i e r r o r, rank, size ; i e r r o r = M P I _Init (& argc,& argv ) ; i f ( i e r r o r!= _SUCCESS) schade ( ) ; _Comm_rank (_COMM_WORLD, &rank ) ; _Comm_size (_COMM_WORLD, & s i z e ) ; _Finalize ( ) ; return (EXIT_SUCCESS ) ; } / 29

61 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation synchron Sender blockiert, bis Empfänger Nachricht erhalten hat asynchron Sender schickt Nachricht ohne auf die Rückmeldung des Empfängers zu warten 21 / 29

62 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation synchron Sender blockiert, bis Empfänger Nachricht erhalten hat asynchron Sender schickt Nachricht ohne auf die Rückmeldung des Empfängers zu warten Wichtig In braucht jedes SEND ein entsprechendes RECEIVE. 21 / 29

63 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation synchron Sender blockiert, bis Empfänger Nachricht erhalten hat asynchron Sender schickt Nachricht ohne auf die Rückmeldung des Empfängers zu warten Wichtig In braucht jedes SEND ein entsprechendes RECEIVE. 21 / 29

64 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (blocking) _Send (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm)) (Standard: Entweder buffered oder synchron) _Ssend (...) (Synchron) 22 / 29

65 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (blocking) _Send (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm)) (Standard: Entweder buffered oder synchron) _Ssend (...) (Synchron) _Bsend (...) (Buffered) 22 / 29

66 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (blocking) _Send (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm)) (Standard: Entweder buffered oder synchron) _Ssend (...) (Synchron) _Bsend (...) (Buffered) _Rsend (...) (Ready) 22 / 29

67 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (blocking) _Send (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm)) (Standard: Entweder buffered oder synchron) _Ssend (...) (Synchron) _Bsend (...) (Buffered) _Rsend (...) (Ready) 22 / 29

68 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (non-blocking) _Isend (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm, _Request *request) _Issend (...) (Synchron) 23 / 29

69 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (non-blocking) _Isend (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm, _Request *request) _Issend (...) (Synchron) _Ibsend (...) (Buffered) 23 / 29

70 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (non-blocking) _Isend (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm, _Request *request) _Issend (...) (Synchron) _Ibsend (...) (Buffered) _Irsend (...) (Ready) 23 / 29

71 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (non-blocking) _Isend (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm, _Request *request) _Issend (...) (Synchron) _Ibsend (...) (Buffered) _Irsend (...) (Ready) Statusabfrage mit _Wait() oder _Test() 23 / 29

72 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Send (non-blocking) _Isend (void *buf, int count, _Datatype datatype, int dest, int tag, _Comm comm, _Request *request) _Issend (...) (Synchron) _Ibsend (...) (Buffered) _Irsend (...) (Ready) Statusabfrage mit _Wait() oder _Test() 23 / 29

73 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Receive: _Recv () (blocking) _Irecv () (non-blocking) 24 / 29

74 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Receive: _Recv () (blocking) _Irecv () (non-blocking) Es können beide Varianten gemischt benutz werden. 24 / 29

75 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Receive: _Recv () (blocking) _Irecv () (non-blocking) Es können beide Varianten gemischt benutz werden. _Waitany () _Testany () _Waitall () _Testall () _Waitsome () _Testsome () 24 / 29

76 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Receive: _Recv () (blocking) _Irecv () (non-blocking) Es können beide Varianten gemischt benutz werden. _Waitany () _Testany () _Waitall () _Testall () _Waitsome () _Testsome () 24 / 29

77 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation #define t o _ r i g h t 201 #define t o _ l e f t 102 i n t main ( i n t argc, char argv [ ] ) { i n t right, l e f t, rank, my_rank, size, other, i, sum ; _Status send_status, recv_status ; _Request request ; M P I_Init (& argc, &argv ) ; _Comm_rank (_COMM_WORLD, &my_rank ) ; _Comm_size (_COMM_WORLD, &size ) ; r i g h t = ( my_rank + 1) % size ; l e f t = ( my_rank 1) % size ; sum = 0; rank = my_rank ; for ( i = 0; i < size ; i ++) { _Issend (& rank, 1, _INT, right, to_ right,_comm_world, &request ) ; _Recv(& other, 1, _INT, l e f t, to_ right, _COMM_WORLD, &recv_status ) ; _Wait(& request, &send_status ) ; sum += other ; rank = other ; } p r i n t f ( "PE %d : \ t Sum = %d \ n ", rank, sum ) ; _Finalize ( ) ; return (EXIT_SUCCESS ) ; } 25 / 29

78 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Datentypen: Basic, Vektoren, Structs,... Topologien: Prozesse bspw. Carthesisch anordnenbar bishin zu allgemeinen Graphen _Barrier() analog zu 26 / 29

79 Vorgeplänkel Erstes Beispiel Kollektive Kommunikation Deutliche Unterschiede zu Point-to-Point: Immer über einen Communicator (z.b. _COMM_WORLD) Alle Prozesse müssen kommunizieren Mit oder ohne Synchronisation Nur blocking möglich Keine Tags Receive buffer müssen exakt die richtige Größe haben _Bcast(), _Scatter(), _Gather, _Reduce(), _All_to_all() 27 / 29

80 2003: 16 PCs unter brachten 0.5 GFLOPS (AG NI) 2009: 1 QuadCore bringt 3.2 GFLOPS () bzw. 2.0 () (vgl. 1.2 GFLOPS Single Thread) Mittels einfache Parallelisierung (parallel for / sections) Mittel bspw. durch Master-Worker Aufteilung Nutzung großer Rechenrescourcen BTW: & können zusammen benutzt werden 28 / 29

81 Writing Message-Passing Parallel Programs with - University of Edinburgh - /epcc-course/ -Primer / Developing with LAM- - University of Ohio - Cluster Quick Start Version Douglas Eadline - Message Passing Interface () FAQ - comp.parallel.mpi - Forum - Wikipedia 29 / 29

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

Parallele Programmierung mit OpenMP

Parallele Programmierung mit OpenMP Parallele Programmierung mit OpenMP - Eine kurze Einführung - 11.06.2003 RRZN Kolloquium SS 2003 1 Gliederung 1. Grundlagen 2. Programmiermodell 3. Sprachkonstrukte 4. Vergleich MPI und OpenMP 11.06.2003

Mehr

OpenMP am Beispiel der Matrizenmultiplikation

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

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

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

Parallele Programmierung mit OpenMP

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

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

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

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

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

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

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

OpenMP. Viktor Styrbul

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

Mehr

OpenMP - Threading- Spracherweiterung für C/C++ Matthias Klein, Michael Pötz Systemprogrammierung 15. Juni 2009

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

Mehr

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

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

Mehr

Zählen von Objekten einer bestimmten Klasse

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

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr

Master-Thread führt Programm aus, bis durch die Direktive

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

Mehr

Domänenmodell: Fadenkommunikation und -synchronisation

Domänenmodell: Fadenkommunikation und -synchronisation Domänenmodell: Fadenkommunikation und -synchronisation Alexander Humphreys, Reinhard Rösch, Fabian Scheler 15. Mai 2003 Inhaltsverzeichnis 1 Domänendefinition 1 2 Domänenlexikon 1 3 Konzeptmodelle 4 4

Mehr

Native Zeichenketten (C-Strings)

Native Zeichenketten (C-Strings) Native Zeichenketten (C-Strings)... sind in C/C++ char-arrays. D.h. die Deklaration char msg[80]; kann Zeichenketten bis zur Länge 79 enthalten. (Direkte Zuweisungen wie msg="hallo!" sind jedoch nicht

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

Parallele Programmierung mit OpenMP

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

Mehr

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) Tapps mit XP-Mode unter Windows 7 64 bit (V2.0) 1 Einleitung... 2 2 Download und Installation... 3 2.1 Installation von WindowsXPMode_de-de.exe... 4 2.2 Installation von Windows6.1-KB958559-x64.msu...

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

Projektseminar Parallele Programmierung

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

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

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

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

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express

Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Howto Installation und Inbetriebnahme von Microsoft Visual C++ 2010 Express Peter Bitterlich Markus Langer 12. Oktober 2012 Zusammenfassung Dieses Dokument erklärt Schritt für Schritt die Installation

Mehr

Exkurs: Paralleles Rechnen

Exkurs: Paralleles Rechnen Münster Exkurs: Paralleles Rechnen December 2, 2013 , Münster Exkurs: Paralleles Rechnen 2 /27 Warum parallel Rechnen? Westf alische Wilhelms-Universit at M unster Exkurs: Paralleles Rechnen 2 /27 JUQUEEN,

Mehr

Beispiel: Schleifenparallelisierung

Beispiel: Schleifenparallelisierung Beispiel: Schleifenparallelisierung for (i = 0; i high) { printf ( Exiting during iteration %d\n,i); break; for (j=low;j

Mehr

Verteilte Systeme CS5001

Verteilte Systeme CS5001 Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,

Mehr

Tipps und Tricks zu Netop Vision und Vision Pro

Tipps und Tricks zu Netop Vision und Vision Pro Tipps und Tricks zu Netop Vision und Vision Pro Anwendungen auf Schülercomputer freigeben und starten Netop Vision ermöglicht Ihnen, Anwendungen und Dateien auf allen Schülercomputern gleichzeitig zu starten.

Mehr

PROLAG WORLD 2.0 PRODUKTBESCHREIBUNG SERVERSYSTEM, CLUSTERSYSTEME FÜR PROLAG WORLD

PROLAG WORLD 2.0 PRODUKTBESCHREIBUNG SERVERSYSTEM, CLUSTERSYSTEME FÜR PROLAG WORLD PROLAG WORLD 2.0 PRODUKTBESCHREIBUNG SERVERSYSTEM, CLUSTERSYSTEME FÜR PROLAG WORLD Inhaltsverzeichnis 1. ZUSAMMENSTELLUNG VON SERVERN...3 1.1. ANFORDERUNGSPROFIL...3 1.2. 1.3. SERVER MODELLE...3 TECHNISCHE

Mehr

Installationsanleitung. Novaline Personal Abrechnung. Personal.One

Installationsanleitung. Novaline Personal Abrechnung. Personal.One Installationsanleitung Novaline Personal Abrechnung Personal.One Mai 2013 Installation der Programme 1. Legen Sie die Installations-DVD in Ihr DVD-Laufwerk ein. Nach Einlegen der Programm- CD wird der

Mehr

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 1 von 6 Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010 ci solution GmbH 2010 Whitepaper Draft Anleitung Deutsch Verfasser: ci solution GmbH 2010 Manfred Büttner 16. September

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

Einrichten eines Microsoft Exchange-Account auf einem Android-System

Einrichten eines Microsoft Exchange-Account auf einem Android-System Einrichten eines Microsoft Exchange-Account auf einem Android-System Wählen Sie im Menü Anwendungen die Option E-Mail aus. In einigen Android-Versionen hat diese Anwendung möglicherweise den Namen Mail.

Mehr

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Educase. Release Notes 1.7: Neue Funktionen und Verbesserungen. Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee Educase Release Notes 1.7: Neue Funktionen und Verbesserungen Version: 1.0 Datum: 01.12.2015 08:34 Ersteller: Andreas Renggli Status: Abgeschlossen Base-Net Informatik AG Wassergrabe 14 CH-6210 Sursee

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

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

Mehr

Programmierung mit NQC: Kommunikation zwischen zwei RCX

Programmierung mit NQC: Kommunikation zwischen zwei RCX Programmierung mit NQC: Kommunikation zwischen zwei RCX Martin Schmidt Aufbau der Messages Messages müssen möglichst kurz sein und dürfen nicht zu häufig gesendet werden! 1 Byte reicht für unsere Zwecke

Mehr

Propädeutikum. Dipl.-Inf. Frank Güttler

Propä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

Mehr

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level

Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation

Mehr

ITT WEB-Service DEMO. Kurzbedienungsanleitung

ITT WEB-Service DEMO. Kurzbedienungsanleitung ITT WEB-Service DEMO Kurzbedienungsanleitung Allgemein ITT Water & Wastewater Deutschland GmbH ermöglicht es Kunden Ihre Abwasseranlagen auf eine Leitzentrale bei ITT W & WW in Hannover aufschalten zu

Mehr

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial!

Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! VO 182.711 Prüfung Betriebssysteme 8. November 2013 KNr. MNr. Zuname, Vorname Ges.)(100) 1.)(35) 2.)(20) 3.)(45) Zusatzblätter: Bitte verwenden Sie nur dokumentenechtes Schreibmaterial! 1 Synchronisation

Mehr

Arbeitsblätter auf die Schülercomputer verteilen, öffnen und wieder einsammeln

Arbeitsblätter auf die Schülercomputer verteilen, öffnen und wieder einsammeln Tipps & Tricks Arbeitsblätter auf die Schülercomputer verteilen, öffnen und wieder einsammeln Verteilen Sie Ihren Schülern ausgedruckte Arbeitsblätter? Mit App-Control und Vision können Sie die Arbeitsblätter

Mehr

Monitore. Klicken bearbeiten

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

Mehr

Business Process Model and Notation

Business Process Model and Notation BPMN 2.0 Crashkurs Business Process Model and Notation entwickelt von der Object Management Group, einem Konsortium von vielen Firmen (u.a. HP, IBM, Microsoft, Oracle, SAP) >60 verschiedene Produkte implementieren

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

Quick Start Faxolution for Windows

Quick Start Faxolution for Windows Quick Start Faxolution for Windows Direkt aus jeder Anwendung für das Betriebssystem Windows faxen Retarus Faxolution for Windows ist eine intelligente Business Fax Lösung für Desktop und Marketing Anwendungen,

Mehr

4. Parallelprogrammierung

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

Mehr

Synchronisation in Java. Invisible Web

Synchronisation in Java. Invisible Web Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections

Mehr

Dynamic Ressource Management

Dynamic Ressource Management best Open Systems Day Fall 2006 Dynamic Ressource Management Unterföhring Marco Kühn best Systeme GmbH kuehn@best.de Agenda Überblick Dynamic Resource Pools und FSS Dynamic Resource Memory RCAP Oracle

Mehr

Datenübernahme aus Profi-Cash

Datenübernahme aus Profi-Cash Datenübernahme aus Profi-Cash Umsätze aus ProfiCash exportieren Starten Sie ProfiCash und melden Sie sich mit dem Benutzer bzw. der Firma an, von welcher Sie Daten exportieren möchten Datei -> Ausführen

Mehr

TechNote: Exchange Journaling aktivieren

TechNote: Exchange Journaling aktivieren Produkt: Kurzbeschreibung: NetOrchestra MA Emailarchivierung Exchange Journaling aktivieren Diese Anleitung hilft Ihnen, das nachfolgend geschilderte Problem zu beheben. Dazu sollten Sie über gute bis

Mehr

Nutzung paralleler Prozesse bei der Umweltsimulation

Nutzung 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

Mehr

Objektorientierte Programmierung

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

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

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

Mehr

SharePoint Workspace 2010 Installieren & Konfigurieren

SharePoint Workspace 2010 Installieren & Konfigurieren [Geben Sie Text ein] SharePoint Workspace 2010 Installieren & Konfigurieren SharePoint Workspace 2010 Installieren & Konfigurieren Inhalt SharePoint Workspace 2010 Installieren... 2 SharePoint Workspace

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

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003 Task! evt. parallel zu bearbeitende Ausführungseinheit! Beispiel: Task A Zündung Task B Einspritzung Task C Erfassung Pedalwert Zeit t J. Schäuffele, Th. Zurawka:, Vieweg, 2003 Echtzeitbetriebssysteme

Mehr

Durchführung der Datenübernahme nach Reisekosten 2011

Durchführung der Datenübernahme nach Reisekosten 2011 Durchführung der Datenübernahme nach Reisekosten 2011 1. Starten Sie QuickSteuer Deluxe 2010. Rufen Sie anschließend über den Menüpunkt /Extras/Reisekosten Rechner den QuickSteuer Deluxe 2010 Reisekosten-Rechner,

Mehr

Paralleles Programmieren mit MPI und OpenMP

Paralleles Programmieren mit MPI und OpenMP Paralleles Programmieren mit MPI und OpenMP Vorlesung «Algorithmen für das wissenschaftliche Rechnen» 6.5.2002 Olaf Schenk, Michael Hagemann 6.5.2002 Algorithmen des wissenschaftlichen Rechnens 1 Organisatorisches

Mehr

Anleitung zur Nutzung des SharePort Utility

Anleitung zur Nutzung des SharePort Utility Anleitung zur Nutzung des SharePort Utility Um die am USB Port des Routers angeschlossenen Geräte wie Drucker, Speicherstick oder Festplatte am Rechner zu nutzen, muss das SharePort Utility auf jedem Rechner

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

Jannis Beese, Universität Stuttgart, Ferienakademie 2009

Jannis 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

Mehr

Dieses Dokument beschreibt, wie mit FreeFileSync eine einfache Daten-Synchronisation auf gemanagten Geräten eingerichtet wird.

Dieses Dokument beschreibt, wie mit FreeFileSync eine einfache Daten-Synchronisation auf gemanagten Geräten eingerichtet wird. IT Services Support Werftestrasse 4, Postfach 2969, CH-6002 Luzern T +41 41 228 42 42, F +41 41 228 42 43 www.hslu.ch Luzern, 5. August 2015 Seite 1/8 Kurzbeschrieb: Dieses Dokument beschreibt, wie mit

Mehr

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000

Einrichten eines Postfachs mit Outlook Express / Outlook bis Version 2000 Folgende Anleitung beschreibt, wie Sie ein bestehendes Postfach in Outlook Express, bzw. Microsoft Outlook bis Version 2000 einrichten können. 1. Öffnen Sie im Menü die Punkte Extras und anschließend Konten

Mehr

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung

Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Outlook Weiterleitungen & Abwesenheitsmeldungen Seite 1 von 6 Beschreibung E-Mail Regeln z.b. Abwesenheitsmeldung und Weiterleitung Erstellt: Quelle: 3.12.09/MM \\rsiag-s3aad\install\vnc\email Weiterleitung

Mehr

Computerarithmetik ( )

Computerarithmetik ( ) Anhang A Computerarithmetik ( ) A.1 Zahlendarstellung im Rechner und Computerarithmetik Prinzipiell ist die Menge der im Computer darstellbaren Zahlen endlich. Wie groß diese Menge ist, hängt von der Rechnerarchitektur

Mehr

Kundenleitfaden zur Sicheren E-Mail per WebMail

Kundenleitfaden zur Sicheren E-Mail per WebMail Allgemeines Die E-Mail gehört heute für nahezu jeden von uns zu einem häufig verwendeten digitalen Kommunikationsmittel. Trotz des täglichen Gebrauchs tritt das Thema Sicherheit bei der Übermittlung von

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

Benutzerhinweise: IGW/920-SK/92 COM Port Redirector

Benutzerhinweise: IGW/920-SK/92 COM Port Redirector Benutzerhinweise: IGW/920-SK/92 COM Port Redirector Das Web-basierte Benutzerinterface des IGW/920 als OpenVPN-basierter Security Proxy ermöglicht auch die Konfiguration des integrierten COM Port Redirectors.

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Installation von Office 365 auf einem privaten PC

Installation von Office 365 auf einem privaten PC Installation von Office 365 auf einem privaten PC Schülerinnen und Schüler des Stiftsgymnasiums haben die Möglichkeit, auf Ihren privaten PCs kostenlos Microsoft Office 365 zu installieren. Dieser Anleitung

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

Version 0.3. Installation von MinGW und Eclipse CDT Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.

Mehr

Umstieg auf Microsoft Exchange in der Fakultät 02

Umstieg auf Microsoft Exchange in der Fakultät 02 Umstieg auf Microsoft Exchange in der Fakultät 02 Der IT-Steuerkreis der Hochschule München hat am am 26.07.12 einstimmig beschlossen an der Hochschule München ein neues Groupware-System auf der Basis

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Name, Vorname Matrikelnummer Probeklausur zur Vorlesung Einführung in die Programmierung WS 2008/09 Dauer: 2 Stunden Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt und

Mehr

Microsoft Update Windows Update

Microsoft Update Windows Update Microsoft bietet mehrere Möglichkeit, Updates durchzuführen, dies reicht von vollkommen automatisch bis zu gar nicht. Auf Rechnern unserer Kunden stellen wir seit September 2006 grundsätzlich die Option

Mehr

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA

INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA INHALT 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 2. INSTALLATION DES V-MODELL XT UNTER WINDOWS VISTA 1. INSTALLATION DES V-MODELL XT UNTER WINDOWS 7 VORBEDINGUNGEN Als Vorbedingungen sollte bereits

Mehr

Übung 8: Semaphore in Java (eigene Implementierung)

Übung 8: Semaphore in Java (eigene Implementierung) Übung 8: Semaphore in Java (eigene Implementierung) Ziel der Übung: Diese Übung dient dazu, eine eigene Implementierung einer Semaphore-Klasse in der Programmiersprache Java kennenzulernen. Anschließend

Mehr

Updatehinweise für die Version forma 5.5.5

Updatehinweise für die Version forma 5.5.5 Updatehinweise für die Version forma 5.5.5 Seit der Version forma 5.5.0 aus 2012 gibt es nur noch eine Office-Version und keine StandAlone-Version mehr. Wenn Sie noch mit der alten Version forma 5.0.x

Mehr

10.3.1.10 Übung - Konfigurieren einer Windows-XP-Firewall

10.3.1.10 Übung - Konfigurieren einer Windows-XP-Firewall 5.0 10.3.1.10 Übung - Konfigurieren einer Windows-XP-Firewall Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung werden Sie erfahren, wie man die Windows XP-Firewall konfiguriert und

Mehr

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten. ewon - Technical Note Nr. 001 Version 1.3 Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten. 19.10.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten

Mehr

Automatisches Beantworten von E-Mail- Nachrichten mit einem Exchange Server-Konto

Automatisches Beantworten von E-Mail- Nachrichten mit einem Exchange Server-Konto Automatisches Beantworten von E-Mail- Nachrichten mit einem Exchange Server-Konto Sie können Microsoft Outlook 2010 / Outlook Web App so einrichten, dass Personen, die Ihnen eine E- Mail-Nachricht gesendet

Mehr

I N S T A L L A T I O N S A N L E I T U N G

I N S T A L L A T I O N S A N L E I T U N G I N S T A L L A T I O N S A N L E I T U N G A O D B E D I E N U N G S A N L E I T U N G Diese Anleitung wird Ihnen Schritt für Schritt bei der Instalation vom Print Manager und beim Ausdruck Ihres ersten

Mehr

Leistungen der Pflegeversicherung ab 1.1.10

Leistungen der Pflegeversicherung ab 1.1.10 Leistungen der Pflegeversicherung ab 1.1.10 Bei Nutzung der Tagespflege erhält der Versicherte den 1,5 fachen Satz (entspricht 150%) an Leistungen. Alle Leistung können einzeln nie mehr als 100 % ergeben!

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

METTLER TOLEDO ETHERNET-Option

METTLER TOLEDO ETHERNET-Option Diese Anleitung beschreibt die Konfiguration und den Test der METTLER TOLEDO ETHERNET- Option für den Einsatz in einem Netzwerk. Die grundlegende Konfiguration der ETHERNET-Option ist über das Vision-Menü

Mehr

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN 3-528-25738-5

... Client 1. Request. Reply. Client 2. Server. Client n. Günther Bengel Grundkurs Verteilte Systeme 3. Auflage Vieweg Verlag 2004 ISBN 3-528-25738-5 1 2... n Abbildung 2-1: s und C + S Synchrone Kommunikation Warte auf Zurückgestellte synchrone Kommunikation Arbeite weiter Überprüfe periodisch das Vorliegen des Asynchrone Kommunikation Registriere

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Threads und OpenMP. Frank Mietke <frank.mietke@informatik.tu-chemnitz.de> Cluster- & Gridcomputing Frank Mietke 7/4/04

Threads 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

Mehr

:: Anleitung Hosting Server 1cloud.ch ::

:: Anleitung Hosting Server 1cloud.ch :: :: one source ag :: Technopark Luzern :: D4 Platz 4 :: CH-6039 Root-Längenbold LU :: :: Fon +41 41 451 01 11 :: Fax +41 41 451 01 09 :: info@one-source.ch :: www.one-source.ch :: :: Anleitung Hosting Server

Mehr

FastViewer Remote Edition 2.X

FastViewer Remote Edition 2.X FastViewer Remote Edition 2.X Mit der FastViewer Remote Edition ist es möglich beliebige Rechner, unabhängig vom Standort, fernzusteuern. Die Eingabe einer Sessionnummer entfällt. Dazu muß auf dem zu steuernden

Mehr

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1

Microcontroller Kurs. 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Microcontroller Kurs 08.07.11 Microcontroller Kurs/Johannes Fuchs 1 Was ist ein Microcontroller Wikipedia: A microcontroller (sometimes abbreviated µc, uc or MCU) is a small computer on a single integrated

Mehr