Overview

MALP is an online performance analysis tools which aims at providing performance insights on parallel applications in a scalable manner. It can be seen as an intermediate between the trace-based approach, storing all events and the profiling approach immediately reducing events. MALP allocated dedicated resources to perform an online event reduction, using possibly user-defined processing with an unified JSON output. MALP also define it own templating language, able to efficiently display in a browser metrics processed by the performance plugins.

principle

As presented in this figure MALP creates an online data-flow from the application to a web-browser. Its purpose is to allow the analysis of fine-grained events while avoiding their storage, doing the analysis as soon as possible in an on-line fashion. It opens interesting possibilities:

  • Direct interaction with a running application
  • Online performance data reduction
  • Performance plugins which can be created by users
  • An online coupling library with a complete stream interface portable over MPI

MALP is made of four main components:

  • An instrumentation library which is preloaded in the target applications
  • A coupling library which relies on the MPI virtualization principle (separating multiple programs in virtualized MPI_COMM_WORLDS, as described P^nMPI http://dx.doi.org/10.1145/1362622.1362663)
  • An analysis library which relies on a data-flow engine to reduce events in target analysis
  • A Node.JS templating and performance metric management engine which displays profiles in a web-browser

One of the strength of MALP is its extensibility, an user can easily implement a performance reduction plugin, coupling it with a dedicated web-page in the Web front-end, in a few lines of code. For more information on the code structure and its extensibility, see the doxygen.