The top-level organization of the git repository is grouped into into three primary categories:

components/

docs/

tests/

Components

The components/ directory houses all of the build-related and packaging collateral for each individual packages currently included within OpenHPC. This generally includes items such as RPM .spec files and any patches applied during the build. Note that packages are generally grouped by functionality and the following functional groupings have been identified:

admin/ – administrative tools

compiler-families/ – compiler toolchains for which development libraries are built against

dev-tools/ – a variety of companion development-oriented tools

distro-packages/ – OS/distro related packages (these are generally included as dependencies for other OpenHPC packages)

io-libs/ – variety of I/O libraries

lustre/ – Lustre client

mpi-families/ – MPI toolchains for which parallel development libraries are built against

parallel-libs/ – variety of parallel development/scientific libraries

perf-tools/ – collection of performance-analysis tools

provisioning/ – tools for bare-metal provisioning

rms/ – resource management services

serial-libs/ – collection of (non-MPI) libraries

Note that the above functionality groupings are also used to organize work-item issues on the OpenHPC GitHub site via labels assigned to each component.

Documentation

The docs/ directory in the GitHub repo houses related installation recipes that leverage OpenHPC packaged components. The documentation is typeset using LaTeX and companion parsing utilities are used to derive automated installation scripts directly from the raw LatTeX files in order to validate the embedded instructions as part of the continuous integration (CI) process. Copies of the latest documentation products are available on the Downloads page.

Tests

An important aspect of the OpenHPC effort is the companion integration testing effort that is performed. To help support this effort, the tests/ directory houses a standalone integration test that is used during the CI process. This test harness is autotools based and is intended to test some basic functionality of OpenHPC provided components post-installation. To mimic end-user usage, it makes extensive use of the underlying resource manager and the modules system to perform compilation/execution against packaged development libraries. The test harness has two modes of operation which are designed to cover a broad spectrum of tests: