MPI¶
The message passing protocol (MPI) is not needed to install, run and perform retrievals.
This is more of a help guide to getting mpi4py working successfully and is not specific to TauREx3
There are some optimizers that can make use of MPI to significantly speed up retrievals. Specifically the Multinest and PolyChord optimizers. Considering most people have difficulty with installing it, this guide has been written to make the experience as smooth as possible.
First you must have an MPI library installed, this may already be installed in your system (such as a cluster) or you can install a library youself. For Mac users the quickest way to install it is through Homebrew:
brew install openmpi
Now we need to install our python MPI wrapper library mpi4py:
pip install mpi4py
You can test the installation:
mpirun -n 4 python -m mpi4py.bench helloworld
Replace mpirun with whatever the equivalent is for your system
You should get a similar output like so:
Hello, World! I am process 0 of 4 on blahblah.
Hello, World! I am process 1 of 4 on blahblah.
Hello, World! I am process 2 of 4 on blahblah.
Hello, World! I am process 3 of 4 on blahblah.
Then you are all set! Theres no need to reinstall TauREx3 as it will now import it successfully when run.
Tip
TauREx3 actually suppresses text output from other processes so running under MPI will actually look its being run serially. In fact if you get multiple of the same outputs this is a surefire way to know that something is wrong with the mpi4py installation!!!
However if you get something like this:
Hello, World! I am process 0 of 1 on blahblah.
Hello, World! I am process 0 of 1 on blahblah.
Hello, World! I am process 0 of 1 on blahblah.
Hello, World! I am process 0 of 1 on blahblah.
This means mpi4py has not correctly installed. This likely happens
in cluster environments with multiple MPI libraries. You can overcome
this by re-installing mpi4py with the MPICC
enviroment set:
env MPICC=mpicc pip install --no-cache-dir mpi4py
Or:
env MPICC=/path/to/mpicc pip install --no-cache-dir mpi4py
Now re-run the test. If you get the correct result. Horray! If not, its best to ask your administrator.
Once you have this installed, you can install pymultinest here.