Integration within Caliper

UMap can be integrated into the Caliper: A Performance Analysis Toolbox in a Library for providing page access pattern profiling. We describe the steps for leveraging UMap in Caliper as follows:

  • Install Caliper from https://github.com/LLNL/Caliper.git to <CALIPER_INSTALL_PATH>

  • Build UMap by running cmake with -Dcaliper_DIR=<CALIPER_INSTALL_PATH>/share/cmake/caliper

  • An example application is provided in /tests/caliper_trace. Make sure it is compiled

  • Enable the page fault tracing before running the program to be profiled as follows

export CALI_SERVICES_ENABLE=alloc,event,trace,recorder
export CALI_ALLOC_TRACK_ALLOCATIONS=true
export CALI_ALLOC_RESOLVE_ADDRESSES=true
  • This should produce a .cali output file with an automatically generated filename, e.g., “200611-155825_69978_QSZC2zryxwRh.cali”.

Now we describe how to analyze the profiling results. To simply print all records captured from Caliper, simply use:

cali-query -t <filename>

For advanced queries, e.g. count the number of page faults per memory region:

cali-query -q "select alloc.label#pagefault.address,count() group by alloc.label#pagefault.address where pagefault.address format table" <filename>