MPI recv from an unknown source

This assumes you are using C. There are similar concepts in C++ and Fortran. You would just specify MPI_ANY_SOURCE as the source in the MPI_recv(). The status struct contains the actual source of the message. int buf[32]; MPI_Status status; // receive message from any source MPI_recv(buf, 32, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); int replybuf[]; // … Read more

mpiexec vs mpirun

mpiexec is defined in the MPI standard (well, the recent versions at least) and I refer you to those (your favourite search engine will find them for you) for details. mpirun is a command implemented by many MPI implementations. It has never, however, been standardised and there have always been, often subtle, differences between implementations. … Read more

Display a MPI typemap

As Rob Latham said, there isn’t good pre-existing solutions. With the help of the links given by tim I created this function available on Github. I took your example for the contiguous + resize test (here) and the output is contiguous + resize “(LB, -3), (MPI_INT, 0), (MPI_INT, 9), (UB, 15)” With this function you … Read more

MPICH vs OpenMPI

Purpose First, it is important to recognize how MPICH and Open-MPI are different, i.e. that they are designed to meet different needs. MPICH is supposed to be high-quality reference implementation of the latest MPI standard and the basis for derivative implementations to meet special purpose needs. Open-MPI targets the common case, both in terms of … Read more