diff --git a/documents/Programmierparadigmen/C.tex b/documents/Programmierparadigmen/C.tex index d93bb29..6c41f5e 100644 --- a/documents/Programmierparadigmen/C.tex +++ b/documents/Programmierparadigmen/C.tex @@ -35,10 +35,9 @@ unterscheiden. Diese werden \textit{Modifier}\xindex{Modifier} genannt. In C gibt es keinen direkten Support für Booleans. \section{ASCII-Tabelle}\label{sec:ascii-tabelle} -\begin{table}[h] +\begin{table}[!h] \centering - \resizebox{0.65\textwidth}{!}{% - \begin{tabular}{|l|l||l|l||l|l||l|l|} + \begin{tabular}{|p{1.0cm}|p{1.0cm}||p{1.0cm}|p{1.0cm}||p{1.0cm}|p{1.0cm}||p{1.0cm}|p{1.0cm}|} \hline \textbf{Dez.} & \textbf{Z.} & \textbf{Dez.} & \textbf{Z.} & \textbf{Dez.} & \textbf{Z.} & \textbf{Dez.} & \textbf{Z.} \\ \hline\hline 0 & ~ & 32 & ~ & 64 & @ & 96 & ' \\ \hline @@ -74,7 +73,6 @@ In C gibt es keinen direkten Support für Booleans. 30 & ~ & 62 & > & 94 & \textasciicircum & 126 & $\sim$ \\ \hline 31 & ~ & 63 & ? & 95 & \_ & 127 & DEL \\ \hline \end{tabular} - } \end{table} \section{Syntax} diff --git a/documents/Programmierparadigmen/MPI.tex b/documents/Programmierparadigmen/MPI.tex index 20c1680..1c0d364 100644 --- a/documents/Programmierparadigmen/MPI.tex +++ b/documents/Programmierparadigmen/MPI.tex @@ -7,7 +7,7 @@ der den Nachrichtenaustausch bei parallelen Berechnungen auf verteilten Computersystemen beschreibt. Prozesse kommunizieren in MPI über sog. \textit{Kommunikatoren}. Ein Kommunikator -(\texttt{MPI\_Comm}\xindex{MPI\_Comm}) +(\texttt{MPI\_Comm}\xindex{MPI\_Comm@\texttt{MPI\_Comm}}) definiert eine Menge an Prozessen, die miteinander kommunizieren können. In dieser Prozessgruppe hat jeder Prozess einen eindeutigen \textit{rank}\xindex{rank} über den die Prozesse sich identifizieren können. @@ -19,7 +19,7 @@ Das wird \texttt{mpicc hello-world.c} kompiliert.\\ Mit \texttt{mpirun -np 14 scripts/mpi/a.out} werden 14 Kopien des Programms gestartet. -Hierbei ist \texttt{MPI\_COMM\_WORLD}\xindex{MPI\_COMM\_WORLD} der Standard-Kommunikator, +Hierbei ist \texttt{MPI\_COMM\_WORLD}\xindex{MPI\_COMM\_WORLD@\texttt{MPI\_COMM\_WORLD}} der Standard-Kommunikator, der von \texttt{MPI\_Init} erstellt wird. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -36,7 +36,7 @@ der von \texttt{MPI\_Init} erstellt wird. \end{table} \section{Funktionen} -\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/comm-size.c}\xindex{MPI\_Comm\_size}% +\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/comm-size.c}\xindex{MPI\_Comm\_size@\texttt{MPI\_Comm\_size}}% Liefert die Größe des angegebenen Kommunikators; dh. die Anzahl der Prozesse in der Gruppe. \textbf{Parameter} @@ -49,7 +49,7 @@ Liefert die Größe des angegebenen Kommunikators; dh. die Anzahl der Prozesse i \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/comm-size-example.c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Comm\_rank}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Comm\_rank@\texttt{MPI\_Comm\_rank}}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/comm-rank.c} Bestimmt den Rang des rufenden Prozesses innerhalb des Kommunikators. @@ -65,7 +65,7 @@ Der Rang wird von MPI zum Identifizieren eines Prozesses verwendet. Die Rangnumm \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/comm-rank-example.c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Send}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Send@\texttt{MPI\_Send}}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-send.c} Senden einer Nachricht an einen anderen Prozeß innerhalb eines Kommunikators. (Standard-Send) @@ -84,7 +84,7 @@ Ein Kommunikationsvorgang wird durch ein Tripel (Sender, Empfänger, tag) eindeu \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-send-example.c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Recv}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Recv@\texttt{MPI\_Recv}}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-receive.c} Empfangen einer Nachricht (blockierend) @@ -105,7 +105,7 @@ Empfangen einer Nachricht (blockierend) \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-receive-example.c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Reduce}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Reduce@\texttt{MPI\_Reduce}}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-reduce.c} Führt eine globale Operation \textbf{op} aus; der Prozeß \enquote{root} erhält das Resultat. @@ -120,7 +120,7 @@ Führt eine globale Operation \textbf{op} aus; der Prozeß \enquote{root} erhäl \end{itemize} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Alltoall}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Alltoall@\texttt{MPI\_Alltoall}}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-alltoall.c} Teilt Daten von jedem Prozeß einer Gruppe an alle anderen auf. @@ -138,7 +138,7 @@ Teilt Daten von jedem Prozeß einer Gruppe an alle anderen auf. \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-alltoall-example.c} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Bcast}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Bcast@\texttt{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 angegebenen Kommunikators. @@ -153,7 +153,7 @@ angegebenen Kommunikators. \end{itemize} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \goodbreak -\rule{\textwidth}{0.4pt}\xindex{MPI\_Scatter}% +\rule{\textwidth}{0.4pt}\xindex{MPI\_Scatter@\texttt{MPI\_Scatter}}% \inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-scatter.c} Verteilt Daten vom Prozess \texttt{root} unter alle anderen Prozesse in der Gruppe, so daß, soweit möglich, alle Prozesse gleich große Anteile erhalten. diff --git a/documents/Programmierparadigmen/Programmierparadigmen.pdf b/documents/Programmierparadigmen/Programmierparadigmen.pdf index 058c3d7..4cb7ad3 100644 Binary files a/documents/Programmierparadigmen/Programmierparadigmen.pdf and b/documents/Programmierparadigmen/Programmierparadigmen.pdf differ diff --git a/documents/Programmierparadigmen/scripts/mpi/mpi-gather.c b/documents/Programmierparadigmen/scripts/mpi/mpi-gather.c index efc3c82..f4d84e7 100644 --- a/documents/Programmierparadigmen/scripts/mpi/mpi-gather.c +++ b/documents/Programmierparadigmen/scripts/mpi/mpi-gather.c @@ -1,3 +1,5 @@ -int MPI_Gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, - void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, - MPI_Comm comm) \ No newline at end of file +int MPI_Gather(void *sendbuf, int sendcount, + MPI_Datatype sendtype, + void *recvbuf, int recvcount, + MPI_Datatype recvtype, + int root, MPI_Comm comm) \ No newline at end of file