Score-P is a profiling software for parallel codes. [[ http://www.vi-hps.org/projects/score-p/ | Download from here ]] [[ https://silc.zih.tu-dresden.de/scorep-current/html/index.html | More documentation here ]] ====== On Cooley ====== * Do the usual ''configure --prefix=$PWD/install'', ''make'', ''make install''. * ''export PATH=$PWD/install/bin:$PWD'' * Recompile the code you want to profile by replacing all ''gcc'' with ''scorep gcc'' everywhere (or ''g++'' by ''scorep g++''). * Score-P uses environment variables to control it. [[ https://silc.zih.tu-dresden.de/scorep-current/html/scorpeconfigvariables.html | A full list is here. ]] * These two tell Score-P if it should do Profiling or Tracing. I don't think you can do both at the same time. I've had trouble getting Tracing to work, but if you can use it, it is the mode that produced output for Vampir. Tracing uses a lot of disk space. Profiling gives you information like global time spent in functions and rank-wise usage. * ''SCOREP_ENABLE_PROFILING=true'' produces output for "Cube" * ''SCOREP_ENABLE_TRACING=false'' produces output for "Vampir". * ''SCOREP_TOTAL_MEMORY=10G'' (default is 16M) this is the amount I had to use for Sherpa on Cooley. * ''SCOREP_PROFILING_MAX_CALLPATH_DEPTH=50'' (default is 30) Score-P complained that Sherpa had a depth of 38!! * Run your code... * You'll notice a ''scorep__