Machines¶
One of the major advantages of compass
over Legacy COMPASS is that it
attempts to be aware of the capabilities of the machine it is running on. This
is a particular advantage for so-called “supported” machines with a config file
defined for them in the compass
package. But even for “unknown” machines,
it is not difficult to set a few config options in your user config file to
describe your machine. Then, compass
can use this data to make sure test
cases are configured in a way that is appropriate for your machine.
Supported Machines¶
If you follow the procedure in compass conda environment, compilers and system modules, you will have an
activation script for activating the development conda environment, setting
loading system modules and setting environment variables so you can build
MPAS and work with compass
. Just source the script that should appear in
the base of your compass branch, e.g.:
source load_dev_compass_1.0.0_anvil_intel_impi.sh
After loading this environment, you can set up test cases or test suites, and
a link load_compass_env.sh
will be included in each suite or test case
work directory. This is a link to the activation script that you sourced when
you were setting things up. You can can source this file on a compute node
(e.g. in a job script) to get the right compass conda environment, compilers,
MPI libraries and environment variables for running compass
tests and
the MPAS model.
Machine |
Compiler |
MPI lib. |
MPAS make target |
---|---|---|---|
anvil |
intel |
impi |
intel-mpi |
openmpi |
ifort |
||
mvapich |
ifort |
||
gnu |
mvapich |
gfortran |
|
openmpi |
gfortran |
||
badger |
intel |
impi |
intel-mpi |
gnu |
mvapich |
gfortran |
|
chrysalis |
intel |
impi |
intel-mpi |
openmpi |
ifort |
||
gnu |
openmpi |
gfortran |
|
compy |
intel |
impi |
intel-mpi |
cori-haswell |
intel |
mpt |
intel-nersc |
gnu |
mpt |
gnu-nersc |
|
cori-knl |
intel |
impi |
intel-mpi |
grizzly |
intel |
impi |
intel-mpi |
gnu |
mvapich |
gfortran |
Below are specifics for each supported machine
Other Machines¶
If you are working on an “unknown” machine, the procedure is pretty similar
to what was described in compass conda environment, compilers and system modules. The main difference is that
we will use mpich
or openmpi
and the gnu compilers from conda-forge
rather than system compilers. To create a development conda environment and
an activation script for it, on Linux, run:
./conda/configure_compass_env.py --conda <conda_path> -c gnu -i mpich
and on OSX run:
./conda/configure_compass_env.py --conda <conda_path> -c clang -i mpich
You may use openmpi
instead of mpich
but we have had better experiences
with the latter.
The result should be an activation script load_dev_compass_1.0.0_<mpi>.sh
.
Source this script to get the appropriate conda environment and environment
variables.
Under Linux, you can build the MPAS model with
make gfortran
Under OSX, you can build the MPAS model with
make gfortran-clang