Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/build_workflow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,9 @@ jobs:
source load_polaris_test_mpich.sh
fi
python -c "import polaris; import polaris.version; print(polaris.version.__version__)"
polaris --help
polaris list --help
polaris list

- if: ${{ steps.skip_check.outputs.should_skip != 'true' }}
name: Build Sphinx Docs
Expand Down
4 changes: 2 additions & 2 deletions configure_polaris_envs.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/usr/bin/env python3
import os
import sys
from configparser import ConfigParser
from configparser import ConfigParser, ExtendedInterpolation

from deploy.shared import (
check_call,
Expand Down Expand Up @@ -105,7 +105,7 @@ def _get_config(config_file):
# we can't load polaris so we find the config files
here = os.path.abspath(os.path.dirname(__file__))
default_config = os.path.join(here, 'deploy/default.cfg')
config = ConfigParser()
config = ConfigParser(interpolation=ExtendedInterpolation())
config.read(default_config)

if config_file is not None:
Expand Down
3 changes: 0 additions & 3 deletions deploy/albany_supported.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
# a list of supported machine, compiler and mpi combinations for Albany

anvil, gnu, openmpi
chicoma-cpu, gnu, mpich
chrysalis, gnu, openmpi
compy, gnu, openmpi
frontier, craygnu, mpich
frontier, craygnu-mphipcc, mpich
frontier, craycray, mpich
Expand Down
32 changes: 11 additions & 21 deletions deploy/bootstrap.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import stat
import subprocess
import time
from configparser import ConfigParser
from configparser import ConfigParser, ExtendedInterpolation
from typing import Dict

import progressbar
Expand Down Expand Up @@ -269,7 +269,7 @@ def _get_config(config_file, machine):
# we can't load polaris so we find the config files
here = os.path.abspath(os.path.dirname(__file__))
default_config = os.path.join(here, 'default.cfg')
config = ConfigParser()
config = ConfigParser(interpolation=ExtendedInterpolation())
config.read(default_config)

if machine is not None:
Expand Down Expand Up @@ -554,7 +554,7 @@ def _build_conda_env(options, activate_base):
else:
mpi_prefix = f'mpi_{conda_mpi}'

channel_list = ['-c conda-forge', '-c defaults']
channel_list = ['-c conda-forge']
if use_local:
channel_list = ['--use-local'] + channel_list
if local_conda_build is not None:
Expand Down Expand Up @@ -772,15 +772,6 @@ def _get_env_vars(machine, compiler, mpi):

env_vars = f'{env_vars}export MPAS_EXTERNAL_LIBS=""\n'

if 'intel' in compiler and machine == 'anvil':
env_vars = (
f'{env_vars}'
f'export I_MPI_CC=icc\n'
f'export I_MPI_CXX=icpc\n'
f'export I_MPI_F77=ifort\n'
f'export I_MPI_F90=ifort\n'
)

if machine.startswith('conda'):
# we're using parallelio so we don't have ADIOS support
env_vars = f'{env_vars}export HAVE_ADIOS=false\n'
Expand Down Expand Up @@ -869,6 +860,7 @@ def _build_spack_soft_env(options): # noqa: C901
os.chdir(build_dir)

esmf = config.get('deploy', 'esmf')
moab = config.get('deploy', 'spack_moab')

if config.has_option('deploy', 'spack_mirror'):
spack_mirror = config.get('deploy', 'spack_mirror')
Expand All @@ -895,6 +887,11 @@ def _build_spack_soft_env(options): # noqa: C901
if esmf != 'None':
specs.append(f'esmf@{esmf}+mpi+netcdf~pnetcdf~external-parallelio')

if moab != 'None':
specs.append(
f'moab@{moab}+eigen+fortran+hdf5+mpi+netcdf+pnetcdf+zoltan+tempest'
)

yaml_template: str | None = None
template_path = f'{spack_template_path}/{machine}_{compiler}_{mpi}.yaml'
if os.path.exists(template_path):
Expand Down Expand Up @@ -950,7 +947,6 @@ def _build_spack_libs_env(options, compiler, mpi, env_vars): # noqa: C901
cmake = config.get('deploy', 'cmake')
lapack = config.get('deploy', 'lapack')
metis = config.get('deploy', 'metis')
moab = config.get('deploy', 'spack_moab')
parmetis = config.get('deploy', 'parmetis')
petsc = config.get('deploy', 'petsc')
scorpio = config.get('deploy', 'scorpio')
Expand Down Expand Up @@ -984,10 +980,6 @@ def _build_spack_libs_env(options, compiler, mpi, env_vars): # noqa: C901
include_e3sm_lapack = True
if metis != 'None':
specs.append(f'metis@{metis}+int64+real64~shared')
if moab != 'None':
specs.append(
f'moab@{moab}+mpi+hdf5+netcdf+pnetcdf+metis+parmetis+tempest'
)
if parmetis != 'None':
specs.append(f'parmetis@{parmetis}+int64~shared')
if petsc != 'None':
Expand Down Expand Up @@ -1038,10 +1030,8 @@ def _build_spack_libs_env(options, compiler, mpi, env_vars): # noqa: C901
mpi=mpi,
shell='sh',
machine=machine,
config_file=machine_config,
include_e3sm_lapack=include_e3sm_lapack,
include_e3sm_hdf5_netcdf=e3sm_hdf5_netcdf,
yaml_template=yaml_template,
)

