Skip to content

Commit ebf1905

Browse files
authored
Merge pull request #104 from xylar/v1.7.0
Update to E3SM-Unified v1.7.0
2 parents 2a687c0 + d8f56a7 commit ebf1905

File tree

6 files changed

+47
-50
lines changed

6 files changed

+47
-50
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,5 @@ conda create -n e3sm-unified-nompi -c conda-forge -c defaults -c e3sm \
2323
python=3.9 "e3sm-unified=*=nompi_*"
2424
```
2525

26-
The following packages are only available for linux and not OSX:
27-
- processflow
26+
The following package is only available for linux and not OSX:
2827
- zstash

e3sm-unified-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ conda activate e3sm-unified
4545
check_last_rc "Could not source e3sm-unified conda environment\n"
4646

4747
# Try to run some simple help commands
48-
for cmd in "e3sm_diags" "processflow" "mpas_analysis"
48+
for cmd in "e3sm_diags" "mpas_analysis"
4949
do
5050
$cmd --help
5151
check_last_rc "$cmd help failed\n"

e3sm_supported_machines/bootstrap.py

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
from importlib.resources import path
88
from configparser import ConfigParser
99

10-
from mache import discover_machine, MachineInfo
11-
from mache.spack import make_spack_env, get_spack_script
10+
from mache import discover_machine
11+
from mache.spack import make_spack_env, get_spack_script, \
12+
get_modules_env_vars_and_mpi_compilers
1213
from mache.version import __version__ as mache_version
1314
from mache.permissions import update_permissions
1415
from shared import parse_args, check_call, install_miniconda, get_conda_base
@@ -116,8 +117,7 @@ def build_env(is_test, recreate, compiler, mpi, conda_mpi, version,
116117
if nco_dev:
117118
channels = f'{channels} -c conda-forge/label/nco_dev'
118119
channels = f'{channels} -c conda-forge/label/e3sm_dev ' \
119-
f'-c conda-forge -c defaults -c e3sm/label/e3sm_dev ' \
120-
f'-c e3sm'
120+
f'-c conda-forge -c defaults -c e3sm/label/e3sm_dev -c e3sm'
121121
else:
122122
channels = '--override-channels -c conda-forge -c defaults -c e3sm'
123123

@@ -149,24 +149,23 @@ def build_env(is_test, recreate, compiler, mpi, conda_mpi, version,
149149
return env_path, env_name, activate_env, channels, spack_env
150150

151151

152-
def build_sys_ilamb(config, machine_info, compiler, mpi, template_path,
152+
def build_sys_ilamb(config, machine, compiler, mpi, template_path,
153153
activate_env, channels):
154154

155155
mpi4py_version = config.get('e3sm_unified', 'mpi4py')
156156
ilamb_version = config.get('e3sm_unified', 'ilamb')
157157
build_mpi4py = str(mpi4py_version != 'None')
158158
build_ilamb = str(ilamb_version != 'None')
159159

160-
mpicc, _, _, mod_commands, _ = \
161-
machine_info.get_modules_and_mpi_compilers(compiler, mpi)
160+
mpicc, _, _, modules = \
161+
get_modules_env_vars_and_mpi_compilers(machine, compiler, mpi,
162+
shell='sh')
162163

163164
script_filename = 'build.bash'
164165

165166
with open(f'{template_path}/build.template', 'r') as f:
166167
template = Template(f.read())
167168

168-
modules = '\n'.join(mod_commands)
169-
170169
# need to activate the conda environment to install mpi4py and ilamb, and
171170
# possibly for compilers and MPI library (if not on a supported machine)
172171
activate_env_lines = activate_env.replace('; ', '\n')
@@ -185,7 +184,7 @@ def build_sys_ilamb(config, machine_info, compiler, mpi, template_path,
185184
check_call(command)
186185

187186

188-
def build_spack_env(config, machine, compiler, mpi, spack_env):
187+
def build_spack_env(config, machine, compiler, mpi, spack_env, tmpdir):
189188

190189
base_path = config.get('e3sm_unified', 'base_path')
191190
spack_base = f'{base_path}/spack/spack_for_mache_{mache_version}'
@@ -199,7 +198,7 @@ def build_spack_env(config, machine, compiler, mpi, spack_env):
199198

200199
make_spack_env(spack_path=spack_base, env_name=spack_env,
201200
spack_specs=specs, compiler=compiler, mpi=mpi,
202-
machine=machine)
201+
machine=machine, tmpdir=tmpdir, include_e3sm_lapack=True)
203202

204203
return spack_base
205204

@@ -282,8 +281,7 @@ def check_env(script_filename, env_name, conda_mpi, machine):
282281
commands = [['mpas_analysis', '-h'],
283282
['livv', '--version'],
284283
['globus', '--help'],
285-
['zstash', '--help'],
286-
['processflow', '-v']]
284+
['zstash', '--help']]
287285

288286
if machine is None:
289287
# on HPC machines, these only work on compute nodes because of mpi4py
@@ -324,11 +322,6 @@ def main():
324322
machine = discover_machine()
325323
print(f'discovered: {machine}')
326324

327-
if machine is not None:
328-
machine_info = MachineInfo(machine=machine)
329-
else:
330-
machine_info = None
331-
332325
config = get_config(args.config_file, machine)
333326

334327
if args.release:
@@ -376,8 +369,9 @@ def main():
376369
env_vars=['export HDF5_USE_FILE_LOCKING=FALSE'])
377370

378371
if compiler is not None:
379-
spack_base = build_spack_env(config, machine, compiler, mpi, spack_env)
380-
build_sys_ilamb(config, machine_info, compiler, mpi, template_path,
372+
spack_base = build_spack_env(config, machine, compiler, mpi, spack_env,
373+
args.tmpdir, )
374+
build_sys_ilamb(config, machine, compiler, mpi, template_path,
381375
activate_env, channels)
382376
else:
383377
spack_base = None

e3sm_supported_machines/default.cfg

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ ilamb = 2.6
2222

2323
# the version of mache to use during deployment (should match the version used
2424
# in the package itself)
25-
mache = 1.4.1
25+
mache = 1.5.0
2626

2727
# the version of mpi4py to build if using system compilers
2828
mpi4py = 3.1.3
@@ -31,11 +31,11 @@ mpi4py = 3.1.3
3131
# spack package specs
3232
[spack_specs]
3333

34-
esmf = esmf@8.1.1+mpi+netcdf~pio+pnetcdf
34+
esmf = esmf@8.2.0+mpi+netcdf~pio+pnetcdf
3535
hdf5 = [email protected]+cxx+fortran+hl+mpi+shared
3636
moab = [email protected]+mpi+hdf5+netcdf+pnetcdf+metis+parmetis+tempest
37-
nco = nco@5.0.6+openmp
37+
nco = nco@5.1.0+openmp
3838
netcdf_c = [email protected]+mpi~parallel-netcdf
39-
netcdf_fortran = [email protected].3
40-
tempestextremes = [email protected]+mpi
39+
netcdf_fortran = [email protected].4
40+
tempestextremes = [email protected].1+mpi
4141
tempestremap = [email protected]

e3sm_supported_machines/shared.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
def parse_args(bootstrap):
1515
parser = argparse.ArgumentParser(
16-
description='Deploy a compass conda environment')
17-
parser.add_argument("--version", dest="version", default="1.6.0",
16+
description='Deploy E3SM-Unified')
17+
parser.add_argument("--version", dest="version", default="1.7.0",
1818
help="The version of E3SM-Unified to deploy")
1919
parser.add_argument("--conda", dest="conda_base",
2020
help="Path for the conda base")
@@ -38,6 +38,9 @@ def parse_args(bootstrap):
3838
"build")
3939
parser.add_argument("--use_local", dest="use_local", action='store_true',
4040
help="Use locally built conda packages (for testing).")
41+
parser.add_argument("--tmpdir", dest="tmpdir",
42+
help="A temporary directory for building spack "
43+
"packages")
4144
if bootstrap:
4245
parser.add_argument("--local_conda_build", dest="local_conda_build",
4346
type=str,

recipes/e3sm-unified/meta.yaml

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% set name = "E3SM-Unified" %}
2-
{% set version = "1.6.0" %}
2+
{% set version = "1.7.0" %}
33
{% set build = 0 %}
44

55
package:
@@ -30,24 +30,25 @@ requirements:
3030
run:
3131
### main packages ###
3232
- python
33-
- e3sm_diags 2.6.1
34-
- e3sm_to_cmip 1.8.1
35-
- geometric_features 0.5.0
33+
- e3sm_diags 2.7.0
34+
- e3sm_to_cmip 1.8.2
35+
- geometric_features 0.6.0
3636
- globus-cli
3737
- ilamb 2.6 # [mpi != 'nompi' and mpi != 'hpc']
3838
- ipython
3939
- jupyter
40-
- livvkit 3.0.0
41-
- mache 1.4.1
40+
- livvkit 3.0.1
41+
- mache 1.5.0
4242
- moab 5.3.1 {{ mpi_prefix }}_tempest_* # [mpi != 'hpc']
43-
- mpas-analysis 1.6.1
44-
- mpas_tools 0.12.0
45-
- nco 5.0.6 # [mpi != 'hpc']
46-
- processflow 2.2.5 # [linux]
43+
- mpas-analysis 1.7.0
44+
- mpas_tools 0.14.0
45+
- nco 5.1.0 # [mpi != 'hpc']
46+
- pcmdi_metrics 2.3.1
4747
- tempest-remap 2.1.1 # [mpi != 'hpc']
48-
- tempest-extremes 2.2 {{ mpi_prefix }}_* # [mpi != 'hpc']
49-
- zstash 1.2.0 # [linux]
50-
- zppy 2.0.0
48+
- tempest-extremes 2.2.1 {{ mpi_prefix }}_* # [mpi != 'hpc']
49+
- xcdat 0.3.0
50+
- zstash 1.2.1 # [linux]
51+
- zppy 2.1.0
5152
### dependencies ###
5253
- {{ mpi }} # [mpi != 'nompi' and mpi != 'hpc']
5354
- blas
@@ -58,9 +59,10 @@ requirements:
5859
- cdtime 3.1.4
5960
- cdutil 8.2.1
6061
- cmocean
61-
- dask 2022.01.1
62+
- dask 2022.5.2
63+
- dogpile.cache
6264
- eofs
63-
- esmf 8.1.1 {{ mpi_prefix }}_* # [mpi != 'hpc']
65+
- esmf 8.2.0 {{ mpi_prefix }}_* # [mpi != 'hpc']
6466
- f90nml
6567
- ffmpeg
6668
- genutil 8.2.1
@@ -76,16 +78,16 @@ requirements:
7678
- nb_conda
7779
- nb_conda_kernels
7880
- ncview 2.1.8
79-
- netcdf4 1.5.7 nompi_*
81+
- netcdf4 1.5.8 nompi_*
8082
- numpy >1.13
8183
- openssh # [mpi == 'openmpi']
8284
- output_viewer 1.3.3
8385
- pillow
8486
- plotly
8587
- progressbar2
86-
- proj 8.2.1
88+
- proj 9.0.0
8789
- pyevtk
88-
- pyproj 3.3.0
90+
- pyproj 3.3.1
8991
- pyremap
9092
- pytest
9193
- pywavelets
@@ -94,7 +96,7 @@ requirements:
9496
- shapely
9597
- sympy >=0.7.6
9698
- tabulate
97-
- xarray 0.21.1
99+
- xarray 2022.3.0
98100
- xesmf
99101

100102
# addition ilamb 2.6 dependencies, for system MPI builds
@@ -120,7 +122,6 @@ test:
120122
commands:
121123
- mpas_analysis --version
122124
- livv --version
123-
- processflow -v # [linux]
124125
- e3sm_diags --help
125126
- zstash --help # [linux]
126127
- ilamb-fetch -h # [mpi != 'nompi' and mpi != 'hpc']

0 commit comments

Comments
 (0)