Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
8a0636d
add blueline uenv for running ICON with ICON4Py dycore.
DropD Jun 5, 2025
2ed4c34
rename blueline -> icon-dsl & add to config
DropD Jun 10, 2025
6052ca2
replace updated py-uv package with uv from binary releases
DropD Jun 13, 2025
d04c007
rename recipe path g200 -> gh200
bcumming Jun 13, 2025
b6a8ae1
add fixes from experimenting on santis
DropD Jul 15, 2025
e9ad287
clean up old "py-uv" dependence, get rid of "cudnn" dep.
DropD Jul 16, 2025
4a5fd29
fix packages
DropD Jul 17, 2025
784d6f7
add a100 version for balfrin
DropD Jul 17, 2025
293f3c5
update config with a100 balfrin version of icon-dsl
DropD Jul 17, 2025
8544c9c
manually block `cupy-cuda12x` and `ghex` from being reinstalled by uv
DropD Jul 18, 2025
366f5e4
fix icon-dsl uenv name in config
DropD Jul 21, 2025
9f06d6e
merge icon dependencies from the "icon" uenv into this one
DropD Jul 30, 2025
f1b48ca
update cupy to a version that supports cuda 12.6, fix mpi spec
DropD Jul 30, 2025
eddca3f
fix cupy package depends_on calls
DropD Jul 30, 2025
c6f60c5
fix cupy and icon4py packages
DropD Jul 30, 2025
1b544bb
fix gh200 cupy package
DropD Jul 31, 2025
6d10584
downgrade cuda to 12.4
DropD Aug 4, 2025
e11032a
try using cupy version 13.1.0 with cuda 12.4
DropD Aug 4, 2025
d9902ff
start with new version
huppd Dec 4, 2025
48395bb
builds
huppd Dec 8, 2025
9a53249
revert
huppd Dec 8, 2025
b35b3e3
wip
huppd Dec 8, 2025
fbc299b
add all spack-c2sm packages
huppd Dec 9, 2025
d0703fa
revert
huppd Dec 10, 2025
5376273
first minimal pre-install
huppd Dec 10, 2025
89771f9
new pre-install
huppd Dec 10, 2025
27d4d4b
More
huppd Dec 10, 2025
6d90f91
almost there
huppd Dec 10, 2025
4d7a090
Merge branch 'icon-dsl_dh' of github.com:huppd/software-stack-recipes…
huppd Dec 10, 2025
423d444
icon4py kind of works
huppd Dec 10, 2025
8f8f1a6
include icon-exclaim
huppd Dec 16, 2025
ad5c8e3
cleanup
huppd Dec 16, 2025
909d3ca
Merge branch 'icon-dsl_dh' of github.com:huppd/software-stack-recipes…
huppd Dec 16, 2025
8a4ccd2
Merge pull request #1 from huppd/icon-dsl_dh
DropD Dec 16, 2025
e105a0b
Merge branch 'main' into icon-dsl
DropD Dec 16, 2025
6612a26
add recipes to config.yml
huppd Dec 16, 2025
1db142e
Merge branch 'icon-dsl' into fix_config_yml
DropD Dec 16, 2025
c9bb5bc
Merge pull request #2 from huppd/fix_config_yml
DropD Dec 16, 2025
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
15 changes: 15 additions & 0 deletions config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,21 @@ uenvs:
deploy:
santis: [gh200]
balfrin: [a100]
icon-dsl:
"25.8":
recipes:
gh200: '25.8/gh200'
a100: '25.8/a100'
deploy:
santis: [gh200]
balfrin: [a100]
"25.12":
recipes:
gh200: '25.12/gh200'
a100: '25.12/a100'
deploy:
santis: [gh200]
balfrin: [a100]
mch:
"v7":
recipes:
Expand Down
9 changes: 9 additions & 0 deletions recipes/icon-dsl/25.12/a100/compilers.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
bootstrap:
spec: gcc@12.3
gcc:
specs:
- gcc@13
llvm:
requires: gcc@13
specs:
- nvhpc@25.1
7 changes: 7 additions & 0 deletions recipes/icon-dsl/25.12/a100/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
name: icon-dsl
store: /user-environment
spack:
repo: https://github.com/spack/spack.git
commit: releases/v0.23
modules: false
description: Build and runtime dependencies for ICON-DSL
49 changes: 49 additions & 0 deletions recipes/icon-dsl/25.12/a100/environments.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
icon:
compiler:
- toolchain: gcc
spec: gcc
- toolchain: llvm
spec: nvhpc
mpi:
spec: cray-mpich@8.1.30%nvhpc
gpu: cuda
unify: true
specs:
# icon4py deps
- python@3.11
- py-cupy +cuda cuda_arch=80
- ghex +python +cuda cuda_arch=80
- py-mpi4py
- icon4py@main
- icon-exclaim @develop %nvhpc dsl=substitute +grib2 +eccodes-definitions +ecrad
~emvorado +art +dace gpu=nvidia-80 +mpi-gpu +realloc-buf ~aes ~jsbach ~ocean ~coupling
~rte-rrtmgp ~loop-exchange ~async-io-rma ~cuda-graphs fflags="-traceback"
# icon deps
- cuda@12.4
- eccodes@2.36.4%nvhpc +tools +fortran +aec +openmp jp2k=jasper
- cosmo-eccodes-definitions@2.36.0.3
- hdf5%nvhpc +szip +hl +fortran +mpi
- netcdf-c@4.9.2%nvhpc
- netcdf-cxx4@4.3.1%nvhpc
- netcdf-fortran@4.6.1%nvhpc
- osu-micro-benchmarks@5.9%nvhpc
- openblas
# for validation
- cdo
# everything needed for nccl on SS11
- nccl
- nccl-tests
# extras
- libfyaml
- zlib-ng
- cmake
variants:
- +mpi
- +cuda
- cuda_arch=80
views:
default:
link: roots
uenv:
prefix_paths:
LD_LIBRARY_PATH: [lib, lib64]
6 changes: 6 additions & 0 deletions recipes/icon-dsl/25.12/a100/extra/reframe.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
default:
features: [osu-micro-benchmarks, mpi, serial, openmp]
cc: mpicc
cxx: mpic++
ftn: mpifort
activation: /user-environment/env/default/activate.sh
26 changes: 26 additions & 0 deletions recipes/icon-dsl/25.12/a100/modules.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
modules:
# Paths to check when creating modules for all module sets
prefix_inspections:
bin:
- PATH
lib:
- LD_LIBRARY_PATH
lib64:
- LD_LIBRARY_PATH

