Versions Compared

Key

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

...

  • MPI: MOAB supports the usage of MPICH and OpenMPI libraries configured externally to enable scalable mesh manipulation algorithms.

  • HDF5: 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.

  • 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.

  • 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 as well.

  • Metis/ParMetis: MOAB can optionally use the Metis or ParMetis library for partitioning mesh files in an offline form through the mbpart tool. This may be useful to pre-partition the mesh a-priori in offline remapping workflows.

  • Zoltan: Support for both offline and 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.

  • TempestRemap: Provides support for both offline and online remapping of Climate field data on unstructured spherical meshes. Required dependency for all E3SM workflows.

  • Eigen3: A substitute for BLAS/LAPACK interfaces. However, if TempestRemap tools are to be built, this becomes a required dependency as we store the SparseMatrix internally on every task using the Eigen3 datastructures.

Configuration and building MOAB from source

First, clone the sources from the repository using the command

...

Currently, both CMake and Autotools are maintained simultaneously in order to support all platforms (including Windows). Please choose your build system according to your needs and follow instructions below. Both of these workflows follow the same pattern of commands to build and install in your platform. Note that the autotools workflow may get deprecated in the future.

Autotools based configuration workflow

...

In this section, we will focus only on the autotools configuration system as this remains the most tested configuration approach for now. In the future, we will be deprecating the autotools configuration system and use the CMake-based approach.

For the autotools-based configuration, we recommend a minimum autoconf version of

...

2.69.

Autotools configuration

  • Run autoreconf -fi to generate the configure script

  • Run the configure --help script in the top source directory to see a list of available configure options.

  • Use --prefix=INSTALL_DIR to specify installation directory

  • Override default compilers with environment variables or

    user

    configure-time options: CC, CXX, FC, F77

  • If you have MPI installed, use --with-mpi=$MPI_DIR

  • If you have 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, use --with-zoltan=$ZOLTAN_DIR

  • If you have TempestRemap

    master branch

    pre-installed, 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

    Git

    TempestRemap git repository, master branch).

  • Now run execute the configure script with desired configuration options either in-source or out-of-source (build) directory.

Once configuration with either the autotools or the CMake workflow is complete in the build directory, run the following to build the library :and verify the build.

  • Compile MOAB and supported tools: make -j4

  • Verify configuration and build setup: make check

Next to install the compiled libraries, headers, and tools, run: make install

  • 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 for additional help.