From f7f558140782d2f780d588fa7aa638469c510da8 Mon Sep 17 00:00:00 2001 From: Lars Jitschin <Lars.Jitschin@tu-dresden.de> Date: Thu, 1 Jul 2021 11:33:58 +0200 Subject: [PATCH] ScoreP page zu Markdown --- doc.zih.tu-dresden.de/docs/software/ScoreP.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 doc.zih.tu-dresden.de/docs/software/ScoreP.md diff --git a/doc.zih.tu-dresden.de/docs/software/ScoreP.md b/doc.zih.tu-dresden.de/docs/software/ScoreP.md new file mode 100644 index 000000000..f30ea7553 --- /dev/null +++ b/doc.zih.tu-dresden.de/docs/software/ScoreP.md @@ -0,0 +1,80 @@ +# Score-P + +The Score-P measurement infrastructure is a highly scalable and easy-to-use tool suite for profiling, event tracing, and online analysis of HPC applications. +Currently, it works with the analysis tools Vampir, Scalasca, Periscope, and Tau. +Score-P supports lots of features e.g. + +* MPI, SHMEM, OpenMP, pthreads, and hybrid programs +* Manual source code instrumentation +* Monitoring of CUDA applications +* Recording hardware counter by using PAPI library +* Function filtering and grouping + +Only the basic usage is shown in this Wiki. For a comprehensive Score-P user manual refer to the [Score-P website](https://www.score-p.org/). + +Before using Score-P, set up the correct environment with + +```bash +module load scorep +``` + +To make measurements with Score-P, the user's application program needs to be instrumented, i.e., at specific important points ("events") Score-P measurement calls have to be activated. By default, Score-P handles this automatically. In order to enable instrumentation of function calls, MPI as well as OpenMP events, the user only needs to prepend the Score-P wrapper to the usual compiler and linker commands. The following sections show some examples depending on the parallelization type of the program. + +## Serial programs + +* original: `ifort a.f90 b.f90 -o myprog` +* with instrumentation: `scorep ifort a.f90 b.f90 -o myprog` + +This will instrument user functions (if supported by the compiler) and link the Score-P library. + +## MPI parallel programs + +If your MPI implementation uses MPI compilers, Score-P will detect MPI parallelization automatically: + +* original: `mpicc hello.c -o hello` +* with instrumentation: `scorep mpicc hello.c -o hello` + +MPI implementations without own compilers (as on the Altix) require the user to link the MPI library manually. Even in this case, Score-P will detect MPI parallelization automatically: + +* original: `icc hello.c -o hello -lmpi` +* with instrumentation: `scorep icc hello.c -o hello -lmpi` + +However, if Score-P falis to detect MPI parallelization automatically you can manually select MPI instrumentation: + +* original: `icc hello.c -o hello -lmpi` +* with instrumentation: `scorep --mpp=mpi icc hello.c -o hello -lmpi` + +If you want to instrument MPI events only (creates less overhead and smaller trace files) use the option `--nocompiler` to disable automatic instrumentation of user functions. + +## OpenMP parallel programs + +When Score-P detects OpenMP flags on the command line, OPARI2 is invoked for automatic source code instrumentation of OpenMP events: + +* original: `ifort -openmp pi.f -o pi` +* with instrumentation: `scorep ifort -openmp pi.f -o pi` + +## Hybrid MPI/OpenMP parallel programs + +With a combination of the above mentioned approaches, hybrid applications can be instrumented: +* original: `mpif90 -openmp hybrid.F90 -o hybrid` +* with instrumentation: `scorep mpif90 -openmp hybrid.F90 -o hybrid` + +## Score-P instrumenter option overview +Type of instrumentation | Instrumenter switch | Default value | Runtime measurement control +--- | --- | --- | --- +MPI | `--mpp=mpi` | (auto) | (see Sec. Selection of MPI Groups ) +SHMEM | `--mpp=shmem` | (auto) | — +OpenMP | `--thread=omp` | (auto) | — +Pthread | `--thread=pthread` | (auto) | — +Compiler (see Sec. Automatic Compiler Instrumentation ) | `--compiler/--nocompiler` | enabled | Filtering (see Sec. Filtering ) +PDT instrumentation (see Sec. Source-Code Instrumentation Using PDT ) | `--pdt/--nopdt` | disabled | Filtering (see Sec. Filtering ) +POMP2 user regions (see Sec. Semi-Automatic Instrumentation of POMP2 User Regions ) | `--pomp/--nopomp` | depends on OpenMP usage | Filtering (see Sec. Filtering ) +Manual (see Sec. Manual Region Instrumentation ) | `--user/--nouser` | disabled | Filtering (see Sec. Filtering ) and selective recording (see Sec. Selective Recording ) + +## Application Measurement + +After the application run, you will find an experiment directory in your current working directory, which contains all recorded data. +In general, you can record a profile and/or a event trace. Whether a profile and/or a trace is recorded, is specified by the environment variables [`SCOREP_ENABLE_PROFILING`](https://silc.zih.tu-dresden.de/scorep-current/html/scorepmeasurementconfig.html#SCOREP_ENABLE_PROFILING) and [`SCOREP_ENABLE_TRACING`](https://silc.zih.tu-dresden.de/scorep-current/html/scorepmeasurementconfig.html#SCOREP_ENABLE_TRACING) . If the value of this variables is zero or false, profiling/tracing is disabled. Otherwise Score-P will record a profile and/or trace. By default, profiling is enabled and tracing is disabled. For more information please see [the list of Score-P measurement configuration variables](https://silc.zih.tu-dresden.de/scorep-current/html/scorepmeasurementconfig.html). + +You may start with a profiling run, because of its lower space requirements. According to profiling results, you may configure the trace buffer limits, filtering or selective recording for recording traces. +Score-P allows to configure several parameters via environment variables. After the measurement run you can find a scorep.cfg file in your experiment directory which contains the configuration of the measurement run. If you had not set configuration values explicitly, the file will contain the default values. \ No newline at end of file -- GitLab