Annotated subroutines don't show up in OTF2 traces when executed by IO_pool_executor
Description of issue: Using APEX (develop branch) with HPX (version 1.10.0, build_type=RelWithDebInfo), generated OTF2 trace does not capture subroutine/function executed by "io_pool_executor".
Relevant software used to build HPX:
- GCC, ver. 13.3.0
- hwloc, ver. 2.10.0
- OpenMPI, ver. 5.0.5
- Boost, ver. 1.86.0
- jemalloc, ver. 5.3.0
- OTF2, ver. 3.1
- PAPI, ver. 7.1.0
HPX configuration options: CMAKE_BUILD_TYPE=RelWithDebInfo CMAKE_POLICY_VERSION_MINIMUM=3.5 CMAKE_CXX_COMPILER=g++ HPX_WITH_PAPI=TRUE HPX_WITH_FETCH_APEX=TRUE HPX_WITH_APEX=TRUE HPX_WITH_APEX_TAG=develop HPX_WITH_PARCELPORT_ACTION_COUNTERS=TRUE HPX_WITH_THREAD_IDLE_RATES=TRUE HPX_WITH_MALLOC=jemalloc HPX_WITH_HWLOC=TRUE HPX_WITH_NETWORKING=TRUE HPX_WITH_PARCELPORT_TCP=FALSE HPX_WITH_PARCELPORT_MPI=TRUE HPX_WITH_TESTS=FALSE HPX_WITH_EXAMPLES=TRUE HPX_WITH_MAX_CPU_COUNT=256 HPX_WITH_FETCH_ASIO=TRUE HPX_WITH_CUDA=TRUE APEX_WITH_CUDA=TRUE APEX_WITH_OTF2=TRUE OTF2_ROOT=...
Compilation & execution of example program:
- mkdir build && cd build && cmake ..
- cmake --build .
- export APEX_OTF2=1
- execution can be done on any number of locality and expected os_threads.
Comments: The relevant line in the source code is line 38 and 39. Provided source code is missing "internal_print" annotation. Commenting line 39 and uncommenting line 38 should provide a trace with "internal_print" shown.
Source code: IO_MWE.tar.gz
Vampir results:
-
Not using IO_pool_executor
-
with IO_pool_executor
This is a question for @khuck, he may be able to look into this.