geopm_pio_profile(7) – Signals and controls for the ProfileIOGroup
Description
The ProfileIOGroup implements the geopm::IOGroup(3) interface to provide signals and controls from the application based on calls to GEOPM’s prof API geopm_prof(3).
The signals defined herein are useful primarily for end-of-run reporting purposes and for implementing new agents via the geopm::Agent(3) interface.
Requirements
This IOGroup’s signals are only exposed while the GEOPM HPC Runtime is running.
The signals are only available to code running within the GEOPM HPC Runtime.
The signals cannot be queried via geopmread
.
Signals
PROFILE::REGION_HASH
The hash (or ID) of the region of code (see geopm_prof(3)) currently being run by all ranks, otherwise
GEOPM_REGION_HASH_UNMARKED
. See the enumgeopm_region_hash_e
defined in geopm_hash.h for more information.Aggregation: region_hash
Domain: cpu
Format: hex
Unit: hash of region name
PROFILE::REGION_HINT
The region hint (see geopm_prof(3)) associated with the currently running region. For any interval when all ranks are within an MPI function inside of a user defined region, the hint will change from the hint associated with the user defined region to
GEOPM_REGION_HINT_NETWORK
. If the user defined region was defined withGEOPM_REGION_HINT_NETWORK
and there is an interval within the region when all ranks are within an MPI function, GEOPM will not attribute the time spent within the MPI function as MPI time in the report files. It will be instead attributed to the time spent in the region as a whole. See the enumgeopm_region_hint_e
defined in geopm_hint.h for more information.Aggregation: region_hint
Domain: cpu
Format: hex
Unit: geopm_region_hint_e
PROFILE::REGION_PROGRESS
Sum of the fractional progress reported by all CPUs over the aggregated domain. When utilizing OpenMP, the per-CPU returned value will be on the interval [0, 1 / num_thread] where num_thread is the number of requested OpenMP threads per rank. When running single-threaded (i.e. not leveraging OpenMP), the per-CPU returned value will either be zero (no active threads), or on the interval [0, 1].
When aggregating this signal to the board domain, the aggregated value will always be on the interval [0, num_rank] where num_rank is equal to the number of ranks (processes) in the run. 0 indicates no progress while 1 (if examining the per-CPU signal) or num_rank (if examining the board aggregated signal) indicates the region is complete.
This signal is not valid outside of a region. Specifically, this signal should be ignored any time the
REGION_HASH
signal aggregated to the same domain resolves toGEOPM_REGION_HASH_UNMARKED
.Aggregation: sum
Domain: cpu
Format: float
Unit: progress percentage
PROFILE::TIME_HINT_UNKNOWN
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_UNSET
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_COMPUTE
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_MEMORY
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_NETWORK
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_IO
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_SERIAL
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_PARALLEL
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
PROFILE::TIME_HINT_IGNORE
The total amount of time that a CPU was measured to be running with this hint value on the Linux logical CPU specified.
Aggregation: average
Domain: cpu
Format: double
Unit: seconds
Controls
This IOGroup does not provide any controls.
Aliases
This IOGroup provides the following high-level aliases:
Signal Aliases
REGION_HASH
Maps to
PROFILE::REGION_HASH
REGION_HINT
Maps to
PROFILE::REGION_HINT
REGION_PROGRESS
Maps to
PROFILE::REGION_PROGRESS
TIME_HINT_UNKNOWN
Maps to
PROFILE::TIME_HINT_UNKNOWN
TIME_HINT_UNSET
Maps to
PROFILE::TIME_HINT_UNSET
TIME_HINT_COMPUTE
Maps to
PROFILE::TIME_HINT_COMPUTE
TIME_HINT_MEMORY
Maps to
PROFILE::TIME_HINT_MEMORY
TIME_HINT_NETWORK
Maps to
PROFILE::TIME_HINT_NETWORK
TIME_HINT_IO
Maps to
PROFILE::TIME_HINT_IO
TIME_HINT_SERIAL
Maps to
PROFILE::TIME_HINT_SERIAL
TIME_HINT_PARALLEL
Maps to
PROFILE::TIME_HINT_PARALLEL
TIME_HINT_IGNORE
Maps to
PROFILE::TIME_HINT_IGNORE
See Also
geopm(7), geopm_pio(7), geopm::IOGroup(3), geopm::Agg(3), geopm_prof(3), geopm::Agent(3)