PolyChord / PolyChordLite

Public version of PolyChord: See polychord.co.uk for PolyChordPro
https://polychord.io/
Other
83 stars 26 forks source link

[AUR]: AUR package installs but `import pypolychord` fails with `ImportError: libmpi_cxx.so.40` #120

Open appetrosyan opened 4 months ago

appetrosyan commented 4 months ago

The AUR package (as well as the package installed by cloning and running sudo python3 setup.py install) succeeds with warnings.

Importing pypolychord from within the interpreter fails with the libmpi_cxx.so.40 most likely because the MPI interface library is no longer available on Arch Linux and won't be going forward.

Solutions

Re-package old MPI and make it a dependency

This is probably the best course of action, at the moment.

Fix up and use the later version of MPI.

This is probably the best course of action long term. I will attempt to do it, but no promises.

williamjameshandley commented 4 months ago

Hi, could you confirm whether on a clean install (best done by repeatedly running pip uninstall pypolychord), the following commmand work or fail:

python -m venv venv
source venv/bin/activate
git clone git@github.com:PolyChord/PolyChordLite.git
cd PolyChordLite
make
pip install .
cd ..
wget https://raw.githubusercontent.com/PolyChord/PolyChordLite/master/quickstart.py
mpirun -np 4 python quickstart.py
appetrosyan commented 1 month ago

I finally managed to get it to work...

This particular set of commands fails at the last step with:

(venv) [app@antares polychord-test]$ mpirun -np 8 quickstart.py 
--------------------------------------------------------------------------
prterun was unable to find the specified executable file, and therefore did
not launch the job.  This error was first reported for process rank
0; it may have occurred for other processes as well.

NOTE: A common cause for this error is misspelling a prterun command
   line parameter option (remember that prterun interprets the first
   unrecognized command line token as the executable).

Node:       antares Executable: quickstart.py
--------------------------------------------------------------------------

However, unlike my previous attempts, I can now do

python quickstart.py

and get the expected sampling results that would be expected:

Last dead point: [ 7.65701129e-03  2.80226513e-03  3.16155912e-03 -2.93123023e-03
  8.50700784e-05  5.42905187e+00  5.53033274e+00]
 ____________________________________________________ 
|                                                    |
| ndead  =         3232                              |
| log(Z) =           -2.72723 +/-            0.17909 |
|____________________________________________________|
/home/app/Git/polychord-test/venv/lib/python3.12/site-packages/pypolychord/polychord.py:642: UserWarning: anesthetic not installed. Cannot return NestedSamples object.

This seems odd, but definitely means that it is a systems configuration issue, not a package problem.

[!WARNING] I would recommend keeping the issue open, until I figure out what exactly was causing the issue.