diff --git a/documents/Programmierparadigmen/MPI.tex b/documents/Programmierparadigmen/MPI.tex index 1b36010..d59f50d 100644 --- a/documents/Programmierparadigmen/MPI.tex +++ b/documents/Programmierparadigmen/MPI.tex @@ -117,6 +117,24 @@ Führt eine globale Operation \textbf{op} aus; der Prozeß \enquote{root} erhäl \end{itemize} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak +\rule{\textwidth}{0.4pt}\xindex{MPI\_Alltoall}% +\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-alltoall.c} +Teilt Daten von jedem Prozeß einer Gruppe an alle anderen auf. + +\textbf{Parameter} +\begin{itemize} + \item \textbf{sendbuf}: Startadresse des Sendepuffers + \item \textbf{sendcount}: Anzahl der Elemente im Sendepuffer + \item \textbf{sendtype}: Datentyp der Elemente des Sendepuffers (handle) + \item \textbf{recvcount}: Anzahl der Elemente, die von jedem einzelnen Prozeß empfangen werden + \item \textbf{recvtype}: Datentyp der Elemente im Empfangspuffer (handle) + \item \textbf{comm}: Kommunikator (handle) +\end{itemize} + +\textbf{Beispiel} +\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-alltoall-example.c} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\goodbreak \rule{\textwidth}{0.4pt}\xindex{MPI\_Bcast}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-bcast.c} Sendet eine Nachricht vom Prozess \texttt{root} an alle anderen Prozesse des diff --git a/documents/Programmierparadigmen/Programmierparadigmen.pdf b/documents/Programmierparadigmen/Programmierparadigmen.pdf index ca2086d..71d047c 100644 Binary files a/documents/Programmierparadigmen/Programmierparadigmen.pdf and b/documents/Programmierparadigmen/Programmierparadigmen.pdf differ diff --git a/documents/Programmierparadigmen/scripts/mpi/mpi-alltoall-example.c b/documents/Programmierparadigmen/scripts/mpi/mpi-alltoall-example.c new file mode 100644 index 0000000..7a9a821 --- /dev/null +++ b/documents/Programmierparadigmen/scripts/mpi/mpi-alltoall-example.c @@ -0,0 +1,10 @@ +#include "mpi.h" + +int sendcount, recvcount; +void *sendbuf, *recvbuf; +MPI_Datatype sendtype, recvtype; +MPI_Comm comm; +... +MPI_Alltoall(sendbuf, sendcount, sendtype, + recvbuf, recvcount, recvtype, comm); +... \ No newline at end of file diff --git a/documents/Programmierparadigmen/scripts/mpi/mpi-alltoall.c b/documents/Programmierparadigmen/scripts/mpi/mpi-alltoall.c new file mode 100644 index 0000000..db1bf04 --- /dev/null +++ b/documents/Programmierparadigmen/scripts/mpi/mpi-alltoall.c @@ -0,0 +1,5 @@ +int MPI_Alltoall(const void *sendbuf, int sendcount, + MPI_Datatype sendtype, + void *recvbuf, int recvcount, + MPI_Datatype recvtype, + MPI_Comm comm) \ No newline at end of file