Home Page
About Us


MPICH is a freely available, portable implementation of MPI, the Standard for message-passing libraries.


Open MPI is an open source implementation of the Message Passing Interface, a library for distributed memory parallel programming.



From my experience one good feature that openmpi supports but mpich does not is process affinity;for example in openmpi using -npersocket you can set the number of ranks launched on each socket

from question  


While openmpi supports more connection protocols there is an infiniband-enabled version of mpich called mvapich

from question  

What is difference between Hydra and Torque and what is better: MPICH2 or OpenMPI

It seems openmpi has better support for assigning ranks than mpich but setting up slurm and mpich wasn t trivial due to the cluster setup so i m hesitant to start over with openmpi

from question  

MPICH/SLURM assign host rank

Openmpi has only recently supported mpi-3 and i find that some mpi-3 features are buggy on some platforms mpich is not bug-free of course but bugs in mpi-3 features have been far less common;historically openmpi has not had holistic support for mpi_thread_multiple which is critical for some applications

from question  


The fault tolerance in openmpi is kind of experimental one of the ompi developers namely jeff squyres visits stack overflow from time to time - he could give a more definitive answer and has to be explicitly enabled at library build time with an option like;by default mpich also cannot handle such situations

from question  

MPI error handler not getting called when exception occurs

Back to Home
Data comes from Stack Exchange with CC-BY-SA-4.0