Compilation Guide for EuroHPC systems

This document provides instructions on how to prepare the environment and compile FALL3D using CMake and Meson on the Leonardo, Mare Nostrum 5, and Lumi systems.

Leonardo@CINECA

Expand section for Leonardo CINECA installation instructions

Load CMake

CMake is available from the login without any action.

Load Meson

module load spack
spack load meson@1.2.2%gcc@12.2.0

Build CMake

# cd into fall3d folder after git clone the repo
mkdir build
cd build
cmake .. [ options ]
make -j15

Cmake options example

# -DCMAKE_BUILD_TYPE can also be used
cmake .. -DDETAIL_BIN=YES -DWITH-MPI=YES -DWITH-ACC=YES -DWITH-R4=NO \
-DCUSTOM_COMPILER_FLAGS="-fast -g -Minfo=accel" \
-DCUSTOM_LINKER_FLAGS="-g"

Build Meson

# cd into fall3d folder after git clone the repo
meson setup build [ options ]
meson compile -C build/

Meson options example

meson setup build -D DETAIL_BIN=true -D WITH-R4=false -D WITH-ACC=true \
-D WITH-MPI=true -D CUSTOM_COMPILER_FLAGS="-fast -g -Minfo=accel" \
-D CUSTOM_LINKER_FLAGS="-g" -D buildtype=plain

GNU required modules

module load netcdf-fortran/

NVHPC required modules

# Leonardo will load the dependencies automatically
module load netcdf-fortran/4.6.1--openmpi--4.1.6--nvhpc--23.11

MN5-ACC@BSC

Expand section for Mare Nostrum 5 installation instructions

Load CMake

module load EB/apps
module load CMake/3.27.6-GCCcore-13.2.0

Load Meson

module load EB/apps
module load Meson/1.2.3-GCCcore-13.2.0

Build CMake

# cd into fall3d folder after git clone the repo
mkdir build
cd build
cmake .. [ options ]
make -j15

Cmake options example

# -DCMAKE_BUILD_TYPE can also be used
cmake .. -DDETAIL_BIN=YES -DWITH-MPI=YES -DWITH-ACC=YES -DWITH-R4=NO \
-DCUSTOM_COMPILER_FLAGS="-fast -g -Minfo=accel" \
-DCUSTOM_LINKER_FLAGS="-g"

Build Meson

# cd into fall3d folder after git clone the repo
meson setup build [ options ]
meson compile -C build/

Meson options example

meson setup build -D DETAIL_BIN=true -D WITH-R4=false -D WITH-ACC=true \
-D WITH-MPI=true -D CUSTOM_COMPILER_FLAGS="-fast -g -Minfo=accel" \
-D CUSTOM_LINKER_FLAGS="-g" -D buildtype=plain

GNU required modules

module load EB/apps
module load netCDF-Fortran/4.6.1-gompi-2023b

NVHPC required modules

module load nvidia-hpc-sdk/24.3
module load hdf5/1.14.1-2-nvidia-nvhpcx
module load pnetcdf/1.12.3-nvidia-nvhpcx
module load netcdf/c-4.9.2_fortran-4.6.1_cxx4-4.3.1-nvidia-nvhpcx

LUMI@CSC

Expand section for LUMI installation instructions

Load CMake

CMake is available from the login without any action

Load Meson

Meson can be loaded in LUMI but is not included because is not compatible with cray compiler

Build CMake

# cd into fall3d folder after git clone the repo
mkdir build
cd build
cmake .. [ options ]
make -j15

Cmake options example

# -DCMAKE_BUILD_TYPE can also be used
cmake .. -DDETAIL_BIN=YES -DWITH-MPI=YES -DWITH-ACC=YES -DWITH-R4=NO \
-DCUSTOM_COMPILER_FLAGS="-fast -g -Minfo=accel" \
-DCUSTOM_LINKER_FLAGS="-g"

CRAY serial / parallel required modules

module load cray-hdf5
module load cray-netcdf 

CRAY GPU required modules

module load LUMI/24.03
module load partition/G
module load rocm
module load cray-hdf5
module load cray-netcdf