@@ -21,24 +21,38 @@ re-deploy shared spack environments on each supported machine.
21
21
22
22
### Spack
23
23
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:
25
26
26
27
- ESMF
28
+ - MOAB
27
29
- SCORPIO
30
+ - Metis
31
+ - Parmetis
32
+ - Trilinos
28
33
- Albany
29
34
- PETSc
30
35
- Netlib LAPACK
31
36
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
33
47
to bump the Polaris version (typically either the major or the minor version)
34
48
and then re-deploy shared spack environments on each supported machine.
35
49
36
50
### Conda
37
51
38
52
Conda (via conda-forge) is used for python packages and related dependencies
39
53
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.
42
56
43
57
When we update the constraints on conda dependencies, we also need to bump the
44
58
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:
67
81
- E3SM_Diags
68
82
- zppy
69
83
- polaris
84
+ - compass
70
85
- E3SM-Unified
71
86
72
87
Polaris uses these config options to know how to make a job script, where to
0 commit comments