Why does openmpi's mpicc does not get installed in /usr/bin?

Just took me 10 min to figure out that mpicc from openmpi is not localted in /usr/bin/mpicc but in /usr/lib64/openmpi/bin/mpicc (which is not in the default path!).

This way I couldnt execute mpicc. Is this just an oversight, or is there a reason behind this inconvenience that I needed to manually add /usr/lib64/openmpi/bin to my path?

Imagine having to do that for every application!

Tree - rpms/openmpi - src.fedoraproject.org defines the path.

You may to contact the package maintainers if you think changes are required… please keep us posted.

There are two mpi implementations. You can choose which one to use at runtime using environment modules (Fedora provides the legacy tcl version and also the lua version):

 % ml avail
------------------------------------------------------------------------------ /usr/share/modulefiles -------------------------------------------------------------------------------
   mpi/mpich-x86_64    mpi/openmpi-x86_64

----------------------------------------------------------------------- /usr/share/lmod/lmod/modulefiles/Core -----------------------------------------------------------------------
   lmod    settarg

   D:  Default Module

If the avail list is too long consider trying:

"module --default avail" or "ml -d av" to just list the default modules.
"module overview" or "ml ov" to display the number of modules for each name.

Use "module spider" to find all possible modules and extensions.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
1 Like

But isnt this the case for multiple binaries that the same name might already be taken by another binary?

Why just not make it in /usr/bin and tell the user when he tries to install conflicting packages?

I guess most people just use one MPI implementation?

Fedora stopped using %{_bindir} for openmpi about 13 years ago:
Commit - rpms/openmpi - ed33b843e847d99cd39492e2c100a7f9492160d7

It appears to be related to the MPI specific packaging guidelines:
496131 – File conflict between openmpi and libotf in F11 rawhide branch

1 Like

Many big science codes use both because they combine subsystems from different labs. These codes are constantly being improved, so users often modify and rebuild components using the appropriate library.