Getting Started¶
Download and Install¶
A local build and installation provides greater control over build options and optimization. HONEE is open-source and can be downloaded from the HONEE repository on GitLab.
$ git clone https://gitlab.com/phypid/honee
Prerequisites¶
HONEE is based upon libCEED and PETSc.
libCEED¶
HONEE requires libCEED’s main development branch, which can be cloned from Github.
$ git clone https://github.com/CEED/libCEED
$ make -j8 -C libCEED
The above will be enough for most simple CPU installations; see the libCEED documentation for details on using GPUs, tuning, and more complicated environments.
PETSc¶
HONEE requires PETSc’s main development branch, which can be cloned from GitLab.
$ git clone https://gitlab.com/petsc/petsc
Follow the PETSc documentation to configure and build PETSc.
It is recommended that you install with CGNS library support using --download-hdf5 --download-cgns.
Building¶
The environment variables CEED_DIR, PETSC_DIR, and PETSC_ARCH must be set to build HONEE.
Assuming you have cloned the HONEE repository as above, build using:
$ export CEED_DIR=[path to libCEED] PETSC_DIR=[path to PETSc] PETSC_ARCH=[PETSc arch]
$ make -j8
To run a sample problem, run:
$ build/navierstokes -options_file examples/gaussianwave.yaml
To test the installation, use
$ make test -j8
Demo Build¶
Here we walk through a complete, step-by-step demonstration of building and installing HONEE and its dependencies. This will be aimed at the minimal-viable install; better performance may be gained from different configurations, compiler flags, etc. As such, it will only target a CPU installation of HONEE.
Generally, we assume that the system you’re installing on has a pre-existing installation of MPI loaded into the environment.
If this is not true, you can add a --download-mpich flag to PETSc’s configuration command to have PETSc build and install MPICH.
$ export CC=mpicc CXX=mpicxx # PETSc and libCEED will use these environment variables to select compiler
$ mkdir honee_build_dir
$ cd honee_build_dir
$ ## Build PETSc
$ git clone https://gitlab.com/petsc/petsc
$ cd petsc
$ export PETSC_DIR=$PWD PETSC_ARCH=arch-linux-c-opt
$ ./configure \
--with-fc=0 \
--download-f2cblaslapack \
--download-hdf5 \
--download-cgns \
--with-debugging=0 \
COPTFLAGS='-O3 -g -march=native' \
CXXOPTFLAGS='-O3 -g -march=native'
$ make -j
$ ## Build libCEED
$ cd ..
$ git clone https://github.com/CEED/libCEED
$ cd libCEED
$ make -j
$ ## Build HONEE
$ cd ..
$ git clone https://gitlab.com/phypid/honee
$ cd honee
$ make -j