GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com β€” GitHub - wi4mpi/wi4mpi: Wrapper interface for MPI

BranchesTags
Open more actions menu

Latest commit

 

History

968 Commits
968 Commits

Folders and files

NameName
Last commit message
Last commit date
Testing
Testing
 
 
doc
doc
 
 
scripts
scripts
 
 
share/wi4mpi
share/wi4mpi
 
 
src
src
 
 
.gitignore
.gitignore
 
 
.readthedocs.yaml
.readthedocs.yaml
 
 
CMakeLists.txt
CMakeLists.txt
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
GOVERNANCE.md
GOVERNANCE.md
 
 
LICENSE-BSD
LICENSE-BSD
 
 
README.md
README.md
 
 
Wi4MPI_Technical-Charter.pdf
Wi4MPI_Technical-Charter.pdf
 
 

Repository files navigation

WI4MPI

alt tag

WI4MPI is an MPI wrapper and interoperability library that enables seamless runtime conversions between various MPI implementations. Easily switch between MPI libraries without recompiling your applications!

Key Features:

  • πŸš€ Compile Once, Run Anywhere: Compile your application once using WI4MPI's MPI interface wrappers, and transparently execute it with different MPI implementations at runtime, including OpenMPI, IntelMPI, MPICH, MVAPICH, and MPC.

  • πŸ”„ Dynamic MPI Conversion: Seamlessly switch between MPI implementations (e.g., OpenMPI ↔ IntelMPI) without recompiling.

  • 🐳 Container-friendly: Easily replace containerized MPI stacks with optimized MPI libraries available on your HPC cluster.

  • 🌐 Flexible HPC Integration: Ideal for configuring environment modules or Slurm scripts to maximize portability and performance across various HPC environments.

With WI4MPI, achieve seamless interoperability, optimized performance, and simplified management of MPI applications across diverse computing environments.

Check the full documentation to know more about the project.

New! Join us on Slack to discuss with the team!

Two modes are provided:

Preload, for dynamic conversion: alt tag

Interface, for building an universal MPI code: alt tag

Installation

Prerequisites

  • GNU/Linux OS
  • Mandatory: C and Fortran compilers
  • Optional: Python 3 and Jinja 2

Python 3 is mandatory if you need to generate Wi4MPI code. As specified in the generator requirements, it depends on logging, colorlog & docopts Python packages.

Spack

WI4MPI is available on Spack:

$ spack install wi4mpi

Check the WI4MPI Spack tutorial here: Installalling Wi4MPI using Spack

Compiling with CMAKE

Here is a quick introduction to compile WI4MPI with pre-generated sources (using wi4mpi-x.y.z.tar.gz archive provided with releases, starting with Wi4MPI 4.0):

$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/path-install/wi4mpi-%version ..
$ make -j 16
$ make install

For more details (and in particular if you need to regenerate the sources) please check the full documentation.

Documentation

Wi4MPI documentation is built with Sphinx, choose your preferred format. Example with html:

$ cd doc/
$ make html
$ firefox build/html/index.html

The full documentation in hosted by readthedocs: https://wi4mpi.readthedocs.io/en/latest/

Quick start

Source the setup env bash file:

$ source share/wi4mpi/setup-env.sh

Run mpirun wrapper command:

$ mpirun -np 4 -F openmpi -T intelmpi ./mpi_hello.exe

You are using Wi4MPI-%version in preload mode from OMPI to INTEL

Hello_world 0
Hello_world 2
Hello_world 3
Hello_world 1

MPI containers translation

WI4MPI supports transparent MPI translation within containerized environments. This feature allows applications using MPI inside containers (e.g., Docker, Podman, Singularity) to leverage optimized MPI libraries provided by HPC centers, without modifying the container itself.

Currently, a detailed tutorial is available for using WI4MPI with OpenMPI and IntelMPI inside Podman containers:

  • Applying Wi4MPI to Podman

If you need assistance or examples for other container technologies, feel free to reach out or contribute.

Authors/contributors

  • [email protected]
  • [email protected]
  • [email protected]
  • [email protected]
  • [email protected]
  • [email protected]

Contact

  • [email protected]
  • [email protected]
  • [email protected]

Website

CEA-HPC

Publications

If you are referencing Wi4MPI in a publication, you can cite the following paper:

  • E. A. LeΓ³n, M. Joos et al., "On-the-Fly, Robust Translation of MPI Libraries," 2021 IEEE International Conference on Cluster Computing (CLUSTER), 2021, pp. 504-515, doi: 10.1109/Cluster48925.2021.00026.

License

Copyright 2015-2022 CEA/DAM/DIF

WI4MPI is distributed under the BSD-3-Clause.

About

Wrapper interface for MPI

Resources

Readme
BSD-3-Clause license

Code of conduct

Code of conduct
Activity
Custom properties

Stars

102 stars

Watchers

19 watching

Forks

21 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 β€” GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800Γ—600. No cookies required.