OpenMPI

Using OpenMPI on SeaWulf

Overview

OpenMPI is a widely-used implementation of the Message Passing Interface (MPI) that allows for parallel processing across distributed systems. On SeaWulf, OpenMPI is available for Skylake, Milan, and Haswell nodes with different versions and compiler configurations. This guide provides the necessary steps to load the OpenMPI module, compile MPI applications, and run jobs on the cluster.

Available OpenMPI Modules

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

Skylake Nodes

  • openmpi/gcc12.1/4.1.4

Milan Nodes

  • openmpi/aocc4.0/4.1.5
  • openmpi/gcc13.2/4.1.6
  • openmpi/gcc13.2/5.0.2

Haswell Nodes

  • openmpi/1.10.1
  • openmpi/3.1.5
  • openmpi/aocc3.2/4.1.1
  • openmpi/openmpi-opal
  • openmpi/1.10.1-test
  • openmpi/4.0.1
  • openmpi/gcc11.2/4.1.1
  • openmpi/3.0.0
  • openmpi/4.0.5
  • openmpi/gcc12.1/4.1.4

Loading a Module

To use OpenMPI, first load the appropriate module for your architecture. For example, if you're working with Milan nodes, you could load the following module:

module load openmpi/gcc13.2/5.0.2

Select the version that fits your compiler and desired MPI features. If you're using a different node type, ensure you choose the correct module as per the available list.

Compiling with OpenMPI

Once the OpenMPI module is loaded, you can compile your MPI application using the mpicc compiler. For example, to compile an MPI program:

mpicc -o my_mpi_program my_mpi_program.c

This command compiles the source code and links it to the OpenMPI library. Be sure to adjust the compiler flags if necessary for your specific program.

Running MPI Jobs

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

mpirun -np 4 ./my_mpi_program

Make sure to adjust the number of processes based on the resources available on your nodes and the requirements of your job.

Important Notes

Ensure that you choose the OpenMPI module that corresponds to your node architecture and compiler. Some versions of OpenMPI are optimized for specific hardware configurations or compiler versions.

Older versions of OpenMPI may not be compatible with newer hardware or features. Verify the compatibility of your job with the OpenMPI version you select to avoid performance issues.

Additional Resources

For additional information on OpenMPI or troubleshooting your MPI applications, consult the SeaWulf documentation or contact support. You can also explore the official OpenMPI website for more detailed guides and FAQs.