spack_view = (
Expand All @@ -1064,7 +1054,7 @@ def _build_spack_libs_env(options, compiler, mpi, env_vars): # noqa: C901
stdcxx = '-lc++'
else:
stdcxx = '-lstdc++'
if mpi == 'openmpi' and machine in ['anvil', 'chrysalis']:
if mpi == 'openmpi' and machine in ['chrysalis']:
mpicxx = '-lmpi_cxx'
else:
mpicxx = ''
Expand Down Expand Up @@ -1517,7 +1507,7 @@ def _get_possible_hosts():
possible_hosts = dict()
for filename in files:
machine = os.path.splitext(os.path.split(filename)[1])[0]
config = ConfigParser()
config = ConfigParser(interpolation=ExtendedInterpolation())
config.read(filename)
if config.has_section('discovery') and config.has_option(
'discovery', 'hostname_contains'
Expand Down
12 changes: 6 additions & 6 deletions deploy/conda-dev-spec.template
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ importlib_resources
ipython
jupyter
lxml
{% if include_mache %}
{%- if include_mache %}
mache={{ mache }}
{% endif %}
{%- endif %}
matplotlib-base>=3.9.0
metis={{ metis }}
moab={{ moab }}=*_tempest_*
Expand All @@ -22,9 +22,9 @@ mpas_tools={{ mpas_tools }}
nco
netcdf4=*=nompi_*
numpy>=2.0,<3.0
{% if supports_otps %}
{%- if supports_otps %}
otps={{ otps }}
{% endif %}
{%- endif %}
progressbar2
pyamg>=4.2.2
pyproj
Expand All @@ -49,7 +49,7 @@ pre-commit
ruff

# Development
{% if mpi != "nompi" %}
{%- if mpi != "nompi" %}
c-compiler
cmake
cxx-compiler
Expand All @@ -62,7 +62,7 @@ m4
make
{{ mpi }}
{{ openmp }}
{% endif %}
{%- endif %}

# CF-compliance
cfchecker
Expand Down
12 changes: 6 additions & 6 deletions deploy/default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,26 @@ mpi = nompi

# versions of conda packages
geometric_features = 1.6.1
mache = 1.32.0
conda_moab = 5.5.1
mpas_tools = 1.3.2
mache = 2.1.0
conda_moab = 5.6.0
mpas_tools = 1.4.0
otps = 2021.10
parallelio = 2.6.6

# versions of conda or spack packages (depending on machine type)
esmf = 8.9.0
metis = 5.1.0
netcdf_c = 4.9.2
netcdf_c = 4.9.3
netcdf_fortran = 4.6.2
pnetcdf = 1.14.0
pnetcdf = 1.14.1

# versions of spack packages
albany = developcompass-2024-03-13
# cmake newer than 3.23.0 needed for Trilinos
cmake = 3.23.0:
hdf5 = 1.14.6
lapack = 3.9.1
spack_moab = master
spack_moab = ${conda_moab}
parmetis = 4.0.3
petsc = 3.19.1
scorpio = 1.8.2
4 changes: 0 additions & 4 deletions deploy/petsc_supported.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
# a list of supported machine, compiler and mpi combinations for Netlib LAPACK
# and PETSc

anvil, intel, impi
anvil, gnu, openmpi
chicoma-cpu, gnu, mpich
chrysalis, intel, openmpi
chrysalis, gnu, openmpi
compy, intel, impi
frontier, craygnu, mpich
pm-cpu, gnu, mpich
14 changes: 0 additions & 14 deletions deploy/unsupported.txt
Original file line number Diff line number Diff line change
@@ -1,23 +1,9 @@
# a list of unsupported machine, compiler and mpi combinations

# no spack available
anvil, gnu, impi
chicoma-cpu, aocc, mpich
chicoma-cpu, amdclang, mpich
chrysalis, intel, impi
chrysalis, gnu, impi
chrysalis, oneapi-ifx, openmpi
chrysalis, oneapi-ifx, impi
compy, intel, mvapich2
compy, gnu, openmpi
compy, pgi, impi
compy, pgi, mvapich2
pm-cpu, aocc, mpich
pm-cpu, amdclang, mpich

# cannot build MOAB in spack
anvil, gnu, mvapich

# compiles but tests unreliable (errors or hanging),
# see https://github.com/MPAS-Dev/compass/issues/336
anvil, intel, mvapich
4 changes: 2 additions & 2 deletions docs/developers_guide/command_line.md
Original file line number Diff line number Diff line change
Expand Up @@ -334,9 +334,9 @@ so that new revisions can be added without removing older ones (supported by
older polaris versions). See {ref}`dev-step-cached-output` for more details.

The command `polaris cache` is used to update the file `cached_files.json`
within a component. This command is only available on Anvil and Chrysalis,
within a component. This command is only available on Chrysalis,
since developers can only copy files from a Polaris work directory onto the
LCRC server from these two machines.
LCRC server from Chrysalis.
```none
$ polaris cache --help
usage: polaris cache [-h] [-i STEP [STEP ...]] [-d DATE] [-r]
Expand Down
2 changes: 1 addition & 1 deletion docs/developers_guide/framework/build.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Common:
submodules and templates)

MPAS-Ocean:
- `POLARIS_MACHINE` — machine ID used by the template (e.g., chrysalis, anvil)
- `POLARIS_MACHINE` — machine ID used by the template (e.g., chrysalis, frontier)
- `POLARIS_COMPILER` — compiler toolchain ID (e.g., intel, gnu)
- `POLARIS_MPI` — MPI library ID (e.g., openmpi, mpich)
- `LOAD_POLARIS_ENV` — path to the shell snippet used to load the Polaris build
Expand Down
38 changes: 0 additions & 38 deletions docs/developers_guide/machines/anvil.md

This file was deleted.

14 changes: 14 additions & 0 deletions docs/developers_guide/machines/aurora.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
(dev-machine-aurora)=

# Aurora

## oneapi-ifx

This is the default polaris compiler on Aurora. If the environment has
been set up properly (see {ref}`dev-conda-env`), you should be able to source:

```bash
source load_dev_polaris_0.10.0-alpha.1_aurora_oneapi-ifx_mpich.sh
```

MPAS components do not yet support Aurora, but Omega does.
16 changes: 0 additions & 16 deletions docs/developers_guide/machines/chicoma.md

This file was deleted.

36 changes: 0 additions & 36 deletions docs/developers_guide/machines/compy.md

This file was deleted.

Loading
Loading