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_HASHThe 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_edefined in geopm_hash.h for more information.Aggregation: region_hash
Domain: cpu
Format: hex
Unit: hash of region name
PROFILE::REGION_HINTThe 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_NETWORKand 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_edefined in geopm_hint.h for more information.Aggregation: region_hint
Domain: cpu
Format: hex
Unit: geopm_region_hint_e
PROFILE::REGION_PROGRESSSum 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_HASHsignal aggregated to the same domain resolves toGEOPM_REGION_HASH_UNMARKED.Aggregation: sum
Domain: cpu
Format: float
Unit: progress percentage
PROFILE::TIME_HINT_UNKNOWNThe 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_UNSETThe 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_COMPUTEThe 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_MEMORYThe 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_NETWORKThe 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_IOThe 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_SERIALThe 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_PARALLELThe 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_IGNOREThe 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_HASHMaps to
PROFILE::REGION_HASHREGION_HINTMaps to
PROFILE::REGION_HINTREGION_PROGRESSMaps to
PROFILE::REGION_PROGRESSTIME_HINT_UNKNOWNMaps to
PROFILE::TIME_HINT_UNKNOWNTIME_HINT_UNSETMaps to
PROFILE::TIME_HINT_UNSETTIME_HINT_COMPUTEMaps to
PROFILE::TIME_HINT_COMPUTETIME_HINT_MEMORYMaps to
PROFILE::TIME_HINT_MEMORYTIME_HINT_NETWORKMaps to
PROFILE::TIME_HINT_NETWORKTIME_HINT_IOMaps to
PROFILE::TIME_HINT_IOTIME_HINT_SERIALMaps to
PROFILE::TIME_HINT_SERIALTIME_HINT_PARALLELMaps to
PROFILE::TIME_HINT_PARALLELTIME_HINT_IGNOREMaps to
PROFILE::TIME_HINT_IGNORE
See Also
geopm(7), geopm_pio(7), geopm::IOGroup(3), geopm::Agg(3), geopm_prof(3), geopm::Agent(3)