Versions Compared

Key

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

...

These instructions assume you have already ported E3SM to your machine (you have it defined in config_machines.xml and can build and run cases.)

Almost all dependencies are in general optional for MOAB but are required for MOAB-in-E3SM. Features To build the MOAB library specifically for E3SM, the following dependencies are required and mandatory for scalable coupler workflows.MOAB has to be configured with these TPLs to work consistently with E3SM and to support both online and offline workflows. The appropriate features and tools needed within MOAB will get automatically built and enabled based on the dependencies when configuring the during MOAB libraryconfiguration.

  • MPI: MOAB supports both MPICH- and OpenMPI-based libraries configured externally to enable scalable mesh manipulation algorithms. Required dependency for the MOAB-coupler. (Without MPI, only a serial version of MOAB will be built.) Use the same MPI library/wrappers as E3SM.

  • HDF5: MOAB uses a native HDF5-based file format to represent the entire MOAB data model and this is the recommended interface and format for scalable I/O of MOAB meshes and associated data. If MPI is enabled, HDF5 should be built with parallel support. HDF5 support allows you to output any E3SM state maintained by MOAB in h5m files that are tremendously useful in debugging as they can be directly visualized with VisIt using the MOAB plugin (on a sphere and with the exact mesh). If you built HDF5 for E3SM (with parallel support), use that to enable HDF5 support in MOAB configuration. For MOAB-E3SM workflows, this is an optional dependency unless you expect to develop and debug MOAB driver.

  • Parallel-NetCDF: MOAB library uses parallel-NetCDF (pnetcdf) library directly for reading NetCDF (v3) meshes in parallel and linear map weight files (for instance the r2o map). All other component maps are generally calculated online by the MOAB coupler. Use the same PNetCDF library as E3SM. For MOAB-E3SM workflows, this is a required dependency.

  • Zoltan: Support for online or offline partitioning through Zoltan (optionally configured with dependency on ParMetis/Metis) can be utilized with the MOAB partitioner tool (mbpart). The runtime partitioning can be invoked with appropriate file read options (PARTITION_METHOD=RCBZOLTAN;). This dynamic rebalancing is important to achieve good scalability when reading nc files in parallel. For MOAB-E3SM workflows, this is a recommended required dependency.

  • TempestRemap: Provides support for both offline and online remapping of Climate field data on unstructured spherical meshes. The offline remapping weights can be generated using the mbtempest tool. Refer to Offline remapping workflow with mbtempest for more details. For MOAB-E3SM workflows, this is a required dependency.

  • Eigen3: A substitute for BLAS/LAPACK interfaces (if not available locally). This is a required dependency for MOAB when calculating weights with TempestRemap as we store the SparseMatrix linear map internally on every task and perform SpMV using the Eigen3 interfaces. For MOAB-E3SM workflows, this is a required dependency.

...

  • Metis/ParMetis: MOAB can optionally use the Metis or ParMetis library for partitioning mesh files in an offline form through MOAB’s mbpart tool. This may be useful to pre-partition the mesh apriori in offline remapping workflows, especially when using Metis KWAY graph partitioning algorithm (MPAS).HDF5: MOAB uses a native HDF5-based file format to represent the entire MOAB data model and this is the recommended interface and format for scalable I/O of MOAB meshes and associated data. If MPI is enabled, HDF5 should be built with parallel support. HDF5 support allows you to output any E3SM state maintained by MOAB in h5m files, which are tremendously useful in debugging as they can be directly visualized with VisIt using the MOAB plugin (on a sphere and with the exact mesh). If you built HDF5 for E3SM (with parallel support), use that to enable HDF5 support in MOAB configuration.

  • NetCDF: MOAB library optionally depends on the NetCDF(-C) libraries to compile the ExodusII reader/writer. If MPI is enabled, then the underlying HDF5 dependency for NetCDF should have parallel support i.e., serial HDF5 dependency will not pass internal configuration checks. If you built the NetCDF library for E3SM, consistently use that installation to enable NetCDF support in MOAB.

...