Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • MPI: MOAB supports both MPICH- and OpenMPI-based libraries configured externally to enable scalable mesh manipulation algorithms. Needed for MOAB-coupler.To run E3SM, you built one or both of NetCDF and

  • Parallel-NetcdfHDF5: To manage the data dependencies and to natively support parallel I/O, MOAB uses a native HDF5-based file format to represent the entire MOAB data model. If MPI is enabled, HDF5 should be built with parallel support. This is required because TempestRemap (below) needs it. It also allows you to output MOAB h5m files which are useful in debugging.

  • NetCDF: MOAB library optionally depends on the NetCDF libraries (C) to compile the ExodusII reader/writer. NetCDF is also required to process NetCDF4 format nc files for E3SM. If MPI is enabled, then the underlying HDF5 dependency for NetCDF should have parallel support i.e., serial HDF5 dependency will not pass configuration checks. If you built it for E3SM, use that one.

  • Parallel-NetCDF: MOAB library optionally depends on the parallel-NetCDF (pnetcdf) libraries to compile the support for parallel reader and writer of NetCDF meshes and linear map weight files. This is a required dependency to enable parallel I/O of MPAS, SCRIP, ESMF, and Exodus meshes. Use the same one you built for E3SM.

  • Zoltan: Support for online partitioning through Zoltan (and its dependencies on Scotch, ParMetis etc) can be utilized through the partitioner tool and at runtime with appropriate file read options (PARTITION_METHOD=RCBZOLTAN;). This dynamic rebalancing is important to achieve good scalability when reading nc files. If reading parallel h5m files, we recommend using the offline partitioning tool with mbpart with -z RCB to use the Recursive Bisection geometric partitioner implementation in Zoltan. This is required for E3SM’s moab coupler.

  • TempestRemap: Provides support for online remapping of Climate field data on unstructured spherical meshes. Required.

  • Eigen3: A substitute for BLAS/LAPACK interfaces. Required with TempestRemap as we store the SparseMatrix internally on every task using the Eigen3 data-structures. Required.

Optional dependencies (not needed to run the default moab coupler)

...

  • Override default compilers with environment variables or configure-time options with the compilers you use for E3SM: CC, CXX, FC, F77

  • For the MPI installed for E3SM, use --with-mpi=$MPI_DIR

  • If you have For the HDF5, NetCDF, PNetCDF installed, use --with-hdf5=$HDF5_DIR --with-netcdf=$NETCDF_DIR --with-pnetcdf=$PNETCDF_DIR to specify these external dependencies.

  • Similarly for Metis or ParMetis dependencies, use --with-metis=$METIS_DIR and --with-parmetis=$PARMETIS_DIR respectively

  • If you have Zoltan installed, Zoltan must currently be installed separately. use --with-zoltan=$ZOLTAN_DIR

  • If you have TempestRemap For TempestRemap, if you pre-installed it, then use --with-tempestremap=$TEMPESTREMAP_DIR during configuration, or you can use the auto-download option to let MOAB automatically build the dependency with the configure option --download-tempestremap(to download the latest release) OR --download-tempestremap=master (to build from TempestRemap git repository, master branch).

  • Now execute the configure script with desired configuration options either in-source or out-of-source (recommended) directory. A typical MOAB configuration command with all TPLs enabled for E3SM might look like the one shown below, where $PACKAGE_DIR indicates the location of the installation prefix for the particular TPL.

    Code Block
    $MOAB_SRC/configure CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif77 \
                        --prefix=$MOAB_INSTALL_DIR \
                        --enable-debug --enable-optimize \
                        --with-mpi=$MPI_DIR \
                        --with-eigen3=$EIGEN3_INCLUDE_DIR \
                        --with-hdf5=$HDF5_DIR \
                        --with-netcdf=$NETCDF_DIR \
                        --with-pnetcdf=$PNETCDF_DIR \
                        --with-tempestremap=$TEMPESTREMAP_DIR \
                        --with-zoltan=$ZOLTAN_DIR 

...

  • You can now use the makefile generated under the build/examples folder and modify it to compile downstream code with MOAB dependency

After this step, the MOAB installation with TempestRemap should be usable for all E3SM online and offline workflows. If you experience any issues during configuration or linking phases of MOAB, please email the mailing list: moab-dev@mcs.anl.gov , or contact Vijay M , Iulian Grindeanu or #coupler on Slack for additional help.

Once you have verified MOAB has been built correctly, you need to tell the CIME machine config that it is available.

Pre-built recipes (Conda)

...