Scalasca SCalable performance Analysis of LArge SCale Applications

Scalasca SCalable performance Analysis of LArge SCale Applications

Introduction

Scalasca (SCalable performance Analysis of LArge SCale parallel Applications) is an open-source project developed in the Jülich Supercomputing Centre (JSC) which focuses on analyzing OpenMP, MPI and hybrid OpenMP/MPI parallel applications, yet presenting an advanced and user-friendly graphical interface. Scalasca can be used to help identify bottlenecks and optimization opportunities in application codes by providing a number of important features: profiling and tracing of highly parallel programs; automated trace analysis that localizes and quantifies communication and synchronization inefficiencies; flexibility (to focus only on what really matters), user friendliness; and integration with PAPI hardware counters for performance analysis.

 

Current VersionPlatforms
2.3.1 SuperMUC, MPP2 Linux Cluster

Usage

First you need to adjust your environment;

module add scalasca 

In order to have all binaries and libraries needed easily accessible. The use of Scalasca consist of 3 phases:

  1. Instrument: (skin)

    Prepare and link the application with the measurement libraries. Normally you modify compile and link commands in a Makefile or by invoking configure. For example, replace

    mpicc -o foo [some options] foo.c 
    with
    scalasca -instrument mpicc -o foo [some options] foo.c 

    to produce an instrumented binary that is ready to be executed. Scalasca commands have an alias, such as skin for scalasca -instrument, so you can alternatively use:

    skin mpicc -o foo [some options] foo.c 
    If you want to trace OpenMP programs you have to use the corresponding compiler switch:
    skin mpif90 -openmp [some options] foo.f90 

    Note: The ‘scalasca -instrument’ or ‘skin’ command is deprecated and only provided for backwards compatibility with Scalasca 1.x. It is recommended to use Score-P instrumenter directly

    
    
  2. Analyze: (scan)

    Please Note: The monitoring system running on every node will carry out measurements every 10 minutes. If you are using PAPI with Scalasca, it is important to switch the measurements off from your job script. Before running the scan command in your script, you should use the command:

    perf_off 

    Invoke the Scalasca measurement collector and analyzer with

    scalasca -analyze mpiexec [some options] foo.exe [some parameters] 
    or
    scan mpiexec [some options] foo.exe [some parameters] 
    which collects measurement data in a new folder, called by default epik_ProgramName_nCPUS_sum. Summarization is performed by default, and tracing is specified via the '-t' flag, e.g.,
    scalasca -analyze -t mpiexec [some options] foo.exe [some parameters] 

    Measurements collected by Scalasca are also configured through environment variables or by specifying them in a file called ./scorep.conf -- for detailed information refer to the Scalasca Quick Reference.

  3. Examine: (square) Before starting the Scalasca's graphical interface, the png module must be loaded; otherwise an error regarding the libpng.so library will be shown. To load the png module use the following:
    module add png 
    Start the Scalasca's graphical user interface with
    scalasca -examine scorep_ProgramName_nCPUS_sum 

    or

    square scorep_ProgramName_nCPUS_sum 
    Scalasca_cube3 

to explore the analysis report, as in the picture. 

  1. Additional Information