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:
parent
926bf6a386
commit
00c02a4fea
10 changed files with 54 additions and 9 deletions
|
@ -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}%
|
||||||
|
|
|
@ -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}
|
||||||
|
|
Binary file not shown.
|
@ -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:
|
||||||
|
|
|
@ -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]
|
|
@ -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
|
1
documents/Programmierparadigmen/scripts/mpi/mpi-bcast.c
Normal file
1
documents/Programmierparadigmen/scripts/mpi/mpi-bcast.c
Normal file
|
@ -0,0 +1 @@
|
||||||
|
MPI_Bcast(buffer, count, datatype, root, comm)
|
|
@ -0,0 +1,2 @@
|
||||||
|
MPI_Scatter(sendbuf, sendcount, sendtype, recvbuf,
|
||||||
|
recvcount, recvtype, root, comm)
|
2
documents/Programmierparadigmen/scripts/prolog/delete.pl
Normal file
2
documents/Programmierparadigmen/scripts/prolog/delete.pl
Normal 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).
|
|
@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue