Skip to content
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

[WIP]: Updating MPI Tutorials #17

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion mpi/abstract.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ tutorial: "Message Passing Interface (MPI)"

---

The Message Passing Interface Standard (MPI) is a message passing library standard based on the consensus of the MPI Forum, which has over 40 participating organizations, including vendors, researchers, software library developers, and users. The goal of the Message Passing Interface is to establish a portable, efficient, and flexible standard for message passing that will be widely used for writing message passing programs. As such, MPI is the first standardized, vendor independent, message passing library. The advantages of developing message passing software using MPI closely match the design goals of portability, efficiency, and flexibility. MPI is not an IEEE or ISO standard, but has in fact, become the "industry standard" for writing message passing programs on HPC platforms.
The Message Passing Interface Standard (MPI) is a message passing library standard based on the consensus of the MPI Forum, which has over 30 participating organizations, including vendors, researchers, software library developers, and users. The goal of the Message Passing Interface is to establish a portable, efficient, and flexible standard for message passing that will be widely used for writing message passing programs. As such, MPI is the first standardized, vendor independent, message passing library. The advantages of developing message passing software using MPI closely match the design goals of portability, efficiency, and flexibility. MPI is not an IEEE or ISO standard, but has in fact, become the "industry standard" for writing message passing programs on HPC platforms.

The goal of this tutorial is to teach those unfamiliar with MPI how to develop and run parallel programs according to the MPI standard. The primary topics that are presented focus on those which are the most useful for new MPI programmers. The tutorial begins with an introduction, background, and basic information for getting started with MPI. This is followed by a detailed look at the MPI routines that are most useful for new MPI programmers, including MPI Environment Management, Point-to-Point Communications, and Collective Communications routines. Numerous examples in both C and Fortran are provided, as well as a lab exercise.

Expand Down
4 changes: 2 additions & 2 deletions mpi/environment_management_routines.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ MPI_FINALIZE (ierr)

#### C Language - Environment Management Routines

```
```c
// required MPI include file
#include "mpi.h"
#include <stdio.h>
Expand Down Expand Up @@ -134,7 +134,7 @@ MPI_Finalize();

#### Fortran - Environment Management Routines

```
```fortran
program simple

! required MPI include file
Expand Down
2 changes: 1 addition & 1 deletion mpi/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Required for all programs that make MPI library calls.

<table style="border-collapse:collapse;border-spacing:0" class="tg"><thead><tr><th style="background-color:#98ABCE;border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;font-weight:bold;overflow:hidden;padding:10px 5px;position:-webkit-sticky;position:sticky;text-align:center;top:-1px;vertical-align:middle;will-change:transform;word-break:normal"><span style="background-color:#98ABCE"> C include file </span></th><th style="background-color:#98ABCE;border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;font-weight:bold;overflow:hidden;padding:10px 5px;position:-webkit-sticky;position:sticky;text-align:center;top:-1px;vertical-align:middle;will-change:transform;word-break:normal"><span style="background-color:#98ABCE"> Fortran include file </span></th></tr></thead><tbody><tr><td style="border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;font-weight:bold;overflow:hidden;padding:10px 5px;text-align:left;vertical-align:top;word-break:normal">#include "mpi.h" </td><td style="border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px;font-weight:bold;overflow:hidden;padding:10px 5px;text-align:left;vertical-align:top;word-break:normal">include 'mpif.h'</td></tr></tbody></table>

With MPI-3 Fortran, the `USE mpi_f08` module is preferred over using the include file shown above.
Starting with MPI-3 Fortran, the `USE mpi_f08` module is preferred over using the include file shown above.

#### Format of MPI Calls:

Expand Down
8 changes: 4 additions & 4 deletions mpi/implementations.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ LC also provides default compilers for each cluster.

Typically, there are multiple versions of MPI libraries and compilers on each cluster.

Modules are used to select a specific MPI library or compiler: More info HERE.
Modules are used to select a specific MPI library or compiler: More info [HERE](https://hpc.llnl.gov/software/modules-and-software-packaging).

For example, using modules:

Expand Down Expand Up @@ -182,7 +182,7 @@ MVAPICH MPI is developed and supported by the Network-Based Computing Lab at Ohi

Available on all of LC's Linux clusters.

MVAPICH2
MVAPICH

- Default MPI implementation
- Multiple versions available
Expand Down Expand Up @@ -225,7 +225,7 @@ Available on all LC Linux clusters. However, you'll need to load the desired [mo

```sh
module avail (list available modules)
module load openmpi/3.0.1 (use the module of interest)
module load openmpi/4.1.2 (use the module of interest)
```

This ensures that LC's MPI wrapper scripts point to the desired version of Open MPI.
Expand Down Expand Up @@ -287,7 +287,7 @@ The table below lists the primary MPI compiler wrapper scripts for LC's Linux cl
<th>Underlying Compiler</th>
</tr>
<tr>
<td rowspan="5"><b>MVAPCH2</b></td>
<td rowspan="5"><b>MVAPICH2</b></td>
<td><b>C</b></td>
<td><tt><b>mpicc</b></tt></td>
<td>C compiler for loaded compiler package</td>
Expand Down