Adding cesmdev Packages
Since Derecho was deployed, CESM (primarily Jim Edwards) has been deploying a set of modules which augment our own in a deployment called cesmdev. This is accessible to users via a hidden module. The module is not versioned... rather, it will automatically load modules relevant to whichever ncarenv version the user has loaded. The cesmdev collection provides the following packages:
- Debug versions of mpi-serial, parallel-netcdf, parallelio, and emsf.
- Development (beta) versions of parallelio and esmf
Since ncarenv/25.10, CSG has assumed the responsibility for maintaining these modules, and Chris Fischer is the primary point of contact in CGD for information on needs. Brian Dobbins is the point of contact moving forward for parallelio development.
cesmdev SLC
CSG aims to install cesmdev modules for an ncarenv version with at least one month of testing time before that ncarenv version is made the default software stack.
Danger
CESM developers do incorporate these modules into case configs, for better or worse. So consider these stacks to have the same level of mutability as the ncarenv.
Deploying the cesmdev Cluster
Once CSG assumed responsibilities for cesmdev, it was incorporated into the ncar-spack framework. The same process of deploying, installing packages into build, and then publishing them into public is used here. There are some notable differences, however:
- cesmdev is much simpler than an ncarenv; there is no view, and almost no postprocessing
- cesmdev is only deployed to support Derechol; these modules do not need to serve Casper
- Most lower level dependencies are actually used from ncarenv by treating it as an upstream installation in a chained Spack install
- Most YAML configuration is inherited from the upstream ncarenv
So philosophically, it makes sense to keep customizations in the cesmdev environment to a minimum. Take note when building packages whether dependencies are being used from the upstream ncarenv Spack. If they are not, this is worth debugging.
Otherwise, follow the same workflow as for other cluster deployments.
Making cesmdev Available to Users
As mentioned before, the cesmdev environment is made accessible by a hidden
cesmdev/1.0 module. This module is actually generated by a postprocessing unit
in the derecho cluster. All of the logic to inherit modules from the correct
ncarenv is in place already via those two modules (and is actually the same
logic used to support user Spack downstreams).