Skip to content

Commit

Permalink
Update docs for v0.6.0 (#337)
Browse files Browse the repository at this point in the history
* add new page on CI testing

* Edits to docs

* Edit UnitTesting.rst

* More edits to docs

* Add missing fullstop

* More edits to UnitTesting.rst

* More edits to docs

* More edits to VariorumTools

* edit docs

Co-authored-by: Stephanie Brink <[email protected]>
Co-authored-by: Tapasya Patki <[email protected]>
  • Loading branch information
3 people authored Sep 15, 2022
1 parent 1306171 commit b76a6f9
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 6 deletions.
39 changes: 39 additions & 0 deletions src/docs/sphinx/UnitTesting.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
..
# Copyright 2019-2022 Lawrence Livermore National Security, LLC and other
# Variorum Project Developers. See the top-level LICENSE file for details.
#
# SPDX-License-Identifier: MIT
#####################
Variorum Unit Tests
#####################

Variorum code is regularly tested on a diverse set of architectures, including
several Intel platforms (such as Broadwell, Haswell, Skylake, Ice Lake), IBM
Power 9, ARM Juno r2, NVIDIA Volta GPUs, and AMD Instinct GPUs. Variorum's unit
tests are run externally on GitHub, as well as internally on our Livermore
Computing clusters through GitLab.

For Variorum pull requests, we use GitHub Actions for CI testing, the worflow
can be found here: `Variorum GitHub Actions
<https://github.com/LLNL/variorum/actions>`_.

Additionally, we utilize `GitLab <https://lc.llnl.gov/gitlab>`_ runners on our
internal clusters for further CI testing on known hardware architectures, such
as Quartz, Lassen, and Corona `(see clusters at LLNL)
<https://hpc.llnl.gov/hardware>`_.

Within one of our GitLab runners, we are also leveraging `Ansible
<https://www.ansible.com/>`_ to expand our CI testing across an additional set
of hardware architectures. These systems require specific requests and
permissions to gain access.

As part of Variorum's CI testing, we cover the following:

- Verifying compliance of code format for C/C++, RST, and Python files
- Building Variorum with different versions of ``gcc`` compiler
- Building Variorum with different CMake build options
- Building Variorum using `Spack mirrors
<https://github.com/llnl/variorum-spack-mirrors/>`_
- Running Variorum's unit tests and examples (for example, ``make test`` and
``variorum-print-power-example``)
15 changes: 14 additions & 1 deletion src/docs/sphinx/VariorumAPI.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
##############

Variorum supports vendor-neutral power and energy management through its rich
API. Please refer to the top-level API, as well as the specific descritptions of
API. Please refer to the top-level API, as well as the specific descriptions of
the JSON API and the Best Effort Power Capping API. The JSON API allows system
software interacting with Variorum to obtain data in a portable, vendor-neutral
manner.
Expand All @@ -27,6 +27,19 @@ implementations in Variorum are described in the following sections:
- :doc:`api/json_support_functions`
- :doc:`api/enable_disable_functions`

*******************
Variorum Wrappers
*******************

As of v0.6.0, Variorum also supports Fortran and Python APIs for Variorum, these
can be found in the ``src/wrappers`` directory. By default, these wrappers will
be enabled. The Fortran wrapper is built and installed if Fortran is found and
enabled. For the Python module (called ``pyVariorum``), a ``pip`` based install
or setting of ``PYTHONPATH`` is needed. Please refer to the ``README`` in the
``src/wrappers/python`` directory for the details. Examples on the usage of
these wrappers can be found in the ``src/examples/fortran-examples`` and the
``src/examples/python-examples`` directories, respectively.

**********
JSON API
**********
Expand Down
15 changes: 10 additions & 5 deletions src/docs/sphinx/VariorumTools.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,14 @@ manner.

Current integration efforts include a `Kokkos <https://kokkos.org>`_ connector
for power monitoring, a `Caliper <https://software.llnl.gov/Caliper/>`_ service
for method-level power data, and a `Flux <http://flux-framework.org>`_ power
management module for scheduling. Upcoming integration also includes developing
a Variorum interface for `PowerAPI <https://pwrapi.github.io>`_, `Intel's GEOPM
<https://geopm.github.io>`_ and `Sandia's OVIS Lightweight Distributed Metric
Service (LDMS) <https://github.com/ovis-hpc/ovis-wiki/wiki>`_.
for method-level power data, a `Flux <http://flux-framework.org>`_ power
management module for scheduling, and `Sandia's OVIS Lightweight Distributed
Metric Service (LDMS) <https://github.com/ovis-hpc/ovis-wiki/wiki>`_ monitoring
plugin. These enable Variorum to be used at scale across multiple layers of the
PowerStack, application/user layer, resource management layer, and system-level
layer. Upcoming integrations also include developing a Variorum interface for
`PowerAPI <https://pwrapi.github.io>`_ and `Intel GEOPM
<https://geopm.github.io>`_.

Links to Variorum's integrations with each of these frameworks can be found
below. Note that these integrations are in early development stages and are
Expand All @@ -40,6 +43,8 @@ expected to be updated to support more features and tests.
<https://github.com/LLNL/Caliper/tree/master/src/services/variorum>`_
- `Flux System Power Manager Module with Variorum
<https://github.com/flux-framework/flux-power-mgr>`_
- `LDMS Power Monitoring Plugin with Variorum
<https://github.com/ovis-hpc/ovis/tree/OVIS-4/ldms/src/contrib/sampler>`_

*************************************
Contributing Integrations with JSON
Expand Down
1 change: 1 addition & 0 deletions src/docs/sphinx/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ the nation's exascale computing imperative.

ContribGuide
VariorumDevel
UnitTesting
VariorumTools

.. toctree::
Expand Down

0 comments on commit b76a6f9

Please sign in to comment.