default:
arch_folder: false
# Where to install modules
roots:
tcl: /snap/modules
tcl:
all:
autoload: run
hash_length: 0
hide_implicits: true
exclude:
- '%gcc@7.5.0'
- '%gcc@12'
- 'gcc %gcc@7.5.0'
projections:
all: '{name}/{version}'
59 changes: 59 additions & 0 deletions recipes/icon-dsl/25.12/a100/pre-install
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/bin/bash
set -euo pipefail

# --------------------------
# Configuration
# --------------------------
packages=(
"cosmo-eccodes-definitions"
"ghex"
"hwmalloc"
"oomph"
"uv"
"icon4py"
# "icon"
# "icon-exclaim"
)
SPACK_C2SM_TAG="v0.22.2.5"

echo "----------------------------------------"
echo "SPACK C2SM Setup Script"
echo "Tag to clone: ${SPACK_C2SM_TAG}"
echo "Packages to copy: ${packages[*]}"
echo "----------------------------------------"

# --------------------------
# Clone the spack-c2sm repository
# --------------------------
echo "Cloning spack-c2sm repository (branch/tag: ${SPACK_C2SM_TAG})..."
git clone --depth 1 -b "${SPACK_C2SM_TAG}" https://github.com/C2SM/spack-c2sm.git
echo "Clone complete."

# --------------------------
# Copy packages into store/repo/packages
# --------------------------
for package in "${packages[@]}"; do
SRC="spack-c2sm/repos/c2sm/packages/${package}"
DEST="store/repo/packages/${package}"

echo "Copying package '${package}'..."

if [[ ! -d "$SRC" ]]; then
echo "ERROR: Source package directory does not exist: $SRC"
exit 1
fi

mkdir -p "$(dirname "$DEST")"
cp -r "$SRC" "$DEST"

echo "Package '${package}' copied to '$DEST'."
done

# --------------------------
# Cleanup
# --------------------------
echo "Removing temporary clone 'spack-c2sm'..."
rm -rf spack-c2sm
echo "Cleanup complete."

echo "All done!"
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
--- a/cmake/ecbuild_append_to_rpath.cmake
+++ b/cmake/ecbuild_append_to_rpath.cmake
@@ -31,7 +31,7 @@ function( _path_append var path )
else()
list( FIND ${var} ${path} _found )
if( _found EQUAL "-1" )
- set( ${var} "${${var}}:${path}" PARENT_SCOPE )
+ set( ${var} "${${var}};${path}" PARENT_SCOPE )
endif()
endif()
endfunction()
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,6 +43,18 @@ ecbuild_add_option( FEATURE JPG
DESCRIPTION "support for JPG decoding/encoding"
DEFAULT ON
)
+# Options related to JPG. The Jasper and OpenJPEG libraries
+ecbuild_add_option( FEATURE JPG_LIBJASPER
+ DESCRIPTION "Support for JPG decoding/encoding with the Jasper library"
+ CONDITION ENABLE_JPG
+ DEFAULT ON
+)
+ecbuild_add_option( FEATURE JPG_LIBOPENJPEG
+ DESCRIPTION "Support for JPG decoding/encoding with the OpenJPEG library"
+ CONDITION ENABLE_JPG
+ DEFAULT ON
+)
+

ecbuild_add_option( FEATURE PNG
DESCRIPTION "support for PNG decoding/encoding"
@@ -144,7 +156,7 @@ if( ENABLE_JPG )

find_package( OpenJPEG )

- if( JASPER_FOUND )
+ if( JASPER_FOUND AND ENABLE_JPG_LIBJASPER )
list( APPEND ECCODES_TPLS Jasper )
set( HAVE_JPEG 1 )
set( HAVE_LIBJASPER 1 )
@@ -152,7 +164,7 @@ if( ENABLE_JPG )
string(REGEX REPLACE "^([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" JASPER_VERSION_MAJOR "${JASPER_VERSION_STRING}")
endif()

- if( OPENJPEG_FOUND )
+ if( OPENJPEG_FOUND AND ENABLE_JPG_LIBOPENJPEG )
list( APPEND ECCODES_TPLS OpenJPEG )
set( HAVE_JPEG 1 )
set( HAVE_LIBOPENJPEG 1 )
Loading