Installing

The recommended way to install the HEPnOS and its dependencies is to use Spack. Spack is a package management tool designed to support multiple versions and configurations of software on a wide variety of platforms and environments.

Installing Spack and the Mochi repository

First, you will need to install Spack as explained here. Once Spack is installed and available in your path, clone the following git reporitory and add it as a Spack namespace.

git clone https://github.com/mochi-hpc/mochi-spack-packages.git
spack repo add mochi-spack-packages

You can then check that Spack can find HEPnOS by typping:

spack info hepnos

You should see something like the following.

CMakePackage:   hepnos

Description:
    Object store for High Energy Physics, build around Mochi components

Homepage: https://github.com/hepnos/HEPnOS
... (more lines follow) ...

Installing HEPnOS

Installing HEPnOS is then as simple as typping the following.

spack install hepnos

Loading and using HEPnOS

Once installed, you can load HEPnOS using the following command.

spack load hepnos

This will load HEPnOS and its dependencies (Mercury, Thallium, Argobots, etc.). You are now ready to use HEPnOS!

Using the HEPnOS client library with cmake

Within a cmake project, HEPnOS can be found using:

find_package(hepnos REQUIRED)

You can now link targets as follows.

add_executable(my_hepnos_client source.c)
target_link_libraries(my_hepnos_client hepnos)

Using the HEPnOS client libraries with pkg-config

Support for pkg-config is still preliminary and not completely supported. Once loaded into your working environment, pkg-config --libs --cflags hepnos will give you the CFLAGS and LDFLAGS you need to link your code against HEPnOS. However this command will not give you CFLAGS or LDFLAGS for the Boost serialization library, which does not itself support pkg-config. You will have to add these manually.