Understand your Parallel Performance with EPPA.

Experimental Parallel Performance Analysis

"The main purpose of parallel processing is to get the job done in less time. EPPA wants to serve the user understandable and clear insight in the performance of his parallel program."

EPPA explains in different views the performance of your parallel program:

View 1. The timeline shows the program execution of each process (here: parallel matrix multiplication of 2 WxW matrices):

View 2. The resulting performance (here: WorkSize W= size of matrices):
View 3. The cost of each phase per process:
View 4. Performance/overhead in function of number of processors:
View 5. Performance/overhead in function of matrix size W:
 and much more...

EPPA asks little, but returns a lot!


program information
1. The different phases of the program, like useful computation, partitioning, ... Cost of each phase, its impact on the performance View 3
2. The experiment parameters, like #processors, work size, hardware, ... Multiple experiment analysis:
measurements in function of parameters
View 4 & 5
3. The #quantums processed and communicated in each phase Time of the phases in function of #quantums ok
4. The #operations that are computed in each phase #operations per quantum
Time of phases in function of #basic operations

Similar tracing tools are XPvm, XMPI and especially SCALEA. XPvm and XMPI automatically trace the computation-communication-idle phases of the execution profile, whereas EPPA and SCALEA needs manual insertion of measurement code. Like EPPA, these tools show the timeline and the cost of the different phases, but EPPA let the user add extra information about the program.
SCALEA and other tools use and analyse hardware counters. We don't, but these approaches could be integrated with EPPA. The rationale of this is that EPPA will only give a first-order analysis (explanation of this will be added soon...) that is easier to understand for non-experts, it will also indicate when a first-order approximation is inaccurate and a deeper analysis is necessary.

More on tools: ASKALON, APART, Performance API (PAPI), The Parallel Tools Consortium, performance tools review, parallel application software


See Jan Lemeire's publications.
Performance metrics for hetereogeneous systems are explained in the paper Adaptive Load Balancing of Parallel Applications with Multi-Agent Reinforcement Learning on Heterogeneous Systems.
Upcoming: Report on Parallel Performance. 

User Documentation (on our LINUX-C++-pvm system)

EPPA is at present only available on our system...


Also Check: project topics on parallel processing.