PAPI_hl_region_end(3)
π PAPI_hl_region_end(3) β from the PAPI manual π
okay bestie, this is the page for PAPI_hl_region_end, and it is literally the βclose out the regionβ icon. no cap. π
πΈ NAME πΈ
PAPI_hl_region_end β Read performance events at the end of a region and store the difference to the corresponding beginning of the region. periodt.
β¨ SYNOPSIS β¨
π Detailed Description π
C Interface:
#include <papi.h>
int PAPI_hl_region_end( const char* region );
π Parameters π
regionβ a unique region name corresponding toPAPI_hl_region_begin.
π Return values π
PAPI_OKβ it worked, slay.PAPI_ENOTRUNβ theEventSetis currently not running or could not determined.PAPI_ESYSβ a system or C library call failed inside PAPI, so see theerrnovariable.PAPI_EMISCβ PAPI has been deactivated due to previous errors.PAPI_ENOMEMβ insufficient memory. oof.
So hereβs the tea: PAPI_hl_region_end reads performance events at the end of a region and stores the difference to the corresponding beginning of the region.
It assumes that PAPI_hl_region_begin was called before.
β οΈ vibe check, do not miss this:PAPI_hl_region_enddoes not stop counting the performance events. Counting continues until the application terminates. Therefore, the programmer can also create nested regions if required. To stop a running high-level event set, the programmer must callPAPI_hl_stop(). Also note: a marked region is thread-local and therefore has to be in the same thread. iykyk.
An output of the measured events is created automatically after the application exits. In the case of a serial, or a thread-parallel application there is only one output file. MPI applications would be saved in multiple files, one per MPI rank. The output is generated in the current directory by default. However, it is recommended to specify an output directory for larger measurements, especially for MPI applications via the environment variable PAPI_OUTPUT_DIRECTORY. In the case where measurements are performed, while there are old measurements in the same directory, PAPI will not overwrite or delete the old measurement directories. Instead, timestamps are added to the old directories.
For more convenience, the output can also be printed to stdout by setting PAPI_REPORT=1. This is not recommended for MPI applications as each MPI rank tries to print the output concurrently. not the group-chat chaos we want.
The generated measurement output can also be converted in a better readable output. The python script papi_hl_output_writer.py enhances the output by creating some derived metrics, like IPC, MFlops/s, and MFlips/s as well as real and processor time in case the corresponding PAPI events have been recorded. The python script can also summarize performance events over all threads and MPI ranks when using the option 'accumulate' as seen below.
π§ Example π§
int retval;
retval = PAPI_hl_region_begin("computation");
if ( retval != PAPI_OK )
handle_error(1);
//Do some computation here
retval = PAPI_hl_region_end("computation");
if ( retval != PAPI_OK )
handle_error(1);
python papi_hl_output_writer.py --type=accumulate
{
"computation": {
"Region count": 1,
"Real time in s": 0.97 ,
"CPU time in s": 0.98 ,
"IPC": 1.41 ,
"MFLIPS /s": 386.28 ,
"MFLOPS /s": 386.28 ,
"Number of ranks ": 1,
"Number of threads ": 1,
"Number of processes ": 1
}
}
π¦ See also π¦
PAPI_hl_region_beginPAPI_hl_readPAPI_hl_stop
π Author π
Generated automatically by Doxygen for PAPI from the source code.
PAPI version 7.2.0.0, dated Wed Jun 25 2025 19:30:48 β thatβs the footer of this PAPI_hl_region_end(3) page, bestie; bye and slay your regions πβ¨
π¦ where this page comes from
- nixos 26.05: papi 7.2.0
- nixpkgs unstable: papi 7.2.0
- opensuse-leap 16.0: papi-devel 7.2.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: papi-devel 7.2.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: papi-devel 7.2.0-160000.2.2 Β· BSD-3-Clause
- ubuntu resolute: libpapi-dev 7.2.0-2 Β· BSD-3-Clause
- ubuntu stonking: libpapi-dev 7.2.0-2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms