Skip to content

Notes on HPC systems

David Schneider edited this page Mar 31, 2019 · 5 revisions

SuperMUC and LRZ clusters

You may already know that special instructions apply when building preCICE for SuperMUC or for the MAC Cluster. There are a few more things to keep in mind when building or running the OpenFOAM adapter for these systems.

General notes

Please make sure that you compile all the necessary libraries with the same compiler version and MPI libraries. If you get linking errors about undefined symbols, this could be the cause.

Keep your eyes open for any messages from modules about conflicts with compilers. You may use the command module show module_name at any time to see the changes that a module causes to the environment. This mainly concerns the python/anaconda modules.

Building the yaml-cpp library

The yaml-cpp library is not available through the module system, so you need to build it (as a shared library), following the instructions on its website.

When running CMake, check the compiler versions for C and C++. If they are different than the ones you need (e.g. 4.8.5 instead of 5), you can specify the compilers explicitly. Assuming that running gcc --version and c++ --version return the version you actually want to use, you can enforce them like this:

CC=gcc CXX=c++ cmake -DBUILD_SHARED_LIBS=ON ..

Notes on the OpenFOAM modules

The module openfoam/4.1 is known to work normally, without any special treatment.

If you load an OpenFOAM module that changes the compiler version or the MPI libraries (e.g. openfoam/v1706+, check it with module show openfoam/v1706+), you need to build preCICE and yaml-cpp again, with the same compiler/MPI that the OpenFOAM module uses. You may also need to change the Boost module version (e.g. openfoam/v1706+ requires boost/1.65_gcc and you should use the same for preCICE).

Performance

You may turn off the debug messages of the OpenFOAM adapter at compile time, in order to improve the performance. Please refer to the building instructions.