Eiger¶
Eiger is an Alps cluster that provides compute nodes and file systems designed to meet the needs of CPU-only workloads for the HPC Platform. For more information, please refer to the CSCS Documentation .
C2SM only provides partial support for Eiger. Nevertheless, below you can find instructions on how to set up ICON on Eiger.
Setting Up ICON with Spack on Eiger¶
1. Pull and Start the Environment¶
uenv image pull prgenv-gnu/24.11:v1
uenv start --view=spack prgenv-gnu/24.11:v1
2. Clone and Setup Spack¶
git clone -b releases/v0.23 https://github.com/spack/spack
source spack/share/spack/setup-env.sh
Set spack system config path:
export SPACK_SYSTEM_CONFIG_PATH=/user-environment/config/
3. Modify Compiler Flags for ICON¶
Edit the file: spack/var/spack/repos/builtin/packages/icon/package.pypackages.py
Add the following under the line if self.compiler.name == "gcc"::
flags["LDFLAGS"].append("-Wl,--copy-dt-needed-entries")
flags["ICON_FCFLAGS"].append("-fallow-argument-mismatch")
flags["ICON_OCEAN_FCFLAGS"].extend([
"-O3",
"-fno-tree-loop-vectorize",
"-fallow-argument-mismatch"
])
4. Create and Configure Spack Environment for ICON¶
spack env create my-icon
Modify the spack.yaml file in your my-icon environment. Example:
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
specs:
- icon+art+rte-rrtmgp+grib2 -ocean ~coupling
view: true
concretizer:
unify: true
develop:
icon:
spec: icon +rte-rrtmgp +art +grib2 -ocean ~coupling
path: /capstor/store/cscs/empa/em05/ckeller/icon-kit
compilers:
- compiler:
spec: gcc@=7.5.0
paths:
cc: /usr/bin/gcc
cxx: /usr/bin/g++
f77: /usr/bin/gfortran
fc: /usr/bin/gfortran
flags: {}
operating_system: sles15
target: x86_64
modules: []
environment: {}
extra_rpaths: []
- compiler:
spec: gcc@=12.3.0
paths:
cc: /usr/bin/gcc-12
cxx: /usr/bin/g++-12
f77: /usr/bin/gfortran-12
fc: /usr/bin/gfortran-12
flags: {}
operating_system: sles15
target: x86_64
modules: []
environment: {}
extra_rpaths: []
Path to ICON code
Ensure develop.icon.path points to your local ICON source code.
5. Activate the Environment¶
spack env activate path/to/my-icon
6. Concretize and Install Packages¶
spack concretize
spack install
concretize resolves dependencies, and install builds the packages.