From 96cebd1b64936fbfeffa1e22861c3719f6b2ef2d Mon Sep 17 00:00:00 2001 From: bcumming Date: Wed, 2 Jul 2025 15:21:02 +0200 Subject: [PATCH 01/16] add WRF build guide --- docs/build-install/applications/index.md | 14 ++++ docs/build-install/applications/wrf.md | 92 ++++++++++++++++++++++++ docs/build-install/index.md | 21 +++--- docs/build-install/pip.md | 5 +- docs/build-install/uenv.md | 3 + docs/contributing/index.md | 1 + mkdocs.yml | 5 +- 7 files changed, 128 insertions(+), 13 deletions(-) create mode 100644 docs/build-install/applications/index.md create mode 100644 docs/build-install/applications/wrf.md diff --git a/docs/build-install/applications/index.md b/docs/build-install/applications/index.md new file mode 100644 index 00000000..8e799b20 --- /dev/null +++ b/docs/build-install/applications/index.md @@ -0,0 +1,14 @@ +[](){#ref-build-applications} +# Application installation guides + +This is a collection of installation guides for commonly-used software that is not [officially supported softare][ref-software-sciapps]. + +!!! note "Contributions welcome!" + The guides here are best effort, and may become out of date. + + If you see that a guide is out of date, you are welcome to [propose an update](https://github.com/eth-cscs/cscs-docs/issues) or make a [contribution][ref-contributing]. + +## Guides + +* [WRF][ref-software-packages-wrf] + diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md new file mode 100644 index 00000000..350f7474 --- /dev/null +++ b/docs/build-install/applications/wrf.md @@ -0,0 +1,92 @@ +[](){#ref-software-packages-wrf} +# WRF + +[The Weather Research & Forecasting Model](https://www.mmm.ucar.edu/models/wrf) (WRF) is a numerical weather prediction system designed for both atmospheric research and weather forecasting. + +It is used for CPU-only simulation on [Eiger][ref-cluster-eiger], for which this guide applies. + +## Using Spack + +Spack provides the [wrf](https://packages.spack.io/package.html?name=wrf) package, which we can install using the [uenv-spack][ref-building-uenv-spack] tool. + +First create a working directory where you will install the software. +Here, we create it in your project's [Store][ref-storage-store] path, where the package can be accessed by all users in your project. +```bash +mkdir $STORE/wrf +cd $STORE/wrf +``` + +Then follow the steups in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack` + +```bash +git clone https://github.com/eth-cscs/uenv-spack.git +(cd uenv-spack && ./bootstrap) +``` + +The [`prgenv-gnu`][ref-uenv-prgenv-gnu] uenv is suitable for building WRF. +``` +uenv start prgenv-gnu/24.11:v2 --view=spack +``` +In this example we use the latest version of `prgenv-gnu` on Eiger at the time of writing -- check the `prgenv-gnu` [guide][ref-uenv-prgenv-gnu] for the latest version. + +```bash +# build the latest version provided by the version of Spack used by prgenv-gnu +$ uenv-spack/uenv-spack $PWD/build --uarch=zen2 --specs=wrf + +# build a specific version +$ uenv-spack/uenv-spack $PWD/build --uarch=zen2 --specs=wrf@4.5.2 + +# build a specific version with WRF-Chem enabled +$ uenv-spack/uenv-spack $PWD/build --uarch=zen2 --specs=wrf@4.5.2 +chem +``` + +!!! note + See the wrf Spack [package documentation](https://packages.spack.io/package.html?name=wrf) for information about options that can be enabled disabled. + +Finally, it is time to build the software: + +``` +cd build +./build +``` + +This will take 30-60 minutes, while Spack builds some dependencies then WRF. + +### Using the Spack installation + +The installation creates a module file in the `wrf/build` path, that you created. +Let's assume you have installed it in the `$STORE` path for your project, add the following to the top of your sbatch script: + +```bash +#SBATCH --uenv=prgenv-gnu/24.11:v2 + +module use $STORE/wrf/build/modules +module load wrf +``` + +!!! example "Modules installed by Spack" + Spack creates a module for ever + ```console + $ module use $STORE/wrf/build/modules + $ module avail + + ------------------ /capstor/store/cscs/cscs/csstaff/wrf/build/modules ------------------ + boost/1.86.0 kokkos-tools/develop netlib-scalapack/2.2.0 + cmake/3.30.5 kokkos/4.4.01 ninja/1.12.1 + cray-mpich/8.1.30 libtree/3.1.1 openblas/0.3.28 + fftw/3.3.10 lua/5.4.6 osu-micro-benchmarks/5.9 + fmt/11.0.2 lz4/1.10.0 python/3.12.5 + gcc/13.3.0 meson/1.5.1 superlu/5.3.0 + gsl/2.8 netcdf-c/4.9.2 wrf/4.6.1 + hdf5/1.14.5 netcdf-cxx/4.2 zlib-ng/2.2.1 + kokkos-kernels/4.4.01 netcdf-fortran/4.6.1 + + $ module load wrf + $ which wrf.exe + /capstor/store/cscs/cscs/csstaff/wrf/build/store/linux-sles15-zen2/gcc-13.3.0/wrf-4.6.1-owj2dsfeslzkulaobdqbad4kh6ojh6n5/main/wrf.exe + ``` + +## Installing by hand + +The process for building by hand is more difficult -- so try the Spack approach first, before contacting us. + diff --git a/docs/build-install/index.md b/docs/build-install/index.md index 9b4777fd..9ad96afb 100644 --- a/docs/build-install/index.md +++ b/docs/build-install/index.md @@ -2,9 +2,13 @@ CSCS provides commonly used software and tools on Alps, however many use cases will require first installing software on a system before you can start working. -Modern HPC applications and software stacks are often very complicated, and there is no one-size-fits-all method for building and installing them. +
+ +- :fontawesome-solid-earth-americas: __[Application guides][ref-build-applications]__ – guides on how to install commonly requested or difficult to install software. -## Programming environments +
+ +Modern HPC applications and software stacks are often very complicated, and there is no one-size-fits-all method for building and installing them.
@@ -12,18 +16,15 @@ Modern HPC applications and software stacks are often very complicated, and ther
-## Python - -There are multiple ways to install Python software. -
-- :fontawesome-brands-python: __[pip]__ – create a virtual environment using python in a uenv +- :fontawesome-brands-docker: __[Podman][ref-build-containers]__ – for building software in containers.
- [pip]: pip.md +
-## Containers +- :fontawesome-brands-python: __[Python][ref-build-python]__ – create a virtual environment using python in a uenv. + +
-CSCS provides [Podman][ref-build-containers] for building software in containers diff --git a/docs/build-install/pip.md b/docs/build-install/pip.md index 69c13813..65fb1553 100644 --- a/docs/build-install/pip.md +++ b/docs/build-install/pip.md @@ -1,3 +1,4 @@ -# Installing Python software with pip +[](){#ref-build-python} +# Installing Python software -todo +!!! todo diff --git a/docs/build-install/uenv.md b/docs/build-install/uenv.md index b4ce3054..acdc86bb 100644 --- a/docs/build-install/uenv.md +++ b/docs/build-install/uenv.md @@ -1,3 +1,6 @@ +[](){#ref-building-uenv} +# Building with uenv + Uenv are user environments that provide scientific applications, libraries and tools on [Alps][ref-alps]. This article explains how to use them to build software. diff --git a/docs/contributing/index.md b/docs/contributing/index.md index 6028a78d..19ee812e 100644 --- a/docs/contributing/index.md +++ b/docs/contributing/index.md @@ -1,3 +1,4 @@ +[](){#ref-contributing} # Contributing This documentation is developed using the [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) framework, and the source code for the docs is publicly available on [GitHub](https://github.com/eth-cscs/cscs-docs). diff --git a/mkdocs.yml b/mkdocs.yml index b084a93a..7d82056a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -72,8 +72,11 @@ nav: - 'Building and Installing software': - build-install/index.md - 'uenv': build-install/uenv.md - - 'containers (podman)': build-install/containers.md + - 'Containers (podman)': build-install/containers.md - 'Python with pip': build-install/pip.md + - 'Applications': + - build-install/applications/index.md + - 'WRF': build-install/applications/wrf.md - 'Debugging and Performance Analysis': - software/devtools/index.md - 'Linaro uenv': software/devtools/linaro-uenv.md From b70853f711dfc9d2408a372f97a7732a5114389e Mon Sep 17 00:00:00 2001 From: bcumming Date: Wed, 2 Jul 2025 15:29:36 +0200 Subject: [PATCH 02/16] add link to scientific applications --- docs/build-install/index.md | 1 + docs/software/sciapps/index.md | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/build-install/index.md b/docs/build-install/index.md index 9ad96afb..10bf8db8 100644 --- a/docs/build-install/index.md +++ b/docs/build-install/index.md @@ -1,3 +1,4 @@ +[](){#ref-building} # Building and Installing Software CSCS provides commonly used software and tools on Alps, however many use cases will require first installing software on a system before you can start working. diff --git a/docs/software/sciapps/index.md b/docs/software/sciapps/index.md index b473a581..52b426ca 100644 --- a/docs/software/sciapps/index.md +++ b/docs/software/sciapps/index.md @@ -14,5 +14,10 @@ CSCS staff can also help users with performance analysis to optimise their workf * [Quantum ESPRESSO][ref-uenv-quantumespresso] * [VASP][ref-uenv-vasp] -!!! warning "Unsupported Applications" - Please note that Amber and CPMD previously provided on the Piz Daint XC system are not provided by CSCS on Alps. +## Other applications + +CSCS provides [tools and environments][ref-building] for installing applications that are not on the list of supported applications. + +!!! info + We are building guides for installing [popular applications][ref-build-applications]. + From 4d7dc18cdc12d4129b2d950708a2156596ed00fb Mon Sep 17 00:00:00 2001 From: bcumming Date: Fri, 4 Jul 2025 11:10:53 +0200 Subject: [PATCH 03/16] draft CRYOWRF --- docs/build-install/applications/wrf.md | 125 ++++++++++++++++++++++++- 1 file changed, 123 insertions(+), 2 deletions(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index 350f7474..d71721d0 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -86,7 +86,128 @@ module load wrf /capstor/store/cscs/cscs/csstaff/wrf/build/store/linux-sles15-zen2/gcc-13.3.0/wrf-4.6.1-owj2dsfeslzkulaobdqbad4kh6ojh6n5/main/wrf.exe ``` -## Installing by hand +## CRYOWRF -The process for building by hand is more difficult -- so try the Spack approach first, before contacting us. + +[CRYOWRF](https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF) is a coupled atmosphere-snow cover model with WRF acting as the atmospheric core and SNOWPACK acting as snow cover model. + +Building CRYOWRF is a two step process: + +1. build the SNOWPACK extension +2. Build the bundled WRF + +!!! note + This workflow was developed in July 2025 using the most recent commit `8f83858f` of [CRYOWRF](https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF) (commited in August 2023). + + The code does not appear to be regularly updated, so we expect that it will slowly become more difficult to build as time passes. + +!!! warning "Eiger only" + This guide is for building on [Eiger][ref-cluster-eiger], which is an x86-based system. + + Building on the Grace-Hopper clusters like [Daint][ref-cluster-daint] is + +We use [`prgenv-gnu/24.11:v2`][ref-uenv-prgenv-gnu] [uenv][ref-uenv], which can be downloaded: + +```bash +uenv image pull prgenv-gnu/24.11:v2 +``` + +### Step 0: install required packages + +``` +mkdir $STORE/wrf +cd $STORE/wrf +export WRFPATH=$STORE/wrf +``` + +``` +uenv start prgenv-gnu/24.11:v2 --view=spack +git clone https://github.com/eth-cscs/uenv-spack.git +(cd uenv-spack && ./bootstrap) +./uenv-spack/uenv-spack $PWD/dependencies --uarch=zen2 --specs=parallel-netcdf,jasper,libpng,zlib-ng + +cd dependencies +./build +``` + +This step is performed once, and will install the software in `$WRFPATH/dependencies/view` + +Finish the uenv session: +``` +exit +``` + +### Step 1: build SNOWPACK + + +``` +uenv start prgenv-gnu/24.11:v2 --view=default +``` + +Clone the software + +```bash +cd $WRFPATH +git clone https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF.git +cd CRYOWRF +``` + +!!! note + You don't need to load any modules: the `default` view will add everything to your environment. + + +``` +export NETCDF=/user-environment/env/default +export HDF5=/user-environment/env/default +export PNETCDF=$WRFPATH/dependencies/view +export WRF_EM_CORE=1 +export WRF_NMM_CORE=0 +export WRF_DA_CORE=0 + +export WRF_CHEM=0 +export WRF_KPP=0 + +export NETCDF4=1 +export WRFIO_NCD_LARGE_FILE_SUPPORT=1 +export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 + +export JASPERLIB=WRFPATH/dependencies/view/lib64 +export JASPERINC=WRFPATH/dependencies/view/include + +export CC=mpicc +export FC=mpifort +export CXX=mpic++ + +ulimit -s unlimited +ulimit -c unlimited +``` + +clean and compile +``` +./clean.sh +./compiler_snow_libs.sh +``` + + +### Step 2: build WRF + +The CRYOWRF repository includes a copy of WRF v4.2.1, that has been modified to integrate the SNOWPACK extension build in step 1. + +```console +$ cd WRF +$ clean -a +$ ./configure.sh +[choose option 35][nesting: choose option 1] +``` + +`configure.wrf` +``` +SFC = gfortran +SCC = gcc +CCOMP = gcc +DM_FC = mpif90 +DM_CC = mpicc +FC = mpif90 +FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -fallow-argument-mismatch -fallow-invalid-boz -g +``` From 008eaaca2a55e4973e1427e25c7c33c461d4ef14 Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Fri, 4 Jul 2025 12:13:40 +0200 Subject: [PATCH 04/16] Update docs/build-install/applications/wrf.md Co-authored-by: Rocco Meli --- docs/build-install/applications/wrf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index d71721d0..3b0a32e6 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -65,7 +65,7 @@ module load wrf ``` !!! example "Modules installed by Spack" - Spack creates a module for ever + Spack creates a module for every installed package: ```console $ module use $STORE/wrf/build/modules $ module avail From 3377f202c252be9ffd48c85fa8fe47a00247183e Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Fri, 4 Jul 2025 12:13:50 +0200 Subject: [PATCH 05/16] Update docs/build-install/applications/wrf.md Co-authored-by: Rocco Meli --- docs/build-install/applications/wrf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index 3b0a32e6..d09a11dc 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -41,7 +41,7 @@ $ uenv-spack/uenv-spack $PWD/build --uarch=zen2 --specs=wrf@4.5.2 +chem ``` !!! note - See the wrf Spack [package documentation](https://packages.spack.io/package.html?name=wrf) for information about options that can be enabled disabled. + See the wrf Spack [package documentation](https://packages.spack.io/package.html?name=wrf) for information about options that can be enabled or disabled. Finally, it is time to build the software: From f43ef3cf7a5a25bb14b25a9d9830753170707156 Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Fri, 4 Jul 2025 12:13:57 +0200 Subject: [PATCH 06/16] Update docs/build-install/applications/wrf.md Co-authored-by: Rocco Meli --- docs/build-install/applications/wrf.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index d09a11dc..4cb757f0 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -55,7 +55,7 @@ This will take 30-60 minutes, while Spack builds some dependencies then WRF. ### Using the Spack installation The installation creates a module file in the `wrf/build` path, that you created. -Let's assume you have installed it in the `$STORE` path for your project, add the following to the top of your sbatch script: +Assuming you have installed it in the `$STORE` path for your project, add the following to the top of your sbatch script: ```bash #SBATCH --uenv=prgenv-gnu/24.11:v2 From 8534df09892bfb8be122562f41215185cd364c09 Mon Sep 17 00:00:00 2001 From: bcumming Date: Thu, 10 Jul 2025 13:58:11 +0200 Subject: [PATCH 07/16] add SNOWLIB env. variable; fix some other little errors --- docs/build-install/applications/wrf.md | 40 ++++++++++++++++---------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index d71721d0..96833307 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -171,8 +171,8 @@ export NETCDF4=1 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 -export JASPERLIB=WRFPATH/dependencies/view/lib64 -export JASPERINC=WRFPATH/dependencies/view/include +export JASPERLIB=$WRFPATH/dependencies/view/lib64 +export JASPERINC=$WRFPATH/dependencies/view/include export CC=mpicc export FC=mpifort @@ -193,21 +193,31 @@ clean and compile The CRYOWRF repository includes a copy of WRF v4.2.1, that has been modified to integrate the SNOWPACK extension build in step 1. -```console -$ cd WRF -$ clean -a -$ ./configure.sh -[choose option 35][nesting: choose option 1] ``` +export SNOWLIBS=$WRFPATH/CRYOWRF/snpack_for_wrf +cd WRF +./clean -a +# [choose option 35][nesting: choose option 1] when prompted by configure +./configure +``` + +!!! info "Set `SNOWLIBS`" + The `SNOWLIBS` environment variable needs to be set so that WRF can find the extension we compiled earlier. -`configure.wrf` +Make sure that the following lines are set in `configure.wrf`: ``` -SFC = gfortran -SCC = gcc -CCOMP = gcc -DM_FC = mpif90 -DM_CC = mpicc -FC = mpif90 -FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -fallow-argument-mismatch -fallow-invalid-boz -g +SFC = gfortran +SCC = gcc +CCOMP = gcc +DM_FC = mpif90 +DM_CC = mpicc +FC = mpif90 +FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -fallow-argument-mismatch -fallow-invalid-boz -g +NETCDFPATH = /user-environment/env/default ``` +Now compile WRF :fingers-crossed: + +``` +./compile em_real -j 64 &> log_compile +``` From 2b163c36eb55acce056ccd58642e244bf808fe88 Mon Sep 17 00:00:00 2001 From: bcumming Date: Thu, 10 Jul 2025 17:34:48 +0200 Subject: [PATCH 08/16] full workflow include WPS --- docs/build-install/applications/wrf.md | 182 +++++++++++++++++++------ 1 file changed, 139 insertions(+), 43 deletions(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index 1613c453..e795af0b 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -88,78 +88,96 @@ module load wrf ## CRYOWRF - [CRYOWRF](https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF) is a coupled atmosphere-snow cover model with WRF acting as the atmospheric core and SNOWPACK acting as snow cover model. -Building CRYOWRF is a two step process: +Building CRYOWRF is a three step process: +1. install the dependencies like [`parallel-netcdf`](https://packages.spack.io/package.html?name=parallel-netcdf) 1. build the SNOWPACK extension -2. Build the bundled WRF +1. Build the bundled WRF !!! note This workflow was developed in July 2025 using the most recent commit `8f83858f` of [CRYOWRF](https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF) (commited in August 2023). - The code does not appear to be regularly updated, so we expect that it will slowly become more difficult to build as time passes. + It isn't very easy to install, and we have tried to streamline the process as much as possible, so take your time and follow the instructions closely. !!! warning "Eiger only" This guide is for building on [Eiger][ref-cluster-eiger], which is an x86-based system. Building on the Grace-Hopper clusters like [Daint][ref-cluster-daint] is -We use [`prgenv-gnu/24.11:v2`][ref-uenv-prgenv-gnu] [uenv][ref-uenv], which can be downloaded: +We use [`prgenv-gnu/24.11:v2`][ref-uenv-prgenv-gnu] [uenv][ref-uenv]. + +### Step 1: install required packages +The first step is to create an empty directory where everything will be installed. +Here, we create it in your project's [Store][ref-storage-store] path, where the package can be accessed by all users in your project. ```bash -uenv image pull prgenv-gnu/24.11:v2 +export WRFROOT=$STORE/wrf +mkdir $WRFROOT +cd $WRFROOT ``` -### Step 0: install required packages +The following dependencies that are not provided by `prgenv-gnu` are required: -``` -mkdir $STORE/wrf -cd $STORE/wrf -export WRFPATH=$STORE/wrf -``` +* `parallel-netcdf`: used by WRF. +* `jasper~shared`: used by WPS (`~shared` will build static libraries, required by WPS). +* `zlib-ng` and `libpng`: used by WPS. -``` +Then follow the steups in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack`, which will be used to install the dependencies + +```bash +# start the uenv with the spack view enabled uenv start prgenv-gnu/24.11:v2 --view=spack + +# download and install uenv-spack +cd $WRFROOT git clone https://github.com/eth-cscs/uenv-spack.git (cd uenv-spack && ./bootstrap) -./uenv-spack/uenv-spack $PWD/dependencies --uarch=zen2 --specs=parallel-netcdf,jasper,libpng,zlib-ng +``` -cd dependencies +Now we configure and build the environment (the final "build" phase will take a while - 5-10 minutes typically) +```bash +export WRFDEPS=$WRFROOT/dependencies +$WRFROOT/uenv-spack/uenv-spack $WRFDEPS --uarch=zen2 --specs='parallel-netcdf,jasper~shared,libpng,zlib-ng' +cd $WRFDEPS ./build ``` -This step is performed once, and will install the software in `$WRFPATH/dependencies/view` +Now the dependencies are installed, finish the uenv spack session: -Finish the uenv session: -``` +```bash exit ``` -### Step 1: build SNOWPACK +!!! warning + This step is performed once, and will install the software in `$WRFDEPS`, where they can be used to build and run WRF. +### Step 2: build SNOWPACK + +Use the `default` view of `prgenv-gnu` to build SNOWPACK, WRF and WPS: ``` +export WRFROOT=$STORE/wrf uenv start prgenv-gnu/24.11:v2 --view=default ``` -Clone the software - -```bash -cd $WRFPATH -git clone https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF.git -cd CRYOWRF -``` - !!! note You don't need to load any modules: the `default` view will add everything to your environment. +First download the CRYOWRF software: +```bash +git clone https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF.git $WRFROOT/CRYOWRF +cd $WRFROOT/CRYOWRF ``` + +Set the following environment variables: + +```bash export NETCDF=/user-environment/env/default export HDF5=/user-environment/env/default -export PNETCDF=$WRFPATH/dependencies/view +export PNETCDF=$WRFDEPS/view export WRF_EM_CORE=1 export WRF_NMM_CORE=0 export WRF_DA_CORE=0 @@ -171,31 +189,28 @@ export NETCDF4=1 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 -export JASPERLIB=$WRFPATH/dependencies/view/lib64 -export JASPERINC=$WRFPATH/dependencies/view/include +export JASPERLIB=$WRFDEPS/view/lib64 +export JASPERINC=$WRFDEPS/view/include export CC=mpicc export FC=mpifort export CXX=mpic++ - -ulimit -s unlimited -ulimit -c unlimited ``` -clean and compile +Then compile SNOWPACK: + ``` ./clean.sh ./compiler_snow_libs.sh ``` +### Step 3: build WRF -### Step 2: build WRF - -The CRYOWRF repository includes a copy of WRF v4.2.1, that has been modified to integrate the SNOWPACK extension build in step 1. +The CRYOWRF repository includes a copy of WRF v4.2.1, that has been modified to integrate the SNOWPACK extension build in the previous step. -``` -export SNOWLIBS=$WRFPATH/CRYOWRF/snpack_for_wrf -cd WRF +```bash +export SNOWLIBS=$WRFROOT/CRYOWRF/snpack_for_wrf +cd $WRFROOT/CRYOWRF/WRF ./clean -a # [choose option 35][nesting: choose option 1] when prompted by configure ./configure @@ -204,8 +219,9 @@ cd WRF !!! info "Set `SNOWLIBS`" The `SNOWLIBS` environment variable needs to be set so that WRF can find the extension we compiled earlier. -Make sure that the following lines are set in `configure.wrf`: -``` +Open the configure.wrf file that was generated by calling `./configure`, and update the following lines: + +```bash SFC = gfortran SCC = gcc CCOMP = gcc @@ -216,8 +232,88 @@ FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -fallow-argument-mismatch -fa NETCDFPATH = /user-environment/env/default ``` -Now compile WRF :fingers-crossed: +And apply the following "patch": +```bash +sed -i 's|hdf5hl|hdf5_hl|g' configure.wrf +``` + +Now compile WRF, which will take a while: ``` ./compile em_real -j 64 &> log_compile ``` + +The compilation output is captured in `log_compile`. +On success, the log should have the message `Executables successfully built`: + +```console +$ tail -n14 log_compile + +========================================================================== +build started: Thu 10 Jul 2025 04:54:53 PM CEST +build completed: Thu 10 Jul 2025 05:17:41 PM CEST + +---> Executables successfully built <--- + +-rwxr-xr-x 1 bcumming csstaff 121952104 Jul 10 17:16 main/ndown.exe +-rwxr-xr-x 1 bcumming csstaff 121728120 Jul 10 17:17 main/real.exe +-rwxr-xr-x 1 bcumming csstaff 120519144 Jul 10 17:17 main/tc.exe +-rwxr-xr-x 1 bcumming csstaff 141159472 Jul 10 17:14 main/wrf.exe + +========================================================================== +``` + +### Step 4: build WPS + +Using the same environment configured + +``` +cd $WRFROOT/CRYOWRF/WPS-4.2 +# choose option 2 +./configure +``` + +Update `configure.wps` as follows: +``` +SFC = gfortran +SCC = gcc +DM_FC = mpif90 +DM_CC = mpicc +FC = gfortran +CC = gcc +LD = $(FC) +FFLAGS = -ffree-form -O -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch -fallow-invalid-boz +F77FLAGS = -ffixed-form -O -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch -fallow-invalid-boz +``` + +Note the arguments `-fallow-argument-mismatch -fallow-invalid-boz` added to `FFLAGS` and `F77FLAGS`. + +Then compile: +``` +./compile &> log_compile +``` + +The compilation output is captured in `log_compile`. +On success, the log should have the message `Executables successfully built`: + +```console +$ tail -n14 log_compile +``` + +### Running CRYOWRF + +Add the following to your SBATCH job script: +```bash +#SBATCH --uenv=prgenv-gnu/24.11:v2 +#SBATCH --view=default + +# set LD_LIBRARY_PATH to find the dependencies installed in step 1 +export WRFROOT=$STORE/wrf +export WRFDEPS=$WRFROOT/dependencies +export LD_LIBRARY_PATH=$WRFDEPS/view/lib:$WRFDEPS/view/lib64:$LD_LIBRARY_PATH + +# set other environment variables + +# then run wrf.exe +wrf.exe +``` From b2ac758d59283c0ec085d46edb57179f3130a09b Mon Sep 17 00:00:00 2001 From: bcumming Date: Thu, 10 Jul 2025 17:51:49 +0200 Subject: [PATCH 09/16] tweak with Samuels suggestions --- docs/build-install/applications/wrf.md | 30 +++++++++++++------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index e795af0b..0a8e3258 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -178,6 +178,9 @@ Set the following environment variables: export NETCDF=/user-environment/env/default export HDF5=/user-environment/env/default export PNETCDF=$WRFDEPS/view +export JASPERLIB=$WRFDEPS/view/lib64 +export JASPERINC=$WRFDEPS/view/include + export WRF_EM_CORE=1 export WRF_NMM_CORE=0 export WRF_DA_CORE=0 @@ -189,9 +192,6 @@ export NETCDF4=1 export WRFIO_NCD_LARGE_FILE_SUPPORT=1 export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 -export JASPERLIB=$WRFDEPS/view/lib64 -export JASPERINC=$WRFDEPS/view/include - export CC=mpicc export FC=mpifort export CXX=mpic++ @@ -212,7 +212,7 @@ The CRYOWRF repository includes a copy of WRF v4.2.1, that has been modified to export SNOWLIBS=$WRFROOT/CRYOWRF/snpack_for_wrf cd $WRFROOT/CRYOWRF/WRF ./clean -a -# [choose option 35][nesting: choose option 1] when prompted by configure +# [choose option 34][nesting: choose option 1] when prompted by configure ./configure ``` @@ -265,12 +265,19 @@ build completed: Thu 10 Jul 2025 05:17:41 PM CEST ### Step 4: build WPS -Using the same environment configured +Using the same environment as above + +```bash +export WRFDEPS=$WRFROOT/dependencies + +export NETCDF=/user-environment/env/default +export HDF5=/user-environment/env/default +export PNETCDF=$WRFDEPS/view +export JASPERLIB=$WRFDEPS/view/lib64 +export JASPERINC=$WRFDEPS/view/include -``` cd $WRFROOT/CRYOWRF/WPS-4.2 -# choose option 2 -./configure +./configure # choose option 1 ``` Update `configure.wps` as follows: @@ -293,13 +300,6 @@ Then compile: ./compile &> log_compile ``` -The compilation output is captured in `log_compile`. -On success, the log should have the message `Executables successfully built`: - -```console -$ tail -n14 log_compile -``` - ### Running CRYOWRF Add the following to your SBATCH job script: From e3aa3beb9f4f2831193050ef80f54766f46488eb Mon Sep 17 00:00:00 2001 From: bcumming Date: Thu, 10 Jul 2025 18:03:34 +0200 Subject: [PATCH 10/16] update spelling --- .github/actions/spelling/allow.txt | 3 +++ docs/build-install/applications/wrf.md | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt index 34737137..9c264844 100644 --- a/.github/actions/spelling/allow.txt +++ b/.github/actions/spelling/allow.txt @@ -12,6 +12,7 @@ COSMA CPE cpe CPMD +CRYOWRF CSCS CWP CXI @@ -164,6 +165,8 @@ website wikipedia workaround workflows +wrf +WRF xattr xattrs youtube diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index 0a8e3258..86ecec0a 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -16,7 +16,7 @@ mkdir $STORE/wrf cd $STORE/wrf ``` -Then follow the steups in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack` +Then follow the steps in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack` ```bash git clone https://github.com/eth-cscs/uenv-spack.git @@ -97,7 +97,7 @@ Building CRYOWRF is a three step process: 1. Build the bundled WRF !!! note - This workflow was developed in July 2025 using the most recent commit `8f83858f` of [CRYOWRF](https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF) (commited in August 2023). + This workflow was developed in July 2025 using the most recent commit `8f83858f` of [CRYOWRF](https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF) (committed in August 2023). It isn't very easy to install, and we have tried to streamline the process as much as possible, so take your time and follow the instructions closely. From 696758e80f805311637e2da71200a754c41f9f9c Mon Sep 17 00:00:00 2001 From: bcumming Date: Thu, 10 Jul 2025 18:08:01 +0200 Subject: [PATCH 11/16] fix more typos --- docs/build-install/applications/index.md | 2 +- docs/build-install/applications/wrf.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/build-install/applications/index.md b/docs/build-install/applications/index.md index 8e799b20..f501d209 100644 --- a/docs/build-install/applications/index.md +++ b/docs/build-install/applications/index.md @@ -1,7 +1,7 @@ [](){#ref-build-applications} # Application installation guides -This is a collection of installation guides for commonly-used software that is not [officially supported softare][ref-software-sciapps]. +This is a collection of installation guides for commonly-used software that is not [officially supported software][ref-software-sciapps]. !!! note "Contributions welcome!" The guides here are best effort, and may become out of date. diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index 86ecec0a..478369b7 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -124,7 +124,7 @@ The following dependencies that are not provided by `prgenv-gnu` are required: * `jasper~shared`: used by WPS (`~shared` will build static libraries, required by WPS). * `zlib-ng` and `libpng`: used by WPS. -Then follow the steups in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack`, which will be used to install the dependencies +Then follow the steps in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack`, which will be used to install the dependencies ```bash # start the uenv with the spack view enabled From 290f6f8d404193d96e25801fd2d10c4cc2fe1ce5 Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Fri, 11 Jul 2025 08:20:16 +0200 Subject: [PATCH 12/16] Update .github/actions/spelling/allow.txt Co-authored-by: Mikael Simberg --- .github/actions/spelling/allow.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt index d0237db3..3b0298e2 100644 --- a/.github/actions/spelling/allow.txt +++ b/.github/actions/spelling/allow.txt @@ -326,7 +326,6 @@ wlcg workaround workflows wrf -WRF xattr xattrs xcb From f7cadf124b24faf475ed8a33518cecce01e7c3e8 Mon Sep 17 00:00:00 2001 From: Ben Cumming Date: Fri, 11 Jul 2025 08:21:20 +0200 Subject: [PATCH 13/16] Update .github/actions/spelling/allow.txt Co-authored-by: Mikael Simberg --- .github/actions/spelling/allow.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/actions/spelling/allow.txt b/.github/actions/spelling/allow.txt index 3b0298e2..b93bd7e7 100644 --- a/.github/actions/spelling/allow.txt +++ b/.github/actions/spelling/allow.txt @@ -12,7 +12,6 @@ COSMA CPE CPMD CRYOWRF -CSCS CWP CXI Ceph From 013e87c1763733870ec329f5b8b665e141e52a62 Mon Sep 17 00:00:00 2001 From: bcumming Date: Mon, 14 Jul 2025 14:48:10 +0200 Subject: [PATCH 14/16] add summary scripts to wrf docs --- docs/build-install/applications/wrf.md | 209 +++++++++++++++++++++++-- 1 file changed, 198 insertions(+), 11 deletions(-) diff --git a/docs/build-install/applications/wrf.md b/docs/build-install/applications/wrf.md index 478369b7..af187a2e 100644 --- a/docs/build-install/applications/wrf.md +++ b/docs/build-install/applications/wrf.md @@ -23,6 +23,9 @@ git clone https://github.com/eth-cscs/uenv-spack.git (cd uenv-spack && ./bootstrap) ``` +!!! warning + Run the step of downloading and running the bootstrap script for `uenv-spack` _before_ starting a uenv. + The [`prgenv-gnu`][ref-uenv-prgenv-gnu] uenv is suitable for building WRF. ``` uenv start prgenv-gnu/24.11:v2 --view=spack @@ -110,11 +113,45 @@ We use [`prgenv-gnu/24.11:v2`][ref-uenv-prgenv-gnu] [uenv][ref-uenv]. ### Step 1: install required packages +??? example "Full script" + Here is the full script for the steps described in this step. + + ```bash + # the root directory under which all dependencies and WRF/CRYOWRF will be installed + export WRFROOT=$STORE/wrf + # the directory where we will install the dependencies of WRF/CRYOWRF/WPS + export WRFDEPS=$WRFROOT/dependencies + + # assume that we are crating WRFROOT for the first time + mkdir $WRFROOT + + # download and install uenv-spack + git clone https://github.com/eth-cscs/uenv-spack.git $WRFROOT/uenv-spack + (cd $WRFROOT/uenv-spack && ./bootstrap) + + # start the uenv with the spack view enabled + # warning: bootstrap the uenv-spack tool _before_ starting the uenv + uenv start prgenv-gnu/24.11:v2 --view=spack + + # configure the environment and build it + $WRFROOT/uenv-spack/uenv-spack $WRFDEPS --uarch=zen2 --specs='parallel-netcdf,jasper~shared,libpng,zlib-ng' + cd $WRFDEPS + ./build + + # finish the session + exit + ``` + The first step is to create an empty directory where everything will be installed. Here, we create it in your project's [Store][ref-storage-store] path, where the package can be accessed by all users in your project. ```bash +# the root directory under which all dependencies and WRF/CRYOWRF will be installed export WRFROOT=$STORE/wrf +# the directory where we will install the dependencies of WRF/CRYOWRF/WPS +export WRFDEPS=$WRFROOT/dependencies +# assume that we are crating WRFROOT for the first time mkdir $WRFROOT + cd $WRFROOT ``` @@ -127,18 +164,20 @@ The following dependencies that are not provided by `prgenv-gnu` are required: Then follow the steps in the [uenv-spack][ref-building-uenv-spack] guide to install `uenv-spack`, which will be used to install the dependencies ```bash -# start the uenv with the spack view enabled -uenv start prgenv-gnu/24.11:v2 --view=spack - # download and install uenv-spack -cd $WRFROOT -git clone https://github.com/eth-cscs/uenv-spack.git -(cd uenv-spack && ./bootstrap) +git clone https://github.com/eth-cscs/uenv-spack.git $WRFROOT/uenv-spack +(cd $WRFROOT/uenv-spack && ./bootstrap) ``` -Now we configure and build the environment (the final "build" phase will take a while - 5-10 minutes typically) +!!! warning + Run the step of downloading and running the bootstrap script for `uenv-spack` _before_ starting a uenv. + +Now we configure and build the environment, note that the final "build" phase will take a around 5-10 minutes. + ```bash -export WRFDEPS=$WRFROOT/dependencies +# start the uenv with the spack view enabled +uenv start prgenv-gnu/24.11:v2 --view=spack + $WRFROOT/uenv-spack/uenv-spack $WRFDEPS --uarch=zen2 --specs='parallel-netcdf,jasper~shared,libpng,zlib-ng' cd $WRFDEPS ./build @@ -150,15 +189,57 @@ Now the dependencies are installed, finish the uenv spack session: exit ``` -!!! warning +!!! note This step is performed once, and will install the software in `$WRFDEPS`, where they can be used to build and run WRF. ### Step 2: build SNOWPACK +??? example "Full script" + Here is the full script, that is described in detail in this step. + + ```bash + uenv start --view-default prgenv-gnu/24.11:v2 + + # set the paths to match those used in Step 1 + export WRFROOT=$STORE/wrf + export WRFDEPS=$WRFROOT/dependencies + + git clone https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF.git $WRFROOT/CRYOWRF + cd $WRFROOT/CRYOWRF + + export NETCDF=/user-environment/env/default + export HDF5=/user-environment/env/default + export PNETCDF=$WRFDEPS/view + + export WRF_EM_CORE=1 + export WRF_NMM_CORE=0 + export WRF_DA_CORE=0 + + export WRF_CHEM=0 + export WRF_KPP=0 + + export NETCDF4=1 + export WRFIO_NCD_LARGE_FILE_SUPPORT=1 + export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 + + export CC=mpicc + export FC=mpifort + export CXX=mpic++ + + ./clean.sh + ./compiler_snow_libs.sh + + # finish the session + exit + ``` + Use the `default` view of `prgenv-gnu` to build SNOWPACK, WRF and WPS: ``` +# set the paths to match those used in Step 1 export WRFROOT=$STORE/wrf +export WRFDEPS=$WRFROOT/dependencies + uenv start prgenv-gnu/24.11:v2 --view=default ``` @@ -178,8 +259,6 @@ Set the following environment variables: export NETCDF=/user-environment/env/default export HDF5=/user-environment/env/default export PNETCDF=$WRFDEPS/view -export JASPERLIB=$WRFDEPS/view/lib64 -export JASPERINC=$WRFDEPS/view/include export WRF_EM_CORE=1 export WRF_NMM_CORE=0 @@ -204,8 +283,64 @@ Then compile SNOWPACK: ./compiler_snow_libs.sh ``` + ### Step 3: build WRF +??? example "Full script" + Here is the full script, that is described in detail in this step. + + ```bash + uenv start --view-default prgenv-gnu/24.11:v2 + + # set the paths to match those used in Step 1 + export WRFROOT=$STORE/wrf + export WRFDEPS=$WRFROOT/dependencies + + # required for the CRYOWRF build to find SNOWPACK built in step 1 + export SNOWLIBS=$WRFROOT/CRYOWRF/snpack_for_wrf + + # set variables used by the WRF build tool + export NETCDF=/user-environment/env/default + export HDF5=/user-environment/env/default + export PNETCDF=$WRFDEPS/view + + export WRF_EM_CORE=1 + export WRF_NMM_CORE=0 + export WRF_DA_CORE=0 + + export WRF_CHEM=0 + export WRF_KPP=0 + + export NETCDF4=1 + export WRFIO_NCD_LARGE_FILE_SUPPORT=1 + export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 + + export CC=mpicc + export FC=mpifort + export CXX=mpic++ + + git clone https://gitlabext.wsl.ch/atmospheric-models/CRYOWRF.git $WRFROOT/CRYOWRF + cd $WRFROOT/CRYOWRF/WRF + + ./clean -a + # [choose option 34][nesting: choose option 1] when prompted by configure + ./configure + + # edit configure.wrf + vim configure.wrf + # SFC = gfortran + # SCC = gcc + # CCOMP = gcc + # DM_FC = mpif90 + # DM_CC = mpicc + # FC = mpif90 + # FCBASEOPTS = $(FCBASEOPTS_NO_G) $(FCDEBUG) -fallow-argument-mismatch -fallow-invalid-boz -g + # NETCDFPATH = /user-environment/env/default + + sed -i 's|hdf5hl|hdf5_hl|g' configure.wrf + ./compile em_real -j 64 &> log_compile + ``` + The CRYOWRF repository includes a copy of WRF v4.2.1, that has been modified to integrate the SNOWPACK extension build in the previous step. ```bash @@ -265,6 +400,46 @@ build completed: Thu 10 Jul 2025 05:17:41 PM CEST ### Step 4: build WPS +??? example "Full script" + Here is the full script, that is described in detail in this step. + + ```bash + uenv start --view-default prgenv-gnu/24.11:v2 + + # set the paths to match those used in Step 1 + export WRFROOT=$STORE/wrf + export WRFDEPS=$WRFROOT/dependencies + + # set variables used by the WRF build tool + export NETCDF=/user-environment/env/default + export HDF5=/user-environment/env/default + export PNETCDF=$WRFDEPS/view + export JASPERLIB=$WRFDEPS/view/lib64 + export JASPERINC=$WRFDEPS/view/include + + export CC=mpicc + export FC=mpifort + export CXX=mpic++ + + cd $WRFROOT/CRYOWRF/WPS-4.2 + ./configure # choose option 1 + + # edit configure.wrf to ensure the following variables are set + vim ./configure.wrf + + # SFC = gfortran + # SCC = gcc + # DM_FC = mpif90 + # DM_CC = mpicc + # FC = gfortran + # CC = gcc + # LD = $(FC) + # FFLAGS = -ffree-form -O -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch -fallow-invalid-boz + # F77FLAGS = -ffixed-form -O -fconvert=big-endian -frecord-marker=4 -fallow-argument-mismatch -fallow-invalid-boz + + ./compile &> log_compile + ``` + Using the same environment as above ```bash @@ -312,6 +487,18 @@ export WRFROOT=$STORE/wrf export WRFDEPS=$WRFROOT/dependencies export LD_LIBRARY_PATH=$WRFDEPS/view/lib:$WRFDEPS/view/lib64:$LD_LIBRARY_PATH +# set WRF variables +export WRF_EM_CORE=1 +export WRF_NMM_CORE=0 +export WRF_DA_CORE=0 + +export WRF_CHEM=0 +export WRF_KPP=0 + +export NETCDF4=1 +export WRFIO_NCD_LARGE_FILE_SUPPORT=1 +export WRFIO_NCD_NO_LARGE_FILE_SUPPORT=0 + # set other environment variables # then run wrf.exe From e2c1f4ec9b48b8fee0a0a85f989b2965c5be3efb Mon Sep 17 00:00:00 2001 From: bcumming Date: Mon, 14 Jul 2025 15:15:55 +0200 Subject: [PATCH 15/16] refactor install guides to be under unsupported software --- docs/build-install/applications/index.md | 14 ----------- docs/build-install/applications/matlab.md | 5 ++++ docs/build-install/index.md | 2 +- docs/software/sciapps/index.md | 3 +-- docs/software/unsupported.md | 17 ------------- docs/software/unsupported/index.md | 29 +++++++++++++++++++++++ mkdocs.yml | 8 +++---- 7 files changed, 40 insertions(+), 38 deletions(-) delete mode 100644 docs/build-install/applications/index.md create mode 100644 docs/build-install/applications/matlab.md delete mode 100644 docs/software/unsupported.md create mode 100644 docs/software/unsupported/index.md diff --git a/docs/build-install/applications/index.md b/docs/build-install/applications/index.md deleted file mode 100644 index f501d209..00000000 --- a/docs/build-install/applications/index.md +++ /dev/null @@ -1,14 +0,0 @@ -[](){#ref-build-applications} -# Application installation guides - -This is a collection of installation guides for commonly-used software that is not [officially supported software][ref-software-sciapps]. - -!!! note "Contributions welcome!" - The guides here are best effort, and may become out of date. - - If you see that a guide is out of date, you are welcome to [propose an update](https://github.com/eth-cscs/cscs-docs/issues) or make a [contribution][ref-contributing]. - -## Guides - -* [WRF][ref-software-packages-wrf] - diff --git a/docs/build-install/applications/matlab.md b/docs/build-install/applications/matlab.md new file mode 100644 index 00000000..d69e30d8 --- /dev/null +++ b/docs/build-install/applications/matlab.md @@ -0,0 +1,5 @@ +[](){#ref-software-packages-matlab} +# Matlab + +CSCS does not have a license to provide [Matlab](https://www.mathworks.com/products/matlab.html) to users on Alps. +Users or groups with valid licenses can install Matlab themselves as [user software][ref-support-user-apps]. diff --git a/docs/build-install/index.md b/docs/build-install/index.md index 10bf8db8..094d2cab 100644 --- a/docs/build-install/index.md +++ b/docs/build-install/index.md @@ -5,7 +5,7 @@ CSCS provides commonly used software and tools on Alps, however many use cases w
-- :fontawesome-solid-earth-americas: __[Application guides][ref-build-applications]__ – guides on how to install commonly requested or difficult to install software. +- :fontawesome-solid-earth-americas: __[Unsupported software][ref-software-installation-guides]__ – guides on how to install commonly requested or difficult to install software.
diff --git a/docs/software/sciapps/index.md b/docs/software/sciapps/index.md index 52b426ca..b546423d 100644 --- a/docs/software/sciapps/index.md +++ b/docs/software/sciapps/index.md @@ -19,5 +19,4 @@ CSCS staff can also help users with performance analysis to optimise their workf CSCS provides [tools and environments][ref-building] for installing applications that are not on the list of supported applications. !!! info - We are building guides for installing [popular applications][ref-build-applications]. - + We are building guides for installing [popular applications][ref-software-installation-guides]. diff --git a/docs/software/unsupported.md b/docs/software/unsupported.md deleted file mode 100644 index 0b6012d8..00000000 --- a/docs/software/unsupported.md +++ /dev/null @@ -1,17 +0,0 @@ -[](){ref-software-unsupported} -# Unsupported Software - -This page documents frequently-requested applications that CSCS won't provide pre-built on Alps as [supported software][ref-support-apps]. - -!!! danger "License terms" - Often it is impossible or difficult to provide software for licensing reasons. - If users are asked to install licensed software because CSCS can't, it is the responsibility of users to ensure that the software is only available to them personally, or to [members of their group][ref-guides-storage-sharing] who are also permitted by the license to access the software. - -## Gaussian - -The electronic structure modeling code [Gaussian](https://gaussian.com/) has license terms that prohibit installing and using it on CSCS systems under any circumstances. - -## Matlab - -CSCS does not have a license to provide [Matlab](https://www.mathworks.com/products/matlab.html) to users on Alps. -Users or groups with valid licenses can install Matlab themselves as [user software][ref-support-user-apps]. diff --git a/docs/software/unsupported/index.md b/docs/software/unsupported/index.md new file mode 100644 index 00000000..5b96fee3 --- /dev/null +++ b/docs/software/unsupported/index.md @@ -0,0 +1,29 @@ +[](){#ref-software-unsupported} +# Unsupported Software + +This page documents frequently-requested applications that CSCS does not provide pre-built on Alps as [supported software][ref-support-apps]. + +## Prohibited applications + +The use of the following applications probited from use on CSCS systems. + +| Software | Use | Reason Prohibited | +| --- | --- | --- | +| [Gaussian](https://gaussian.com/) | Electronic structure simulation | License terms probibit installation on CSCS systems | + +[](){#ref-software-installation-guides} +## Installation guides + +This is a collection of installation guides for commonly-used software that is not on CSCS list of [officially supported software][ref-software-sciapps]. + +* [Matlab][ref-software-packages-matlab] +* [WRF][ref-software-packages-wrf] + +!!! note "Contributions welcome!" + The guides here are best effort, and may become out of date. + + If you see that a guide is out of date, you are welcome to [propose an update](https://github.com/eth-cscs/cscs-docs/issues) or make a [contribution][ref-contributing]. + +!!! danger "You are responsible for respecting license terms" + When installing software that require a license, it is the responsibility of users to ensure that the software is only available to them personally, or to [members of their group][ref-guides-storage-sharing] who are also permitted by the license to access the software. + diff --git a/mkdocs.yml b/mkdocs.yml index decaa85e..42565a51 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -75,9 +75,6 @@ nav: - 'uenv': build-install/uenv.md - 'Containers (podman)': build-install/containers.md - 'Python with pip': build-install/pip.md - - 'Applications': - - build-install/applications/index.md - - 'WRF': build-install/applications/wrf.md - 'Debugging and Performance Analysis': - software/devtools/index.md - 'Linaro uenv': software/devtools/linaro-uenv.md @@ -96,7 +93,10 @@ nav: - 'Resource and hooks': software/container-engine/resource-hook.md - 'EDF reference': software/container-engine/edf.md - 'Known issues': software/container-engine/known-issue.md - - 'Unsupported Software': software/unsupported.md + - 'Unsupported Software': + - software/unsupported/index.md + - 'Matlab': build-install/applications/matlab.md + - 'WRF': build-install/applications/wrf.md - 'Services': - services/index.md - 'FirecREST': services/firecrest.md From e2b3314ae35f7ba627f52447f71ff02c652d112e Mon Sep 17 00:00:00 2001 From: bcumming Date: Mon, 14 Jul 2025 15:18:23 +0200 Subject: [PATCH 16/16] spelling fix --- docs/software/unsupported/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/software/unsupported/index.md b/docs/software/unsupported/index.md index 5b96fee3..0a1607da 100644 --- a/docs/software/unsupported/index.md +++ b/docs/software/unsupported/index.md @@ -5,11 +5,11 @@ This page documents frequently-requested applications that CSCS does not provide ## Prohibited applications -The use of the following applications probited from use on CSCS systems. +The use of the following applications prohibited from use on CSCS systems. | Software | Use | Reason Prohibited | | --- | --- | --- | -| [Gaussian](https://gaussian.com/) | Electronic structure simulation | License terms probibit installation on CSCS systems | +| [Gaussian](https://gaussian.com/) | Electronic structure simulation | License terms prohibit installation on CSCS systems | [](){#ref-software-installation-guides} ## Installation guides