MVAPICH

Using MVAPICH on SeaWulf

Overview

MVAPICH is a high-performance MPI implementation designed for both Infiniband and Ethernet networks, suitable for distributed parallel applications. On SeaWulf, MVAPICH is available for different architectures, including Skylake, Milan, and Haswell, offering different compiler and version options based on your needs.

Available MVAPICH Modules

Here are the available MVAPICH modules for different node types on SeaWulf:

Skylake Nodes

  • mvapich/gcc13.2/3.0
  • mvapich2/gcc13.2/2.3.7

Milan Nodes

  • mvapich/gcc13.2/3.0
  • mvapich2/gcc13.2/2.3.7

Haswell Nodes

  • mvapich/gcc13.2/3.0
  • mvapich2/gcc7.1/64/2.2rc1
  • mvapich2/gcc12.1/cuda12/2.3.7
  • mvapich2/aocc3.2/2.3.7
  • mvapich2/gcc10.2/2.3.7
  • mvapich2/gcc13.2/2.3.7
  • mvapich2/gcc/64/2.2rc1
  • mvapich2/gcc12.1/2.3.7

Loading a Module

To use MVAPICH, load the appropriate module for your architecture. For example, if you're working with Skylake nodes, you would load the following module:

module load mvapich/gcc13.2/3.0

Make sure to select the version that best matches your needs, particularly when working with different compilers or additional dependencies like CUDA.

Compiling with MVAPICH

Once you have the MVAPICH module loaded, you can compile your MPI application using the appropriate compiler. For example, you can use mpicc to compile your MPI program:

mpicc -o my_mpi_program my_mpi_program.c

This command compiles the MPI program and links it with the MVAPICH library. Make sure you use the correct compiler options for your specific application.

Running MPI Jobs

After compiling your MPI program, you can run it using mpirun. For example, to run the program on 4 processes:

mpirun -np 4 ./my_mpi_program

Adjust the number of processes (-np 4) according to the resources available on your nodes.

Important Notes

Ensure that you are selecting the appropriate MVAPICH version based on your compiler and node architecture. Different versions of MVAPICH might have optimizations for specific hardware or network configurations.

It is important to verify the compatibility of your MPI job with the selected MVAPICH version. Some older versions may not support the latest hardware or compiler features.

Additional Resources

For more detailed information on MVAPICH or troubleshooting your MPI jobs, please refer to the SeaWulf documentation or contact support. You can also visit the official MVAPICH website for additional resources.