ESMF
License information
The Earh System Modeling Framework license information can be found in the LICENSE file on the esmf GitHub.
From LUMI/23.12 on, the license information can also be found in the
$EBROOTESMF/share/licenses/ESMF
directory after loading the module.
User documentation (central installation)
For toolchains after 24.03 or versions after 8.6.0, ESMF will no longer be part of the pre-installed modules as the development time for the recipes is too high and as it turns out that we need too many different build types to keep all users happy. Some model recipes will remain available as user-installable modules.
Pre-installed modules (and EasyConfigs)
To access module help and find out for which stacks and partitions the module is
installed, use module spider ESMF/<version>
.
EasyConfig:
-
ESMF/8.3.0-cpeCray-22.08 (EasyConfig: ESMF-8.3.0-cpeCray-22.08.eb)
-
ESMF/8.3.0-cpeGNU-22.08 (EasyConfig: ESMF-8.3.0-cpeGNU-22.08.eb)
-
ESMF/8.4.1-cpeCray-22.12 (EasyConfig: ESMF-8.4.1-cpeCray-22.12.eb)
-
ESMF/8.4.1-cpeCray-23.03 (EasyConfig: ESMF-8.4.1-cpeCray-23.03.eb)
-
ESMF/8.4.1-cpeCray-23.09 (EasyConfig: ESMF-8.4.1-cpeCray-23.09.eb)
-
ESMF/8.4.1-cpeCray-23.12 (EasyConfig: ESMF-8.4.1-cpeCray-23.12.eb)
-
ESMF/8.4.1-cpeGNU-22.12 (EasyConfig: ESMF-8.4.1-cpeGNU-22.12.eb)
-
ESMF/8.4.1-cpeGNU-23.09 (EasyConfig: ESMF-8.4.1-cpeGNU-23.09.eb)
-
ESMF/8.4.1-cpeGNU-23.12 (EasyConfig: ESMF-8.4.1-cpeGNU-23.12.eb)
-
ESMF/8.6.0-cpeCray-24.03-MPI-PIO (EasyConfig: ESMF-8.6.0-cpeCray-24.03-MPI-PIO.eb)
ESMF compiled with support for MPICH and PIO. It also uses netCDF with the parallel HDF5 back-end.
-
ESMF/8.6.0-cpeCray-24.03 (EasyConfig: ESMF-8.6.0-cpeCray-24.03.eb)
ESMF compiled in mpiuni mode, without support for MPI.
-
ESMF/8.6.0-cpeGNU-24.03-MPI-PIO (EasyConfig: ESMF-8.6.0-cpeGNU-24.03-MPI-PIO.eb)
ESMF compiled with support for MPICH and PIO. It also uses netCDF with the parallel HDF5 back-end.
-
ESMF/8.6.0-cpeGNU-24.03 (EasyConfig: ESMF-8.6.0-cpeGNU-24.03.eb)
ESMF compiled in mpiuni mode, without support for MPI.
User-installable modules (and EasyConfigs)
Install with the EasyBuild-user module:
To access module help after installation and get reminded for which stacks and partitions the module is installed, usemodule spider ESMF/<version>
.
EasyConfig:
-
EasyConfig ESMF-8.8.0-cpeGNU-24.03-MPI-PIO.eb, will build ESMF/8.8.0-cpeGNU-24.03-MPI-PIO
ESMF compiled with support for MPICH and PIO. It also uses netCDF with the parallel HDF5 back-end.
Technical documentation (central installation)
General build instructions
ESMF does not use a configure script. The configure phase can be skipped (though this is not done in the EasyConfig as the configure phase will still be used to set environment variables through an EasyBlock).
Configuration is done through a large set of environment variables that are picked up by the Makefile of the ESMF code. It does call CMake for 3rd party codes that are provided internally, e.g., the PIO IO library.
The combination of OS and compiler selected through ESMF_
environment variables (though the
code does a good job at detecting the OS environment) determines which configuration subdirectory
of build_config
will be used. That subdirectory contains a long file with definitions that will
be included in the Makefile and tries to set defaults, and some system-specific small include
files.
The make info
command will show how the Makefile interprets those environment variables.
It is also called when doing a build, so if a ConfigureMake process would be used rather
than the custom EasyBlock, setting environment variables through prebuildopts
and
preinstallopts
, one could skip the configure step alltogether.
EasyBuild
Note that ESMF uses a custom EasyBlock which needs adaptations for Cray systems.
ESMF 8.1.1 for CPE 21.08
-
The EasyConfig file is an adaptation from the CSCS one.
-
TODO: The EasyBuilders version uses a patch. Does this add functionality?
-
Building fails with cpeAMD, with very strange error messages.
ESMF 8.2.0 for CPE 21.08
- This version does not compile with gfortran unless the flag to allow argument
mismatch is used. The problem is that the build procedure does not pick up
F90FLAGS
etc., so we've done some hand work withpreconfigopts
andprebuildopts
.
ESMF 8.3.0 for CPE 22.06
-
Near-trivial version bump, but the way the sources are distributed has changed.
-
Building with AOCC still fails.
-
Note that the build process does include some testing.
Version 8.4.1 from CPE 22.12 on
-
Trivial version bump of the 8.3.0 EasyConfig
-
For LUMI/23.12, license information was added to the installation.
Version 8.6.0 for LUMI/24.03
-
Trivial version bump of the 8.4.1 EasyConfig for LUMI/23.12.
-
Added buildtools.
-
It seems that on the GPU nodes, some code is compiled that is otherwise not compiled (as it caused a problem) so there may be some support for GPU acceleration.
-
The cpeCray version does not compile on LUMI-G when the accelerator target module is loaded, so that module is unloaded when compiling for
partition/G
. -
Later on, we added an MPI version with heavily reworked EasyBlock that can still compile the older versions.
-
PIO required a more extensive configuration of netCDF then the default EasyBlock (from which our custom block was derived) can give. We decided to update the EasyBlock as it had no consequences for building the other 24.03 configurations.
-
Note that the OS should be Unicos rather than Linux to enable the automatic configuration of the compilers. The autodetect does this right, but be careful not to overwrite.
-
Somehow the behaviour for ESMF_OPTLEVEL changed with the updated EasyBlock, but it is not clear why. We solved this by adding a parameter to set the optimisation level (and set it to 2 which is what the code did automatically before).
-
Also changed the easyblock to honour
preconfigopts
.prebuildops
was honoured, butpreconfigopts
not and that lead to misleading information frommake info
which is what happens during the configure phase.
-
Technical documentation (user EasyBuild installation)
See the technical information for the pre-installed versions.
EasyBuild
Version 8.8.0 for cpeGNU 24.03 with MPI and PIO
- This EasyConfig is a straightforward port of the EasyConfig for 8.6.0 with these options, also using the updated EasyBlock.
Archived EasyConfigs
The EasyConfigs below are additional easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
-
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software
-
EasyConfig ESMF-8.1.1-cpeCray-21.08.eb, with module ESMF/8.1.1-cpeCray-21.08
-
EasyConfig ESMF-8.1.1-cpeGNU-21.08.eb, with module ESMF/8.1.1-cpeGNU-21.08
-
EasyConfig ESMF-8.2.0-cpeCray-21.12.eb, with module ESMF/8.2.0-cpeCray-21.12
-
EasyConfig ESMF-8.2.0-cpeGNU-21.12.eb, with module ESMF/8.2.0-cpeGNU-21.12
-
EasyConfig ESMF-8.3.0-cpeCray-22.06.eb, with module ESMF/8.3.0-cpeCray-22.06
-
EasyConfig ESMF-8.3.0-cpeGNU-22.06.eb, with module ESMF/8.3.0-cpeGNU-22.06
-