Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supplemental instructions to install MPI compiler #161

Closed
blakeaw opened this issue Feb 14, 2022 · 4 comments
Closed

Supplemental instructions to install MPI compiler #161

blakeaw opened this issue Feb 14, 2022 · 4 comments
Assignees
Labels
cleanup ...on aisle seven documentation Improvements or additions to documentation JOSS-review Issues pertaining to the JOSS review

Comments

@blakeaw
Copy link

blakeaw commented Feb 14, 2022

Hi,

This issue is part of the JOSS Review at openjournals/joss-reviews#4149

Since a MPI compiler is required for installation it might be good to include supplemental instructions for installing the compiler in case users don't already have one installed on their system. For example, I installed hymd in a WSL2 Ubuntu 20.04 instance which didn't have MPI compilers already. I ended up using the following for mpich:

sudo apt install mpich libmpich-dev

And then installing mpi4py:

CC=mpicc pip install mpi4py

This comment may have some overlap with Issue #157.

@mortele
Copy link
Member

mortele commented Feb 16, 2022

Hi @blakeaw, thank you for pointing this out. I have been relying implicitly on the having the libhdf5-openmpi-dev and python3-mpi4py having libopenmpi-dev and libopenmpi2 as dependencies, so running

sudo apt-get update -y
sudo apt-get install -y libhdf5-openmpi-dev python3-mpi4py

as described in the documentation installs the MPI compiler. But here, probably explicit is better than implicit; I will add

sudo apt-get install libopenmpi-dev libopenmpi2 

to the install docs when I get a chance.

@mortele mortele self-assigned this Feb 16, 2022
@mortele mortele added cleanup ...on aisle seven documentation Improvements or additions to documentation labels Feb 16, 2022
@blakeaw
Copy link
Author

blakeaw commented Feb 21, 2022

Ok, I see. Thanks!
I do think maybe explicit is still better here since the mpi-enabled hdf5 dependency is listed as optional. If you follow the pip install instructions that are listed first without doing the mpi-enabled hdf5 step (as I did initially) but you don't already have the mpi compiler the install will fail when it tries to build mpi4py.

I'd also maybe recommend listing the dependencies first by moving the Install dependencies subsection to the front of the Installation section of the README (and similarly in the documentation). That way users see the dependencies (in particular, the non-python ones) and can make sure they are installed first before they try to install hymd itself. Also, if you rearrange you could probably move this line python3 -m pip install --upgrade numpy mpi4py cython into the dependencies section (and note that those are core dependencies).

@mortele
Copy link
Member

mortele commented Mar 22, 2022

Hi again @blakeaw, #172 updates and rearranges the installation instructions to explicitly include installing an MPI-enabled C compiler. Also, the dependencies are moved further up, making the whole presentation more sane.

Think this issue can be safely closed now.

@mortele mortele added the JOSS-review Issues pertaining to the JOSS review label Mar 22, 2022
@blakeaw
Copy link
Author

blakeaw commented Mar 23, 2022

Hi @mortele, it looks good. Thanks. I'll go ahead and close.

Just as a side note, as the warning in installation docs suggested I couldn't get mpi-enabled h5py to install with python 3.10. But there weren't any problems installing in a new conda environment with python 3.8.

@blakeaw blakeaw closed this as completed Mar 23, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cleanup ...on aisle seven documentation Improvements or additions to documentation JOSS-review Issues pertaining to the JOSS review
Projects
None yet
Development

No branches or pull requests

2 participants