README.rst 2.48 KB
Newer Older
Youngsung Kim's avatar
Youngsung Kim committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
E3SM Kernels
=================

This repository aggregates kernels extracted from the [Energy Exascale Earth System Model (E3SM)](https://e3sm.org).

Each kernel contains the requisite instructions to build and run in a standalone manner. The kernel inputs/outputs captured from the full application run would facilitate replication of kernel run to match application behavior.

Kernel locations
---------------------

Each kernels are grouped per its component. For example, all atmospheric kernels will reside under "atm" directory. You can find directories for each component at root directory.


How to use the kernels
------------------------

The detail usage of the kernels are explained in README.rst file in each kernel directory.

In general, Makefile in each kernel will drive usage of the kernels. For example, if you are compiling/running a kernel on the system that the kernel is extracted from, "make build" and "make run" will do. However, if you are doing on different system and/or compiler, you may need to add additional Makefile argument. Following are a couple of examples:

Cori KNL of NERSC ::

    This kernel was extracted on Cori KNL. Therefore it is simplest to use if you
    are on Cori KNL system.

    * to build : >>> make build  
    * to run : >>> make run  
    * to build with MPI : >>> make build MPI=1
    * to run with MPI : >>> make run MPI=1

Cori Haswell of NERSC ::

    To support Haswell, only PROC argument needs to be changed.

    * to build : >>> make build PROC=
    * to run : >>> make run PROC=
    * to build with MPI : >>> make build PROC= MPI=1
    * to run with MPI : >>> make run PROC= MPI=1

Summit of ORNL ::

    On Summit, IBM xlf compiler is used as default compiler.

    * to build : >>> make build COMP=xlf PROC= MACH=summit
    * to run : >>> make run COMP=xlf PROC= MACH=summit
    * to build with MPI : >>> make build COMP=xlf PROC= MACH=summit MPI=1
    * to run with MPI : >>> make run COMP=xlf PROC= MACH=summit MPI=1

Tulip of Cray Frontier-testbed ::

    On Tulip, IBM crayftn compiler is used as default compiler.

    * to build : >>> make build COMP=crayftn PROC= MACH=tulip
    * to run : >>> make run COMP=crayftn PROC= MACH=tulip
    * to build with MPI : >>> make build COMP=crayftn PROC= MACH=tulip MPI=1
    * to run with MPI : >>> make run COMP=crayftn PROC= MACH=tulip MPI=1

Generic Linux::

    Gfortran is freely available for many Linux distros.

    * to build : >>> make build COMP=gfortran PROC=
    * to run : >>> make run COMP=gfortran PROC=