CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Bugs (
-   -   HPMPI Compilation problem still (

carsten December 10, 2008 07:42

Hi there! After HPMPI is of
Hi there!

After HPMPI is officially supported, I tried to do clean compilation from scratch (GIT-Version as of 09.12.08). Compilation fails for two reasons:

a) HPMPI-version of is not built, because src/Pstream/Allwmake doesn't contain a case for HPMPI. Fix is simple, add HPMPI to the case statement in src/Pstream/Allwmake.

b) When linking, is not found. I kind of "solved" it by copying the content of lib/linux64GccDPOpt/hpmpi/ to lib/linux64GccDPOpt/, then it worked fine. There should be place to simply change the library search path, but I don't know ...


Carsten Thorenz

mattijs December 10, 2008 08:11

Thanks. I put in a) b) The
Thanks. I put in a)

b) The obviously get correctly built in linux64GccDPOpt/hpmpi/ which is the path obtained from $FOAM_MPI_LIBBIN. This variable is added to the LD_LIBRARY_PATH ( line 247). Can you re-execute the OpenFOAM .bashrc and check your LD_LIBRARY_PATH?

carsten December 11, 2008 09:22

Hi Mattijs! a) Thank you!
Hi Mattijs!

a) Thank you!

b) I was probably too dumb. After logging off and logging in again, it works fine

Allow me a general comment on the usage of LD_LIBRARY_PATH: I think it is a bad idea to force the user to parse a script that changes LD_LIBRARY_PATH before programs can be run. For example on our cluster, this operation must be performed on every client node when OpenFoam is used in parallel. My solution is to parse OpenFoam's bashrc from within my private .bashrc because otherwise the OpenFoam-mpi-clients are unhappy with their library-path.

This is painful, as it globally changes my library search path and thus conflicts with other programs. So, I would propose not to change LD_LIBRARY_PATH every time OpenFoam is to be used. Maybe one could instead compile it with the option -Wl,-R/PATH/TO/MY/LIBS1,-R/PATH/TO/MY/LIBS2,... so that it finds them during compile time? Well, maybe this is bad for the precompiled binaries. One could use a wrapper-script for them to change LD_LIBRARY_PATH.

Just my 2c.


Carsten Thorenz

mattijs December 16, 2008 13:23

Thanks for the feedback. It is
Thanks for the feedback. It is easy to write a script to source the OpenFOAM settings before executing the parallel program and not do it by default in your private .bashrc. See e.g. mpirunDebug script which uses the 'Application Context' option of OpenMPI mpirun to execute a different script on every process.

We do not like -R at all. Makes it impossible to e.g. quickly change the Pstream library used by just changing your LD_LIBRARY_PATH. Also introduces another complexity (first search RPATH, then LD_LIBRARY_PATH).

All times are GMT -4. The time now is 08:09.