Skip to content

Problems running FLUSI

Thomas Engels edited this page Dec 16, 2018 · 1 revision

I can run flusi only using mpirun

Question:

When I do:

./flusi -p --vorticity ux_00.h5 uy_00.h5 uz_00.h5 vorx_00.h5 vory_00.h5 vorz_00.h5

I get the following message:

./flusi: symbol lookup error: /usr/lib/libmpi_mpifh.so.12: undefined symbol: mpi_fortran_weights_empty

However, when I run it using mpirun:

mpirun -np 1./flusi -p --vorticity ux_00.h5 uy_00.h5 uz_00.h5 vorx_00.h5 vory_00.h5 vorz_00.h5

It works. What does it mean?

Answer:

This is not a problem specific to our code, but rather to your specific MPI implementation and bash environment. I know that on some openMPI solutions, we had a similar problem, and it was also quite typical for UBUNTU based distributions. I think it is an LD_LIBRARY_PATH issue: the MPI runtime libraries are not automatically available, unless the MPI command mpirun is explicitly invoked. On my machine, which is running FEDORA 29, I can see :

[engels@figuerolles FLUSI]$ module avail
---------------- /usr/share/Modules/modulefiles -----------------
dot  module-git  module-info  modules  null  use.own  

----------------------- /etc/modulefiles ------------------------
mpi/mpich-x86_64  

-------------------- /usr/share/modulefiles ---------------------
mpi/openmpi-x86_64  python-sphinx/python3-sphinx  
[engels@figuerolles FLUSI]$ module show mpi/mpich-x86_64
-----------------------------------------------------------------
/etc/modulefiles/mpi/mpich-x86_64:

conflict        mpi
setenv          MPI_BIN /usr/lib64/mpich/bin
setenv          MPI_SYSCONFIG /etc/mpich-x86_64
setenv          MPI_FORTRAN_MOD_DIR /usr/lib64/gfortran/modules/mpich
setenv          MPI_INCLUDE /usr/include/mpich-x86_64
setenv          MPI_LIB /usr/lib64/mpich/lib
setenv          MPI_MAN /usr/share/man/mpich-x86_64
setenv          MPI_PYTHON_SITEARCH /usr/lib64/python2.7/site-packages/mpich
setenv          MPI_PYTHON2_SITEARCH /usr/lib64/python2.7/site-packages/mpich
setenv          MPI_PYTHON3_SITEARCH /usr/lib64/python3.7/site-packages/mpich
setenv          MPI_COMPILER mpich-x86_64
setenv          MPI_SUFFIX _mpich
setenv          MPI_HOME /usr/lib64/mpich
prepend-path    PATH /usr/lib64/mpich/bin
prepend-path    LD_LIBRARY_PATH /usr/lib64/mpich/lib
prepend-path    MANPATH :/usr/share/man/mpich-x86_64
prepend-path    PKG_CONFIG_PATH /usr/lib64/mpich/lib/pkgconfig
-----------------------------------------------------------------

[engels@figuerolles FLUSI]$ ./flusi
 nothing to do; the argument  is unkown..
[engels@figuerolles FLUSI]$ 

so the problem does not appear. Notice the module appends /usr/lib64/mpich/lib to the LD_LIBRARY_PATH