2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-25 06:18:05 +02:00

MPI;Prolog; Index ergänzt

This commit is contained in:
Martin Thoma 2014-03-11 13:58:42 +01:00
parent 926bf6a386
commit 00c02a4fea
10 changed files with 54 additions and 9 deletions

View file

@ -46,7 +46,7 @@ Die Funktionsapplikation sei linksassoziativ. Es gilt also:
Der untypisierte $\lambda$-Kalkül ist Turing-Äquivalent. Der untypisierte $\lambda$-Kalkül ist Turing-Äquivalent.
\end{satz} \end{satz}
\section{Reduktionen} \section{Reduktionen}\index{Reduktionen|(}
\begin{definition}[Redex]\xindex{Redex}% \begin{definition}[Redex]\xindex{Redex}%
Eine $\lambda$-Term der Form $(\lambda x. t_1) t_2$ heißt Redex. Eine $\lambda$-Term der Form $(\lambda x. t_1) t_2$ heißt Redex.
\end{definition} \end{definition}
@ -87,6 +87,7 @@ Die Funktionsapplikation sei linksassoziativ. Es gilt also:
\begin{beispiel}[$\eta$-Äquivalenz] \begin{beispiel}[$\eta$-Äquivalenz]
TODO TODO
\end{beispiel} \end{beispiel}
\index{Reduktionen|)}
\section{Auswertungsstrategien} \section{Auswertungsstrategien}
\begin{definition}[Normalenreihenfolge]\xindex{Normalenreihenfolge}% \begin{definition}[Normalenreihenfolge]\xindex{Normalenreihenfolge}%

View file

@ -45,14 +45,44 @@ Der Rang wird von MPI zum Identifizieren eines Prozesses verwendet. Die Rangnumm
\rule{\textwidth}{0.4pt} \rule{\textwidth}{0.4pt}
\inputminted[numbersep=5pt, tabsize=4]{c}{scripts/mpi/mpi-reduce.c} \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. Führt eine globale Operation \textbf{op} aus; der Prozeß \enquote{root} erhält das Resultat.
\textbf{Parameter} \textbf{Parameter}
\begin{itemize} \begin{itemize}
\item \textbf{sendbuf} Startadresse des Sendepuffers \item \textbf{sendbuf}: Startadresse des Sendepuffers
\item \textbf{count} Anzahl der Elemente im Sendepuffer \item \textbf{count}: Anzahl der Elemente im Sendepuffer
\item \textbf{datatype} Datentyp der Elemente von \texttt{sendbuf} \item \textbf{datatype}: Datentyp der Elemente von \texttt{sendbuf}
\item \textbf{op} auszuführende Operation (handle) \item \textbf{op}: auszuführende Operation (handle)
\item \textbf{root} Rang des Root-Prozesses in comm, der das Ergebnis haben soll \item \textbf{root}: Rang des Root-Prozesses in comm, der das Ergebnis haben soll
\item \textbf{comm} Kommunikator (handle) \item \textbf{comm}: Kommunikator (handle)
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\rule{\textwidth}{0.4pt}
\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.
\textbf{Parameter}
\begin{itemize}
\item \textbf{buffer}: Startadresse des Datenpuffers
\item \textbf{count}: Anzahl der Elemente im Puffer
\item \textbf{datatype}: Datentyp der Pufferelemente (handle)
\item \textbf{root}: Wurzelprozeß; der, welcher sendet
\item \textbf{comm}: Kommunikator (handle)
\end{itemize}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\rule{\textwidth}{0.4pt}
\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.
\textbf{Parameter}
\begin{itemize}
\item \textbf{sendbuf}: Anfangsadresse des Sendepuffers (Wert ist lediglich für 'root' signifikant)
\item \textbf{sendcount}: Anzahl der Elemente, die jeder Prozeß geschickt bekommen soll (integer)
\item \textbf{sendtype}: Datentyp der Elemente in sendbuf (handle)
\item \textbf{recvcount}: Anzahl der Elemente im Empfangspuffer. Meist ist es günstig, recvcount = sendcount zu wählen.
\item \textbf{recvtype}: Datentyp der Elemente des Empfangspuffers (handle)
\item \textbf{root}: Rang des Prozesses in comm, der die Daten versendet
\item \textbf{comm}: Kommunikator (handle)
\end{itemize} \end{itemize}
\textbf{Beispiel} \textbf{Beispiel}

View file

@ -35,6 +35,9 @@ Dieses skript soll man \texttt{swipl -f test.pl} aufrufen. Dann erhält man:
\inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/splits.sh} \inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/splits.sh}
\subsection{Delete}
\inputminted[numbersep=5pt, tabsize=4]{prolog}{scripts/prolog/delete.pl}
\subsection{Zebrarätsel} \subsection{Zebrarätsel}
Folgendes Rätsel wurde von \url{https://de.wikipedia.org/w/index.php?title=Zebrar%C3%A4tsel&oldid=126585006} Folgendes Rätsel wurde von \url{https://de.wikipedia.org/w/index.php?title=Zebrar%C3%A4tsel&oldid=126585006}
entnommen: entnommen:

View file

@ -1,4 +1,5 @@
data Bool = False | True data Bool = False | True
data Color = Red | Green | Blue | Indigo | Violet data Color = Red | Green | Blue | Indigo | Violet
data Tree a = Leaf a | Branch (Tree a) (Tree a) data Tree a = Leaf a | Branch (Tree a) (Tree a)
data Point = Point Float Float deriving (Show) data Point = Point Float Float deriving (Show)
data Tree t = Node t [Tree t]

View file

@ -0,0 +1,5 @@
data Tree t = Node t [Tree t]
reduceT :: (t -> t -> t) -> Tree t -> t
reduceT f (Node x []) = x
reduceT f (Node x [y]) = f x y
reduceT f (Node x (y:ys)) = reduceT f (f x y) ys

View file

@ -0,0 +1 @@
MPI_Bcast(buffer, count, datatype, root, comm)

View file

@ -0,0 +1,2 @@
MPI_Scatter(sendbuf, sendcount, sendtype, recvbuf,
recvcount, recvtype, root, comm)

View file

@ -0,0 +1,2 @@
remove([(X,A)|L],X,[(X,ANew)|L]) :- A>0, ANew is A-1.
remove([X|L],Y,[X|L1]) :- remove(L,Y,L1).

View file

@ -1,6 +1,6 @@
// file HelloWorld.x10 // file HelloWorld.x10
public class HelloWorld { public class HelloWorld {
public static def main(args: Array[String](1)){ public static def main(args:Rail[String]) {
x10.io.Console.OUT.println("Hello, World"); x10.io.Console.OUT.println("Hello, World");
} }
} }