-
Notifications
You must be signed in to change notification settings - Fork 0
Loading software packages into your Cannon login environment
On this page we provide information about software packages that you can use with Cannon, and how to load these packages into your login environment.
The GEOS-Chem Support Team has created several environment files for GEOS-Chem Classic and GCHP. Environment files are scripts containing commands to load both FASRC-built software packages and locally-built software packages for RockyLinux. Additional settings, such as environment variables specifying library paths, are also defined in these environment files.
If you have not yet downloaded the cannon-env repository, use this command to create a fresh clone:
$ git clone https://github.com/Harvard-ACMG/cannon-envOr if you already have a clone of the cannon-env repository, then navigate to it
$ cd /path/to/cannon-env # /path/to/cannon-env is the absolute path of your clone of cannon-env
$ git fetch -p https://github.com/Harvard-ACMG/cannon-env
$ git checkout main
$ git pullThen navigate to the envs subdirectory:
$ cd envsand you will the following environment files:
| Environment file | Loads packages for | With these compilers | Software packages |
|---|---|---|---|
gcclassic.rocky+gnu10.env |
GEOS-Chem Classic | gcc, g++, gfortran 10.2.0 | FASRC + Spack |
gcclassic.rocky+gnu10.minimal.env |
GEOS-Chem Classic | gcc, g++. gfortran 10.2.0 | FASRC only |
gchp.rocky+gnu10.env |
GCHP | gcc, g++, gfortran 10.2.0 | FASRC + Spack |
gchp.rocky+gnu10.minimal.env |
GCHP | gcc, g++, gfortran 10.2.0 | FASRC only |
| Environment file | Loads packages for | With these compilers | Software packages |
|---|---|---|---|
gcclassic.rocky+gnu12.env |
GEOS-Chem Classic | gcc, g++, gfortran 12.2.0 | FASRC + Spack |
gcclassic.rocky+gnu12.minimal.env |
GEOS-Chem Classic | gcc, g++, gfortran 12.2.0 | FASRC only |
gchp.rocky+gnu12.env |
GCHP | gcc, g++, gfortran 12.2.0 | FASRC + Spack |
gchp.rocky+gnu12.minimal.env |
GCHP | gcc, g++, gfortran 12.2.0 | FASRC only |
| Environment file | Loads packages for | With these compilers | Software packages |
|---|---|---|---|
gcclassic.rocky+intel23.minimal.env |
GEOS-Chem Classic | gcc, g++, gfortran 12.2.0 | FASRC only |
gchp.rocky+intel23.minimal.env |
GCHP | gcc, g++, gfortran 12.2.0 | FASRC + Spack |
NOTES:
-
Use the
*rocky+gnu10.envor*rocky+gnu12.envenvironment files in interactive login sessions. These environment files will load the complete set of software packages into your Linux environment. -
Use the
*rocky+gnu10.minimal.envor*rocky+gnu12.minimal.envenvironment files in run scripts that will be submitted to Cannon queues. These environment files will only load the essential software packages needed to run GEOS-Chem Classic or GCHP, without any of the interactive utilities that have been built with Spack. -
We recommend that you copy or link these files to a convenient location (such as your home directory).
To apply the settings contained in an environment file, type
$ source <env-file-name>where <env-file-name> refers to one of the files listed above.
FASRC have built several core packages (aka modules) for RockyLinux. These include compilers, netCDF libraries, MPI libraries, and programming languages (and their dependencies). FASRC-built packages use this naming scheme:
<package-name>/<package-version>-fasrc<build-id>where
-
<package-name>is the package name -
<package-version>is the package version number (usually integersX.Y.Z) -
<build-id>is a 2-digit number (e.g.01,02,03). Most packages will only use01. But if there is a package that has been built with more than one compiler or MPI version, then numbers higher than01will be used to differentiate the builds.
These commands (which are present in all RockyLinux environment files) load packages built with the GNU Compiler Collection 10.2.0:
module purge # Unload all prior loaded modules
module load gcc/10.2.0-fasrc01 # GNU compilers v. 10.2.0
module load openmpi/4.1.0-fasrc01 # OpenMPI (needed for netCDF and GCHP)
module load netcdf-c/4.8.0-fasrc01 # netcdf-c library
module load netcdf-fortran/4.5.3-fasrc01 # netcdf-fortran library
module load flex/2.6.4-fasrc01 # Fast lexical analyzer (needed for KPP)
module load cmake/3.25.2-fasrc01 # CMake (needed to compile GEOS-Chem and HEMCO)Type module list to get a listing of modules that have been loaded:
Currently Loaded Modules:
1) gmp/6.2.1-fasrc01 4) gcc/10.2.0-fasrc01 7) szip/2.1.1-fasrc01 10) netcdf-fortran/4.5.3-fasrc01
2) mpfr/4.1.0-fasrc01 5) openmpi/4.1.0-fasrc01 8) hdf5/1.10.7-fasrc01 11) flex/2.6.4-fasrc01
3) mpc/1.2.1-fasrc01 6) zlib/1.2.11-fasrc01 9) netcdf-c/4.8.0-fasrc01 12) cmake/3.25.2-fasrc01These commands (which are present in the RockyLinux environment files) load modules built with the GNU Compiler Collection 12.2.0:
module purge # Unloads all prior loaded modules
module load gcc/12.2.0-fasrc01 # GNU compilers, v. 12.2.0
module load openmpi/4.1.4-fasrc01 # OpenMPI (needed for netCDF and GCHP)
module load netcdf-fortran/4.6.0-fasrc02 # netCDF-Fortran (loads netCDF-C and HDF5 modules)
module load flex/2.6.4-fasrc01 # Fast lexical analyzer (needed for KPP)
module load cmake/3.25.2-fasrc01 # CMake (needed to compile GEOS-Chem and HEMCO)Type module list to get a listing of all loaded modules:
Currently Loaded Modules:
1) gmp/6.2.1-fasrc01 4) gcc/12.2.0-fasrc01 7) szip/2.1.1-fasrc01 10) netcdf-fortran/4.6.0-fasrc02
2) mpfr/4.2.0-fasrc01 5) openmpi/4.1.4-fasrc01 8) hdf5/1.14.0-fasrc01 11) flex/2.6.4-fasrc01
3) mpc/1.3.1-fasrc01 6) zlib/1.2.13-fasrc01 9) netcdf-c/4.9.2-fasrc01 12) cmake/3.25.2-fasrc01These commands (which are present in the RockyLinux environment files) load modules built with the GNU Compiler Collection 12.2.0:
module purge # Unloads all prior loaded modules
module load gcc/12.2.0-fasrc01 # GNU compilers, v. 12.2.0
module load openmpi/4.1.4-fasrc01 # OpenMPI (needed for netCDF and GCHP)
module load netcdf-fortran/4.6.0-fasrc02 # nhttps://github.com/Harvard-ACMG/knowledge-base/wiki/Loading-software-packages-into-your-Cannon-login-environmentetCDF-Fortran (loads netCDF-C and HDF5 modules)
module load flex/2.6.4-fasrc01 # Fast lexical analyzer (needed for KPP)
module load cmake/3.25.2-fasrc01 # CMake (needed to compile GEOS-Chem and HEMCO)Type module list to get a listing of all loaded modules:
### Core packages for GNU 12.2.0 compilers
These commands (which are present in the [RockyLinux environment files](https://github.com/Harvard-ACMG/knowledge-base/wiki/Loading-software-packages-into-your-Cannon-login-environment#environment-files-for-rockylinux)) load modules built with the GNU Compiler Collection 12.2.0:
```console
# Load FASRC-built modules
module load intel/23.0.0-fasrc01 # icc / i++ / gfortran
module load intelmpi/2021.8.0-fasrc01 # MPI
module load netcdf-fortran/4.6.0-fasrc03 # netCDF-Fortran
module load flex/2.6.4-fasrc01 # Flex lexer (needed for KPP)
module load cmake/3.25.2-fasrc01 # CMake (needed to compile)Type module list to get a listing of all loaded modules:
Currently Loaded Modules:
1) intel/23.0.0-fasrc01 4) szip/2.1.1-fasrc02 7) netcdf-fortran/4.6.0-fasrc03
2) intelmpi/2021.8.0-fasrc01 5) hdf5/1.14.0-fasrc02 8) flex/2.6.4-fasrc01
3) zlib/1.2.11-fasrc02 6) netcdf-c/4.9.2-fasrc02 9) cmake/3.25.2-fasrc01The following modules are often needed for post-processing and analysis:
module load IDL/8.7.2-fasrc01 # IDL language (needed for GAMAP)
module load R/4.2.2-fasrc01 # R language
module load matlab/R2022b-fasrc01 # matlab languageTo find other available FASRC-built packages, use this command:
$ module availTo find more information about a specific FASRC-built package, type:
$ module spider <package-name>where <package-name> is the name of the package you are interested in.
In addition to the FASRC-built software packages that we previously discussed, the GEOS-Chem Support Team has built the following local software packages. These will be loaded when you source one of the environment files listed above.
The Earth System Modeling Framework (ESMF) is a library required by GCHP. See the table below for the available ESMF versions for RockyLinux:
-
<ROOT>refers to the path/n/jacob_lab/Lab/seasfs01/Lab/RockyLinux.
| Package | Version | Compiler | Path | Needed for |
|---|---|---|---|---|
| ESMF | 8.1.1 | GNU 10.2.0 | <ROOT>/ESMF/ESMF_8_1_1/INSTALL_gfortran10_openmpi4 |
GCHP |
| ESMF | 8.1.1 | GNU 12.2.0 | <ROOT>/ESMF/ESMF_8_1_1/INSTALL_gfortran12_openmpi4 |
GCHP |
| ESMF | 8.4.2 | GNU 10.2.0 | <ROOT>/ESMF/ESMF_8_1_1/INSTALL_gnu10_openmpi4 |
GCHP |
| ESMF | 8.4.2 | GNU 12.2.0 | <ROOT>/ESMF/ESMF_8_1_1/INSTALL_gnu12_openmpi4 |
GCHP |
When you source one of the GCHP environment files for RockyLinux, several environment variables will be defined that will tell GCHP where to find ESMF.
We have also built several software packages using the Spack package manager. In general, GEOS-Chem and GCHP will only need to use FASRC core packages such as compilers, netCDF, and MPI libraries. The Spack-built packages provide useful tools for post-processing and analysis.
Spack-built packages can be loaded with the same module load commands as the FASRC core packages. Several relevant Spack-built packages will be loaded into your environment when you source [one of the environment files described above]
](https://github.com/Harvard-ACMG/knowledge-base/wiki/Loading-software-packages-into-your-Cannon-login-environment#environment-files-for-rockylinux).
If you type module list, you may see many Spack-built packages in the printout. Several of these are dependencies for other packages, and these can be ignored. The Spack-built packages that you will probably use most frequently with GEOS-Chem are:
| Package | Description | Load package for GNU 10.2.0 | Load package for GNU 12.2.0 |
|---|---|---|---|
bison |
Parser, needed by KPP. | module load bison/3.8.2-gcc-10.2.0 |
module load bison/3.8.2-gcc-12.2.0 |
cdo |
Climate Data Operators | spack load cdo%gcc@10.2.0 |
spack load cdo%gcc@12.2.0 |
cgdb |
User-friendly front-end for gdb | module load cgdb/0.7.1-gcc-10.2.0 |
module load cgdb/0.7.1-gcc-12.2.0 |
colordiff |
Colorizes output from diff
|
module load colordiff/1.0.21-gcc-10.2.0 |
module load colordiff/1.0.21-gcc-12.2.0 |
gdb |
The GNU debugger | module load gdb/8.2.19-gcc-10.2.0 |
module load gdb/8.2.19-gcc-10.2.0 |
nco |
The netCDF operators | module load nco/5.1.4-gcc-10.2.0 |
module load cdo/5.1.4-gcc-12.2.0 |
ncview |
netCDF file viewer | module load ncview/2.1.8-gcc-10.2.0 |
module load ncview/2.1.8-gcc-12.2.0 |
xterm |
X11 terminal window | spack load xterm%gcc@10.2.0 |
spack load xterm%gcc@10.2.0 |
Note that the Spack-built packages use this naming scheme:
<package-name>/<version>-<compiler-name>-<compiler-version>where:
-
<package-name>is the name of a Spack-built software package (e.g.cdo) -
<package-version>is the version number of a Spack-built software package -
<compiler-name>is the name of the compiler. This will always begcc, which refers to the GNU Compiler Collection (and not GEOS-Chem Classic). -
<compiler-version>is the version number of the compiler. This will be either10.2.0or12.2.0.
Also note, the Spack configuration files (compilers.yaml, modules.yaml, and packages.yaml) in our spack-env repository have been set up in order to ensure that packages that require netCDF (e.g. cdo, nco, ncview`) will use the FASRC-built netCDF modules. Otherwise, Spack start installing a new version of netCDF (with dependencies) that will cause package conflicts.