3dem / relion

Image-processing software for cryo-electron microscopy
https://relion.readthedocs.io/en/latest/
GNU General Public License v2.0
453 stars 201 forks source link

relion 3.1.1 and 3.0.8 cannot find MPI_C, however relion 2.0.6 can #713

Closed chenzhao-CZ closed 3 years ago

chenzhao-CZ commented 3 years ago

Dear relion developers,

I am sorry for such a way over-asked question, but I am trying to build relion (3.1.1 or 3.0.8) on a Scientific Linux machine, and encountered an error complaining MPI_C not found when I ran cmake. However, the interesting thing is that, on the same machine in the same terminal window without doing anything extra, this "MPI_C not found" error disappeared when I tried to build relion 2.0.6.

Based on the above observation, I suspect that higher relion versions need a different version of openmpi. Is this true? Or are there any other things that are fundamentally different when compiling higher versions of relion?

For your information, I am using gcc 4.8.5 and openmpi 1.10.7.

I really appreciate it if you have any input!

Sincerely, Chen

biochem-fan commented 3 years ago

RELION itself should work with OpenMPI 1.10.7. Whether CMake can find it depends on many things and I cannot help. One possibility is to set MPI_C and MPI_CXX variables.

See https://cmake.org/cmake/help/latest/module/FindMPI.html. You might have to check the documentation of your older CMake.

chenzhao-CZ commented 3 years ago

@biochem-fan Thank you so much for your reply and I just thought that you might have observed such strange behaviors before. Today I solved the issue by running cmake with the following options (just in case it will be helpful for other people): cmake -DCUDA_ARCH=75 -DFORCE_OWN_FFTW=ON -DFORCE_OWN_FLTK=ON -DMPI_C_COMPILER=/usr/lib64/openmpi/bin/mpicc -DMPI_CXX_COMPILER=/usr/lib64/openmpi/bin/mpicxx .. I guess this will probably be the same as setting MPI_C and MPI_CXX variables.

Again I really appreciate it that you helped me solving this problem!