Skip to content

Commit 277dfd5

Browse files
committed
Update the spack deployment docs
1 parent 75e45a1 commit 277dfd5

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

docs/developers_guide/deploying_spack.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,38 @@ re-deploy shared spack environments on each supported machine.
2121

2222
### Spack
2323

24-
Spack is for libraries used by MPAS and tools that need system MPI:
24+
Spack is used to build libraries used by E3SM components and tools that need
25+
system MPI:
2526

2627
- ESMF
28+
- MOAB
2729
- SCORPIO
30+
- Metis
31+
- Parmetis
32+
- Trilinos
2833
- Albany
2934
- PETSc
3035
- Netlib LAPACK
3136

32-
When we update the versions of any of these libraries in Polaris, we also need
37+
We build one spack environment for tools (e.g. ESMF and MOAB) and another for
38+
libraries. This allows us to build the tools with one set of compilers and
39+
MPI libraries adn the libraries with another. This is sometimes necessary,
40+
since ESMF, MOAB and/or their dependencies can't always be built or don't
41+
run correctly with all compiler and MPI combinations. For example, we have
42+
experienced problems running ESMF built with intel compilers on Perlmutter.
43+
We are also not able to build ESMF or the Eigen dependency of MOAB using
44+
`nvidiagpu` compilers.
45+
46+
When we update the versions of any of these packages in Polaris, we also need
3347
to bump the Polaris version (typically either the major or the minor version)
3448
and then re-deploy shared spack environments on each supported machine.
3549

3650
### Conda
3751

3852
Conda (via conda-forge) is used for python packages and related dependencies
3953
that don’t need system MPI. Conda environments aren’t shared between
40-
developers because the polaris you’re developing is part of the conda
41-
environment.
54+
developers because the polaris python package you’re developing is part of the
55+
conda environment.
4256

4357
When we update the constraints on conda dependencies, we also need to bump the
4458
Polaris alpha, beta or rc version. We do not need to re-deploy spack
@@ -67,6 +81,7 @@ These config options are shared across packages including:
6781
- E3SM_Diags
6882
- zppy
6983
- polaris
84+
- compass
7085
- E3SM-Unified
7186

7287
Polaris uses these config options to know how to make a job script, where to

0 commit comments

Comments
 (0)