
Use Cases
---------

GEOPM comes with tools and software interfaces to access its
features. This page outlines some of the use cases that are available
across those interfaces.


Hardware Telemetry
~~~~~~~~~~~~~~~~~~

Provide user-level access to hardware telemetry with high bandwidth and low
latency.


Hardware Configuration
~~~~~~~~~~~~~~~~~~~~~~

Provide user-level configuration of hardware settings without impacting
quality of service for other users of a shared system.


Software Telemetry
~~~~~~~~~~~~~~~~~~

Collect software telemetry from distributed highly threaded applications while
incurring a low-overhead.  Provide access to this telemetry while the
application is active to enable online optimizations.  Interfaces to read the
telemetry are provided as an event log with compression of data bursts and
also a low-latency low-contention sampling interface.


Runtime Tools
~~~~~~~~~~~~~

Run a process on each compute node used by a distributed High Performance
Computing (HPC) workload.  This process uses hardware and software telemetry
to choose optimal settings for hardware.


Access Management
~~~~~~~~~~~~~~~~~

Provide system administrators with a fine-grained access management interface
that grants permissions to individual telemetry readings and control
settings based on Linux membership in user group, cgroup or
capability.


Use Cases
---------

GEOPM comes with tools and software interfaces to access its
features. This page outlines some of the use cases that are available
across those interfaces.


Hardware Telemetry
~~~~~~~~~~~~~~~~~~

Provide user-level access to hardware telemetry from hetergenous components
with high bandwidth and low latency.  Examples of the telemetry accessble on
some systems include hardware performance counters, thermal measurements, and
energy meters.


Hardware Configuration
~~~~~~~~~~~~~~~~~~~~~~

Provide user-level configuration of hardware settings without impacting
quality of service for other users of a shared system.  Examples of some
system configurations that are possible include setting limits for CPU or GPU
frequency, limiting power used by processors, or configuring priority cores
for turbo frequency enhancement.


Software Telemetry
~~~~~~~~~~~~~~~~~~

Collect software telemetry from distributed highly threaded applications while
incurring a low-overhead.  Provide access to this telemetry while the
application is active to enable online optimizations.  Interfaces to read the
telemetry are provided as an event log with compression of data bursts and
also a low-latency low-contention sampling interface.


Runtime Tools
~~~~~~~~~~~~~

Run a process on each compute node used by a distributed High Performance
Computing (HPC) workload.  This process uses hardware and software telemetry
to choose optimal settings for hardware.  The algorithm used for optimization
is a plugin interface that can be extended to reflect site or user
requirements.


Access Management
~~~~~~~~~~~~~~~~~

Provide system administrators with a fine-grained access management interface
that grants permissions to individual telemetry readings and control
settings based on Linux membership in user group, cgroup or
capability.

Add more detail to the use cases page
Add more detail to the use cases page

Signed-off-by: Christopher M. Cantalupo <9cf3ecca60a3dd7112ab0e7250bedb8a752e3958@intel.com>
