Skip to content

Commit

Permalink
Merge 1074c21 into 9f27280
Browse files Browse the repository at this point in the history
  • Loading branch information
ChristopherHogan committed Jun 10, 2022
2 parents 9f27280 + 1074c21 commit a33857a
Showing 1 changed file with 30 additions and 21 deletions.
51 changes: 30 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,41 @@ Hermes is a heterogeneous-aware, multi-tiered, dynamic, and distributed I/O buff
## Dependencies
* A C++ compiler that supports C++ 17.
* [Thallium](https://mochi.readthedocs.io/en/latest/installing.html) - RPC library for HPC. Use a version greater than `0.5` for RoCE support.
* [GLOG](https://github.com/google/glog) - The Google logging library (`v0.4.0`). (If you install the ORTOOLS binary, GLOG is included).
* Google ORTOOLS for constraint optimization (tested with `v7.7.7810`).
* Download the [OR-Tools binary distribution for C++](https://developers.google.com/optimization/install/cpp).
* Setup `ORTOOLS_DIR` as a cmake environment variable.
* [GLOG](https://github.com/google/glog) - The Google logging library.
* [GLPK](https://www.gnu.org/software/glpk/) - GNU Linear Programming Kit
* MPI (tested with MPICH `3.3.2` and OpenMPI `4.0.3`).
* The [Catch2](https://github.com/catchorg/Catch2) testing framework (only required if built with `-DBUILD_TESTING=ON`)

## Building

### Spack

[Spack](https://spack.io/) is the easiest way to get Hermes and all its dependencies installed.

```bash
# Install spack if you don't already have it
SPACK_DIR=~/spack
git clone https://github.com/spack/spack ${SPACK_DIR}
. ${SPACK_DIR}/share/spack/setup-env.sh
spack install hermes
```

If this doesn't work, the Hermes and Mochi spack recipes might be out of sync
with the version of spack you're using. In that case, you can try the most
up-to-date repos.

```bash
# set location of hermes_file_staging
STAGE_DIR=~/hermes_stage
MOCHI_REPO=${STAGE_DIR}/mochi
HERMES_REPO=${STAGE_DIR}/hermes
git clone https://github.com/mochi-hpc/mochi-spack-packages.git ${MOCHI_REPO}
git clone https://github.com/HDFGroup/hermes ${HERMES_REPO}
spack repo add ${MOCHI_REPO}
spack repo add ${HERMES_REPO}/ci/hermes
spack install hermes
```

### CMake
Hermes makes use of the CMake build system and requires an out of source build.

Expand All @@ -42,23 +68,6 @@ Type 'c' to configure until there are no errors, then generate the makefile with
```
After the makefile has been generated, you can type `make -j 4` or `cmake --build . -- -j 4`. Add `VERBOSE=1` to see detailed compiler output.

### spack
```bash
# set location of current spack to SPACK_DIR or clone it.
SPACK_DIR=~/spack
git clone https://github.com/spack/spack ${SPACK_DIR}
# set location of hermes_file_staging
STAGE_DIR=~/hermes_stage
# no change from this point
MOCHI_REPO=${STAGE_DIR}/mochi
HERMES_REPO=${STAGE_DIR}/hermes
git clone https://github.com/mochi-hpc/mochi-spack-packages.git ${MOCHI_REPO}
git clone https://github.com/HDFGroup/hermes ${HERMES_REPO}
. ${SPACK_DIR}/share/spack/setup-env.sh
spack repo add ${MOCHI_REPO}
spack repo add ${HERMES_REPO}/ci/hermes
spack install hermes
```

### Testing and Installation

Expand Down

0 comments on commit a33857a

Please sign in to comment.