Skip to content

Commit b8c5960

Browse files
committed
Add pre_conda_script to load scripts
This is needed to unload a problem module on ALCF Polaris and may be useful on other machines in the future. This requires a new capability in mache.
1 parent 14d1df4 commit b8c5960

File tree

3 files changed

+50
-15
lines changed

3 files changed

+50
-15
lines changed

e3sm_supported_machines/bootstrap.py

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@
88
from configparser import ConfigParser
99

1010
from mache import discover_machine
11-
from mache.spack import make_spack_env, get_spack_script, \
12-
get_modules_env_vars_and_mpi_compilers
11+
from mache.machines.pre_conda import load_pre_conda_script
12+
from mache.spack import (
13+
make_spack_env,
14+
get_spack_script,
15+
get_modules_env_vars_and_mpi_compilers,
16+
)
1317
from mache.permissions import update_permissions
1418
from shared import (
1519
check_call,
@@ -282,9 +286,21 @@ def build_spack_env(config, machine, compiler, mpi, version, tmpdir):
282286
return spack_base_path
283287

284288

285-
def write_load_e3sm_unified(template_path, activ_path, conda_base, is_test,
286-
version, activ_suffix, env_name, env_nompi,
287-
sys_info, ext, machine, spack_script):
289+
def write_load_e3sm_unified(
290+
template_path,
291+
activ_path,
292+
conda_base,
293+
is_test,
294+
version,
295+
activ_suffix,
296+
env_name,
297+
env_nompi,
298+
sys_info,
299+
ext,
300+
machine,
301+
pre_conda_script,
302+
spack_script,
303+
):
288304

289305
try:
290306
os.makedirs(activ_path)
@@ -318,14 +334,17 @@ def write_load_e3sm_unified(template_path, activ_path, conda_base, is_test,
318334
else:
319335
env_type = 'SYSTEM'
320336

321-
script = template.render(conda_base=conda_base, env_name=env_name,
322-
env_type=env_type,
323-
script_filename=script_filename,
324-
env_nompi=env_nompi,
325-
spack='\n '.join(spack_script.split('\n')),
326-
modules='\n '.join(sys_info['modules']),
327-
env_vars=env_vars,
328-
machine=machine)
337+
script = template.render(
338+
pre_conda_script=pre_conda_script,
339+
conda_base=conda_base,
340+
env_name=env_name,
341+
env_type=env_type,
342+
script_filename=script_filename,
343+
env_nompi=env_nompi,
344+
spack='\n '.join(spack_script.split('\n')),
345+
modules='\n '.join(sys_info['modules']),
346+
env_vars=env_vars,
347+
machine=machine)
329348

330349
# strip out redundant blank lines
331350
lines = list()
@@ -483,9 +502,21 @@ def main():
483502
else:
484503
spack_script = ''
485504

505+
pre_conda_script = load_pre_conda_script(machine=machine, ext=ext)
506+
486507
script_filename = write_load_e3sm_unified(
487-
template_path, activ_path, conda_base, is_test, version,
488-
activ_suffix, conda_env_name, env_nompi, sys_info, ext, machine,
508+
template_path,
509+
activ_path,
510+
conda_base,
511+
is_test,
512+
version,
513+
activ_suffix,
514+
conda_env_name,
515+
env_nompi,
516+
sys_info,
517+
ext,
518+
machine,
519+
pre_conda_script,
489520
spack_script)
490521
if ext == 'sh':
491522
test_script_filename = script_filename

e3sm_supported_machines/templates/load_e3sm_unified.csh.template

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{{ pre_conda_script }}
2+
13
source {{ conda_base }}/etc/profile.d/conda.csh
24

35
setenv E3SMU_SCRIPT "{{ script_filename }}"

e3sm_supported_machines/templates/load_e3sm_unified.sh.template

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{{ pre_conda_script }}
2+
13
source {{ conda_base }}/etc/profile.d/conda.sh
24

35
export E3SMU_SCRIPT="{{ script_filename }}"

0 commit comments

Comments
 (0)