...
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 readingnc
files. If reading parallelh5m
files, we recommend using the offline partitioning tool withmbpart
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 datastructuresdata-structures.
Configuration and building MOAB from source
...
Run
autoreconf -fi
to generate theconfigure
scriptRun the
./configure --help
script in the top MOAB source directory to see a the list of available configure options.Use
--prefix=INSTALL_DIR
to specify installation directory for MOABOverride default compilers with environment variables or 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
respectivelyIf you have Zoltan installed, use
--with-zoltan=$ZOLTAN_DIR
If you have TempestRemap 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 TempestRemap git repository, master branch).Now execute the
configure
script with desired configuration options either in-source or out-of-source (build) directory.recommended) directory. A typical MOAB configuration command with all TPLs enabled 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
Once configuration with the autotools workflow is complete in the build directory, run the following commands to build the library and verify the build.
...