Multi Application Online Profiling

Dependencies

Principle

Instrument one or several MPI program using an online analyzer which performs online data reduction. Then visualize measurements in an interactive HTML interface.

Instalation

First make sure that you have all the depencies installed somewhere on the system or in the target prefix.

Then run :

    mkdir BUILD
    cd BUILD
    ../configure --prefix=$HOME/malp
    make -j8
    make install

Usage

  1. Launch your app in MPMD with the analyzer:

    mpirun -np 64 malp APP [APP_ARGS] : -np 64 malp_an
    
  2. Launch the analysis server:

    MALP_PORT=8080 malp_server
    
  3. Open your default browser to this page:

    x-www-browser http://127.0.0.1:8080
    
  4. Go to the performance catalog and upload the MALP_trace.json file generated during step 1

  5. Load the newly upload trace from the performance catalog

  6. Explore your trace =)

EXTRA

  1. You can write a config file configuring instrumentation with:

    malp_an -w
    
  2. Edit the file ./malp_an.conf for example to activate POSIX instrumentation

MAP PLUGINS

  1. MALP installs sample plugins in the $PREFIX/lib/malp_map_plugins/ directory

  2. To activate MAP plugin support simply export the plugin environment variable:

    export MAP_PLUGIN_PREFIX=$PREFIX/lib/malp_map_plugins/
    
  3. You can change sampling frequency in milliseconds with:

    export MAP_PLUGIN_FREQ=10000
    
  4. If activated you should get an output telling so when running MALP:

    ## Loading MAP plugins :
    Loading plugin 'interrupts.xml' ...
    Loading plugin 'io.xml' ...
    ## Done
    
  5. Data will be available in the MAP Plugins tab of the interface

FAQ

  1. Install fails:

  2. I don't want to run in MPMD, MALP supports a fake MPMD mode with --enable-mpmd-compat

  3. I want to pack node.js and the analysis server in a single static executable (malp_server) while encrypting the JavaScript code: use the --enable-node-embedding flag.

Contact

Jean-Baptiste BESNARD jbaptistebesnard@gmail.com