All of the source collateral related to the OpenHPC integration effort is managed with git and is hosted on GitHub at the following location:

GitHub-Mark-32px

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:

  • tests requiring elevated credentials
  • tests as a normal user

overview