Score-P
Scalable Performance Measurement Infrastructure for Parallel Codes (Score-P) is a performance-measurement framework for C, C++, and Fortran applications. It targets applications that use multi-processing (MPI, SHMEM), thread parallelism (OpenMP, Pthreads), or accelerator models (HIP, CUDA, OpenCL, OpenACC, OpenMP-offload), as well as combinations of these. A Python interface is also available for tracing and profiling Python applications.
Score-P currently supports only MPI or SHMEM for multiprocessing.
Other multiprocessing approaches (e.g. Torch distributed methods) cannot be traced.
It also does not support importlib.reload().
Score-P generates trace outputs in OTF2 and CUBE formats, which can be analyzed with tools such as Scalasca, Vampir, TAU, and Periscope.
To instrument an application, the user must recompile it with the Score-P instrumentation wrapper. This wrapper is added as a prefix to the original compile and link commands. Score-P automatically detects the programming paradigm by parsing the original build instructions and selects the appropriate instrumentation methods, cf. Score-P web page.
Usage
Use module spider scorep to list available versions on the cluster, and module spider scorep/<VERSION> to display dependencies for a specific version <VERSION>.
To compile a program, prefix your compile command with scorep:
scorep gcc -o myApp [-fopenmp] myApp.cTo run the instrumented program, prefix the execution with scorep:
scorep ./myAppExample Output (scorep-score)
Below is an example of the output produced by scorep-score, the most basic Score-P analysis tool.
It provides high-level trace information, including total trace size, memory requirements, and per-function statistics such as visit counts and time spent.
