Periscope

Installed versions

Versions Platforms
1.3.2/1.4 SuperMIG

Introduction

Periscope is a scalable automatic performance analysis tool currently under development at Technische Universitaet Muenchen. It consists of a frontend and a hierarchy of communication and analysis agents. Each of the analysis agents, i.e., the nodes of the agent hierarchy, searches autonomously for inefficiencies in a subset of the application processes.

Documentation

More information on Periscope may be found on the webpage of the developers (Periscope) or in the User's Guide which can be found (after loading the module) under $PERISCOPE_ROOT/doc.

Usage

Periscope can be used after loading the module

    module load periscope


This will automatically load the modules

    ace, papi, xerces/3.1


to your environment. (Please note: 'module unload periscope' will unload Periscope, ace, papi, xerces/3.1. The additional modules will be unloaded automatically!)

Before first use of Periscope, you should do the following steps:

  1. Create the configuration file

    Create the configuration file .periscope in your home directory and adapt it. You may copy it from $PERISCOPE_ROOT/doc/periscope.sample It should look like:

        MACHINE = supzero //hostname
        SITE = LRZ
        REGSERVICE_HOST = i01r12s30 //host of registry - i01r12s30 or i01r12s34 for SuperMIG Front-end
        REGSERVICE_PORT = 50001 //port of the registry
        AGENT_BASEPORT = 51000 //first port agent hierarchy
        APPL_BASEPORT = 50002 //first port for application


  2. Install the Periscope GUI for Eclipse

    Add the update site of the plugin:

    • Select: Help -> Install New Software menu.
    • Click on Add at the top right side of the window to display a dialog for adding new update sites.
    • Enter Periscope GUI for the Name field.
    • Enter http://www.lrr.in.tum.de/periscope for the Location field.
    • Click OK to add it and go back to the previous window.


    • Select the update site by entering Periscope GUI in the Work with field.
    • Select the Periscope Toolkit from the table with the provided features and click Next.
    • Eclipse will calculate all dependencies and then it will show a list of all plug-ins to be installed.
    • Click Next to confirm this selection and continue.
    • Accept the license (required by Eclipse for all plug-ins) and click Next again to start the installation.
    • Restart the Eclipse.



The use of Periscope consist of 3 phases:

  1. Instrumentation:

    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

        psc_instrument -s foo.sir -t [granularity] mpicc -o foo [some options] foo.c

    For MPI program with a user region granularity should be changed with

        psc_instrument -s foo.sir -t user,mpi mpicc -o foo [some options] foo.c

    to produce an instrumented binary that is ready to be executed.
    If you want to analyze OpenMP Fortran programs you have to use the corresponding compiler switch:

        psc_instrument -s foo.sir -t user,omp mpif90 -openmp [some options] foo.f90

    Granularity can be specified as parameter of psc_instrumenter or as part of psc_inst_config file. Here are all possible granularities:

        all - every possible entry is instrumented, detailed analysis, high overhead
        user,loop - good for single core analysis of major algorithms implemented as loops
        user,call - good for performance analysis of performance of called functions
        user,loop,call - similar to all, but only for single core performance analysis
        mpi - mpi analysis only
        user,omp,par,sync - OpenMP analysis only
        none - don’t instrument file, might be useful when the instruementer fails on this file
        mod_only - parse the module file, but don’t instrument the file. Is needed when the other instrumented files uses this module

  2. Analysis:

    The Periscope agents and the application processes register with a registry. The registry is started via:

        psc_regsrv &

    The port of the registry will be taken from the environment variable PSC_REGISTRY, from the REGSERVICE_PORT in the configuration file or as argument given at starting of Periscope frontend. It will run on the host where it was started.

        psc_frontend --apprun="./foo -f [program parameters]" [--strategy=strategy] [--mpinumprocs=n] [--ompnumthreads=m] --sir=foo.sir [some other parameters]

    which collects performance problems in a file by default properties.psc.
    For detailed information on parameters refer to the Periscope cheat sheet.

    Please note: The monitoring system running on every node will carry out measurements every 10 minutes. It is therefore important to switch it off from your job script. Before running the psc_frontend, you should use the command:

    perf_off

  3. Analyzing the detected performance properties: (Eclipse GUI)

    The frontend will write the detected bottlenecks by default into the file called properties.psc.
    Start Eclipse with

        eclipse

    to explore the detected bottlenecks, as in the picture
    Open the project and double-click on

        properties.psc

Periscope_GUI

Additional Information