Martin Thoma 11 years ago
parent
commit
420b6b31fd

+ 19 - 0
documents/Programmierparadigmen/Parallelitaet.tex

@@ -184,4 +184,23 @@ Interessante Stichwörder sind noch:
     \item Interface Callable<V>
 \end{itemize}
 
+\section{Message Passing Modell}
+Das Message Passing Modell ist eine Art, wie man parallel laufende Programme 
+schreiben kann. Dabei tauschen die Prozesse Nachrichten aus um die Arbeit zu
+verteilen.
+
+Ein wichtiges Konzept ist hierbei der \textit{Kommunikator}\xindex{Kommunikator}.
+Ein Kommunikator definiert eine Gruppe von Prozessen, die mit einander kommunizieren
+können. In dieser Gruppe von Prozessen hat jeder Prozesse einen eindeutigen
+\textit{Rang}\xindex{Rang}, den sie zur Kommunikation nutzen.
+
+Die Grundlage der Kommunikation bilden \textit{send} und \textit{receive} Operationen.
+Prozesse schicken Nachrichten an andere Prozesse, indem sie den eindeutigen Rang
+und einen \textit{tag} angeben, der die Nachricht identifiziert.
+
+Wenn ein Prozess mit einem einzigen weiteren Prozess kommuniziert, wird dies
+\textit{Punkt-zu-Punkt-Kommunikation}\xindex{Punkt-zu-Punkt-Kommunikation} genannt.
+
+Wenn ein Prozess allen anderen eine Nachricht schickt, nennt man das \textit{Broadcast}\xindex{Broadcast}.
+
 \index{Parallelität|)}

BIN
documents/Programmierparadigmen/Programmierparadigmen.pdf


+ 10 - 10
documents/Programmierparadigmen/scripts/mpi/comm-rank-example.c

@@ -1,13 +1,13 @@
 #include "mpi.h" 
 
-    int       rank;
-    MPI_Comm  comm;
+int       rank;
+MPI_Comm  comm;
 
-    ...
-    MPI_Comm_rank(comm, &rank);
-    if (rank==0) {
-        ... Code fur Prozess 0 ... 
-    }
-    else {
-        ... Code fur die anderen Prozesse ... 
-    }
+...
+MPI_Comm_rank(comm, &rank);
+if (rank==0) {
+    ... Code fur Prozess 0 ... 
+}
+else {
+    ... Code fur die anderen Prozesse ... 
+}

+ 5 - 5
documents/Programmierparadigmen/scripts/mpi/comm-size-example.c

@@ -1,7 +1,7 @@
 #include "mpi.h"
 
-    int       size;
-    MPI_Comm  comm;
-    ...
-    MPI_Comm_size(comm, &size); 
-    ...
+int       size;
+MPI_Comm  comm;
+...
+MPI_Comm_size(comm, &size); 
+...

+ 7 - 7
documents/Programmierparadigmen/scripts/mpi/mpi-reduce-example.c

@@ -1,10 +1,10 @@
 #include "mpi.h"
 
-    int  myid;
-    int  recvbuf[DATASIZE], sendbuf[DATA_SIZE];
+int  myid;
+int  recvbuf[DATASIZE], sendbuf[DATA_SIZE];
 
-    ...
-    /* Minimum bilden */
-    MPI_Reduce(sendbuf, recvbuf, DATA_SIZE, MPI_INT, MPI_MIN,
-           0, MPI_COMM_WORLD);
-    ...
+...
+/* Minimum bilden */
+MPI_Reduce(sendbuf, recvbuf, DATA_SIZE, MPI_INT, MPI_MIN,
+       0, MPI_COMM_WORLD);
+...