Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions env/jsc.2024.gnu.openmpi_jureca-gh
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# --------------------------------------------------------------------------
# Loads GNU+OpenMPI build environment for TSMP2.
# This environment is tailored for JURECA [1] and JUWELS [2] supercomputers.
#
# [1] https://apps.fz-juelich.de/jsc/software/jureca/index.xhtml
# [2] https://apps.fz-juelich.de/jsc/software/juwels/index.xhtml
#
# Usage: source jsc.2024.gnu.openmpi_dc-gh
# --------------------------------------------------------------------------

# Load Stages/2024
module --force purge
module use $OTHERSTAGES
module load Stages/2024

# Primary compiler toolchain
module load GCC
module load OpenMPI

# Basic scripting and build tools
module load Python
module load CMake
module load git

# Storage libraries
module load HDF5
module load netCDF
module load netCDF-Fortran
module load PnetCDF

# ParFlow additional libraries
if [[ "$1" == "--parflowgpu" ]]; then
module load CUDA
#module load UCX-settings/RC-CUDA
module load Hypre

# TODO: Verify these values
if [[ $SYSTEMNAME == "jedi" || $SYSTEMNAME == "jupiter" || $SYSTEMNAME == "jureca_gh" ]]; then
export CUDAARCHS="90"
else
export CUDAARCHS="80"
fi
export CMAKE_CUDA_RUNTIME_LIBRARY="Shared"
else
module load Hypre
fi
module load Tcl

# ICON additional libraries
module load ecCodes

# Set default MPI compilers
export OMPI_CC=gcc
export OMPI_CXX=g++
export OMPI_FC=gfortran
export CC=mpicc
export FC=mpif90
export CXX=mpicxx
export MPI_HOME=$EBROOTOPENMPI

# Display compiler settings
module list
echo "=============== COMPILER SETTINGS ==============="
echo " Machine: ${SYSTEMNAME} on Stages/$STAGE"
# echo " MPI lib: $(mpirun --version | head -n 1)"
# echo " C: $($CC --version | head -n 1)"
# echo " C++: $($CXX --version | head -n 1)"
# echo " Fortran: $($FC --version | head -n 1)"
# if [[ "$1" == "--parflowgpu" ]]; then
# echo " nvcc: $(nvcc --version | tail -n 1 | cut -d" " -f2)"
# echo " CUDAARCHS: $CUDAARCHS"
# fi
echo "=================================================="
echo ""