Skip to content

Add more content to 01-intro #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 15, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions 01-intro.tex
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ \section{Introduction to MPI}
\hline
\textbf{Performance} & No direct impact on performance & Optimized for different platforms and hardware \\
\hline
\textbf{Examples} & MPI-1, MPI-2, MPI-3, MPI-4 (specifications) & MPICH, Open MPI, Intel MPI \\
\textbf{Examples} & MPI-1, MPI-2, MPI-3, MPI-4 (specifications) & MPICH, Open MPI, MS MPI (Microsoft MPI), Intel MPI \\
\hline
\end{tabular}
\caption{Key Differences Between MPI Standard and MPI Library}
Expand Down Expand Up @@ -228,6 +228,8 @@ \section{MPI data distribution}
\item tag: A user-defined message identifier to differentiate messages.
\item comm: The communicator that defines the group of processes within which the message is being sent (e.g., \texttt{MPI\_COMM\_WORLD}).
\end{itemize}

const void *buf, int count, MPI\_Datatype datatype - data array description
\end{frame}

\begin{frame}[fragile]{\texttt{MPI\_Recv()}}
Expand All @@ -246,6 +248,23 @@ \section{MPI data distribution}
\end{itemize}
\end{frame}

\begin{frame}[fragile]{MPI Communicators}
MPI Communicator: A communicator in MPI defines a communication context, a group of processes that can send and receive messages from one another. The processes within a communicator are assigned unique ranks, which are integers that identify each process.

Ranks: Every process within a communicator has a rank, starting from 0. The rank helps to uniquely identify a process within the communicator.

Groups: A communicator has an associated group of processes. A group is an ordered set of processes, which MPI uses to determine communication partners.
\end{frame}

\begin{frame}[fragile]{\texttt{MPI\_COMM\_WORLD}}
\texttt{MPI\_COMM\_WORLD}: The \texttt{MPI\_COMM\_WORLD} is the default communicator created when an MPI program starts. It includes all the processes that are initiated by the MPI runtime.
\begin{itemize}
\item Every process in the MPI application automatically becomes a part of \texttt{MPI\_COMM\_WORLD}, and this communicator is used for most communication operations in simple MPI programs.
\item All the processes in the program are assigned a rank in \texttt{MPI\_COMM\_WORLD}, starting from 0 to the number of processes minus one.
\item \texttt{MPI\_COMM\_WORLD} allows processes to exchange messages, perform collective operations (e.g. broadcasting, reducing, scattering, etc.), and more.
\end{itemize}
\end{frame}

\begin{frame}[fragile]{Performance measurement in MPI: \texttt{MPI\_Wtime()}}
\texttt{double MPI\_Wtime(void)}

Expand Down Expand Up @@ -275,8 +294,14 @@ \section{MPI data distribution}
\Huge{Thank You!}
\end{frame}

% Optional references slide
% References slide
\begin{frame}{References}
\begin{enumerate}
\item MPI Standard \href{https://www.mpi-forum.org/docs/}{https://www.mpi-forum.org/docs/}
\item MPICH guides: \href{https://www.mpich.org/documentation/guides/}{https://www.mpich.org/documentation/guides/}
\item Microsoft MPI: \href{https://learn.microsoft.com/en-us/message-passing-interface/microsoft-mpi}{https://learn.microsoft.com/en-us/message-passing-interface/microsoft-mpi}
\item OpenMPI docs: \href{https://www.open-mpi.org/doc/}{https://www.open-mpi.org/doc/}
\end{enumerate}
\end{frame}

\end{document}