- 
                Notifications
    
You must be signed in to change notification settings  - Fork 5
 
Profiling
The AllScale API comes with its own small shared memory reference runtime to be used for the standard toolchain. This runtime supports the generation of profile logs that provide insights into the performance (bottlenecks) of AllScale applications.
To enable profiling, the flag ENABLE_PROFILING needs to be set when running cmake:
cmake -DENABLE_PROFILING=ON path-to-source
For performance debugging only, it might be useful to also disable assertions when conducting measurements:
cmake -DENABLE_PROFILING=ON -DUSE_ASSERT=OFF path-to-source
To generate profile logs, simply run an application that uses the reference runtime (and that was compiled with profiling support), for example a 2D heat stencil
NUM_WORKERS=8 ./heat_2d_api_pfor_collapsed_allscale
and it will generate profile log files
profile_log.0000
profile_log.0001
profile_log.0002
profile_log.0003
profile_log.0004
profile_log.0005
profile_log.0006
profile_log.0007
The log files previously generated can be parsed by the allscale-perf tool (to be found at api/allscale-perf in your build folder) which creates a JavaScript-based visualization of the data. Simply run
api/allscale-perf
in the directory that holds the profile logs, and it will generate a report.html.

The example visualization shows a two-dimensional heat stencil with ten time loop iterations.
Part of the AllScale project - http://www.allscale.eu