mirror of
https://github.com/MartinThoma/LaTeX-examples.git
synced 2025-04-25 14:28:05 +02:00
added docker project
This commit is contained in:
parent
04d3181251
commit
74dfdb42b2
4 changed files with 45 additions and 0 deletions
|
@ -19,6 +19,9 @@ Das wird \texttt{mpicc hello-world.c} kompiliert.\\
|
||||||
Mit \texttt{mpirun -np 14 scripts/mpi/a.out} werden 14 Kopien des Programms
|
Mit \texttt{mpirun -np 14 scripts/mpi/a.out} werden 14 Kopien des Programms
|
||||||
gestartet.
|
gestartet.
|
||||||
|
|
||||||
|
Hierbei ist \texttt{MPI\_COMM\_WORLD}\xindex{MPI\_COMM\_WORLD} der Standard-Kommunikator,
|
||||||
|
der von \texttt{MPI\_Init} erstellt wird.
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\section{MPI Datatypes}\xindex{MPI datatypes}
|
\section{MPI Datatypes}\xindex{MPI datatypes}
|
||||||
|
|
||||||
|
@ -169,6 +172,9 @@ Verteilt Daten vom Prozess \texttt{root} unter alle anderen Prozesse in der Grup
|
||||||
\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-reduce-example.c}
|
\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-reduce-example.c}
|
||||||
|
|
||||||
\section{Beispiele}
|
\section{Beispiele}
|
||||||
|
|
||||||
|
\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-sum-reduce.c}
|
||||||
|
|
||||||
\section{Weitere Informationen}
|
\section{Weitere Informationen}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \url{http://mpitutorial.com/}
|
\item \url{http://mpitutorial.com/}
|
||||||
|
|
Binary file not shown.
|
@ -1,3 +1,7 @@
|
||||||
Dies ist ein **inoffizielles, von Studenten erstelltes Skript**
|
Dies ist ein **inoffizielles, von Studenten erstelltes Skript**
|
||||||
zur Vorlesung "Programmierparadigmen" am KIT bei
|
zur Vorlesung "Programmierparadigmen" am KIT bei
|
||||||
Herrn Prof. Dr. Snelting (WS 2013/2014).
|
Herrn Prof. Dr. Snelting (WS 2013/2014).
|
||||||
|
|
||||||
|
Docker
|
||||||
|
------
|
||||||
|
You might also be interested in the [programming paradigms docker project](https://github.com/kitedu/programming-paradigms).
|
35
documents/Programmierparadigmen/scripts/mpi/mpi-sum-reduce.c
Normal file
35
documents/Programmierparadigmen/scripts/mpi/mpi-sum-reduce.c
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
// Quelle: Klausur vom SS 2013 am KIT bei
|
||||||
|
// Prof. Dr.-Ing. Gregor Snelting
|
||||||
|
void my_int_sum_reduce(int *sendbuf,
|
||||||
|
int *recvbuf, int count,
|
||||||
|
int root, MPI_Comm comm)
|
||||||
|
{
|
||||||
|
int size, rank;
|
||||||
|
MPI_Comm_size(comm, &size);
|
||||||
|
MPI_Comm_rank(comm, &rank);
|
||||||
|
if (rank == root) {
|
||||||
|
/* Initialize recvbuf with our own values. */
|
||||||
|
for (int i = 0; i < count; ++i) {
|
||||||
|
recvbuf[i] = sendbuf[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Receive values from every other node
|
||||||
|
and accumulate. */
|
||||||
|
for (int i = 0; i < size; ++i) {
|
||||||
|
if (i == root)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
int other[count];
|
||||||
|
MPI_Recv(other, count, MPI_INT,
|
||||||
|
i, 0, comm, MPI_STATUS_IGNORE);
|
||||||
|
|
||||||
|
for (int j = 0; j < count; ++j) {
|
||||||
|
recvbuf[j] += other[j];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/* Send our values to root. */
|
||||||
|
MPI_Send(sendbuf, count, MPI_INT,
|
||||||
|
root, 0, comm);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue