Skip to content

Commit 943c86d

Browse files
authored
Merge pull request #263 from xylar/add-frontier-amdclang
Add support for amdclang and amdclanggpu on Frontier
2 parents 87ba957 + c9a538e commit 943c86d

File tree

3 files changed

+80
-37
lines changed

3 files changed

+80
-37
lines changed

docs/developers_guide/machines/index.md

Lines changed: 62 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ test cases are configured in a way that is appropriate for your machine.
1616
If you follow the procedure in {ref}`dev-conda-env`, you will have an
1717
activation script for activating the development conda environment, setting
1818
loading system modules and setting environment variables so you can build
19-
MPAS and work with polaris. Just source the script that should appear in
20-
the base of your polaris branch, e.g.:
19+
Omega or an MPAS component and work with polaris. Just source the script that
20+
should appear in the base of your polaris branch, e.g.:
2121

2222
```bash
2323
source load_dev_polaris_0.1.0-alpha.1_anvil_intel_impi.sh
@@ -31,10 +31,25 @@ you were setting things up. You can can source this file on a compute node
3131
MPI libraries and environment variables for running polaris tasks and
3232
the MPAS model.
3333

34-
:::{note}
35-
Albany (and therefore most of the functionality in MALI) is currently only
36-
supported for those configurations with `gnu` compilers.
37-
:::
34+
Below are specifics for each supported machine
35+
36+
```{toctree}
37+
:titlesonly: true
38+
39+
anvil
40+
chicoma
41+
chrysalis
42+
compy
43+
frontier
44+
perlmutter
45+
```
46+
47+
(dev-mpas-supported-machines)=
48+
49+
### MPAS-Ocean and -Seaice Supported Machines
50+
51+
These are the machines supported by MPAS-Ocean and -Seaice, including the
52+
"make target" used to build the MPAS component.
3853

3954
```{eval-rst}
4055
+--------------+------------+-----------+-------------------+
@@ -64,19 +79,51 @@ supported for those configurations with `gnu` compilers.
6479
+--------------+------------+-----------+-------------------+
6580
```
6681

67-
Below are specifics for each supported machine
82+
(dev-omega-supported-machines)=
6883

69-
```{toctree}
70-
:titlesonly: true
84+
### Omega Supported Machines
7185

72-
anvil
73-
chicoma
74-
chrysalis
75-
compy
76-
frontier
77-
perlmutter
86+
These are the machines supported by Omega. The MPI library is always the
87+
E3SM default for the given machine an compiler.
88+
89+
```{eval-rst}
90+
+--------------+--------------+-----------+
91+
| Machine | Compiler | MPI lib. |
92+
+==============+==============+===========+
93+
| chicoma-cpu | gnu | mpich |
94+
+--------------+--------------+-----------+
95+
| chrysalis | intel | openmpi |
96+
| +--------------+-----------+
97+
| | gnu | openmpi |
98+
+--------------+--------------+-----------+
99+
| frontier | gnu | mpich |
100+
| +--------------+-----------+
101+
| | gnugpu | mpich |
102+
| +--------------+-----------+
103+
| | amdclang | mpich |
104+
| +--------------+-----------+
105+
| | amdclanggpu | mpich |
106+
| +--------------+-----------+
107+
| | crayclang | mpich |
108+
| +--------------+-----------+
109+
| | crayclanggpu | mpich |
110+
+--------------+--------------+-----------+
111+
| pm-cpu | gnu | mpich |
112+
| +--------------+-----------+
113+
| | intel | mpich |
114+
| +--------------+-----------+
115+
| | nvidia | mpich |
116+
+--------------+--------------+-----------+
117+
| pm-gpu | gnugpu | mpich |
118+
| +--------------+-----------+
119+
| | nvidiagpu | mpich |
120+
+--------------+--------------+-----------+
78121
```
79122

123+
:::{note}
124+
Omega does not currently support Compy and Anvil.
125+
:::
126+
80127
(dev-other-machines)=
81128

82129
## Other Machines

docs/developers_guide/quick_start.md

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -458,13 +458,15 @@ be safe.
458458
## Building E3SM components
459459

460460
There are 3 E3SM repositories that are submodules within the polaris
461-
repository.
461+
repository, but the MALI-Dev submodule is not yet used.
462462

463-
For MPAS-Ocean and MALI both, see the last column of the table in
464-
{ref}`dev-supported-machines` for the right `<mpas_make_target>` command for
465-
each machine and compiler.
463+
(dev-mpas-build)=
464+
465+
### MPAS-Ocean or MPAS-Seaice
466466

467-
### MPAS-Ocean
467+
For MPAS-Ocean and -Seaice both, see the last column of the table in
468+
{ref}`dev-mpas-supported-machines` for the right `<mpas_make_target>` command for
469+
each machine and compiler.
468470

469471
To build MPAS-Ocean, you would typically run:
470472

@@ -474,27 +476,15 @@ cd e3sm_submodules/E3SM-Project/components/mpas-ocean/
474476
make <mpas_make_target>
475477
```
476478

477-
### MALI
479+
The same applies to MPAS-Seaice except with `mpas-seaice` in the path above.
478480

479-
MALI should typically be compiled with the Albany library that contains the
480-
first-order velocity solver. The Albany first-order velocity solver is the
481-
only velocity option that is scientifically validated. On supported machines
482-
and with compilers that support albany, you can run:
483-
484-
```bash
485-
./configure_polaris_envs.py --with_albany ...
486-
```
487-
488-
Then, you can build MALI:
489-
490-
```bash
491-
source ./load_<env_name>_<machine>_<compiler>_<mpi>_albany.sh
492-
cd e3sm_submodules/MALI-Dev/components/mpas-albany-landice
493-
make ALBANY=true <mpas_make_target>
494-
```
481+
(dev-omega-build)=
495482

496483
### Omega
497484

485+
See the table in {ref}`dev-omega-supported-machines` for a list of supported
486+
machines.
487+
498488
If you simply wish to run the CTests from Omega, you likely want to use the
499489
[Omega CTest Utility](https://github.com/E3SM-Project/polaris/blob/main/utils/omega/ctest/README.md).
500490

polaris/machines/frontier.cfg

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ mpi_crayclang = mpich
3030
# the system MPI library to use for crayclanggpu compiler
3131
mpi_crayclanggpu = mpich
3232

33+
# the system MPI library to use for amdclang compiler
34+
mpi_amdclang = mpich
35+
36+
# the system MPI library to use for amdclanggpu compiler
37+
mpi_amdclanggpu = mpich
38+
3339
# the base path for spack environments used by polaris
3440
spack = /ccs/proj/cli115/software/polaris/frontier/spack
3541

0 commit comments

Comments
 (0)