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

Reply via email to