Skip to content

1. Getting Started

Gerd Heber edited this page Nov 3, 2021 · 27 revisions

Building Hermes

  • Do I need to build Hermes? No. -> Docker containers.
  • List the basic dependencies
  • CMake & Spack
    • We don't repeat ourselves
    • See INSTALL.txt

Deploying Resources

Hermes is an application extension. Storage resources are deployed under Hermes control by

  1. Configuring Hermes for your system and application
  2. Making your application "Hermes-aware"

An application can be made aware of Hermes in at three different ways:

  • Through Hermes adapters, LD_PRELOAD-able shared libraries which intercept common I/O middleware calls such as UNIX STDIO, POSIX, and MPI-IO
  • Through an HDF5 virtual file driver (VFD)
  • By directly targeting the Hermes native API

These options represent different use cases and trade-offs, for example, with respect to expected performance gains and required code change.

The role of MPI

Hermes Daemon/Keep-alive Mode

Using Hermes

  • IOR - our sample app.
  • Describe target system & Hermes configuration

IOR supports several I/O APIs (-a option), including POSIX, MPI-IO, and HDF5. Hermes has adapters for POSIX and MPI-IO, and, with a minor code modification (we need to add a non-default HDF5 file access property list), we can use the HDF5 Hermes VFD for sequential IOR runs.

Clone this wiki locally