On 12/10/19 4:37 PM, Kevin Huck wrote: > In order to collect and write the OTF2 trace, please set the environment > variable APEX_OTF2=1. For example: > > export APEX_OTF2=1 > ./apex_fibonacci > > or > > APEX_OTF2=1 ./apex_fibonacci
Yes, that works fine. Maybe I am wrong, but I think this also used to work: APEX_OTF2=1 ./<my_hpx_program> without explicitly instrumenting my_hpx_program code with APEX calls. This currently does not work though. I figured out that to get an APEX trace I have to include <apex_api.hpp> and call hpx::register_startup_function(&apex::print_options), before calling hpx::init. (Only) than my hpx program dumps a trace. I am happy with that. I can now analyze the trace. My point is that I am pretty sure that before 1.4.0 I did not have to change my code to get a (default) trace from APEX. This example from the APEX doc does not work with 1.4.0-rc2: APEX_SCREEN_OUTPUT=1 ./fibonacci No trace is printed to the screen. Also, except for apex_fibonacci, non of the hpx examples is linked to libhpx_apex.so. In the case of my_hpx_program, the binary is linked to libhpx_apex.so only when I explicitly call an APEX api function. Before that it isn't linked to libhpx_apex.so. To generate a minimal/default APEX trace from an HPX program its seems these are the steps: 1. Build HPX with support for APEX 2. Call an APEX api function to make the program link to libhpx_apex.so 3. Generate trace Is step 2 really necessary? Is there a better way to trigger the link to libhpx_apex.so? Kor _______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
