eztrace - inriaeztrace.gforge.inria.fr/papers/posters/2010_eztrace...need for generic performance...
TRANSCRIPT
EZTrace• High performance computing• Parallel applications• Hybrid programming models (MPI + OpenMP, …)
• Complex hardware / software stack• Various programming models (MPI, OpenMP, MPI+OpenMP, …)• Understanding the performance of an application is tedious ➥ Need for generic performance analysis tools
A GENERIC FRAMEWORK FOR PERFORMANCE ANALYSIS
Select your modules• MPI• GNU OpenMP• PThread • Standard I/O (read, write, poll, …)• Dynamic memory allocation (malloc, free, …)• User-defined modules
Easy-to-use script language• Define the functions to instrument• Define their representation• A source-to-source compiler creates the plugin code.
Run your program• No need to modify the program• No need to recompile/relink• Low overhead instrumentation• Functions calls are intercepted • Raw events are recorded• Generates one trace file per process
• No need to modify / recompile your application• Simple script language for describing instrumentation• Low overhead instrumentation
• CUDA / OpenCL plugins• Support for hardware counters (PAPI)• Enhanced analysis of traces
http://eztrace.gforge.inria.fr/
Name fooDESC ''Plugin for the foo library''
int foo(int arg1, int arg2)BEGIN RECORD_STATE(''Doing function foo'')END
void bar(int arg1)BEGIN EVENT(''Function bar called'')END
eztrace_convert -t [OTF|PAJE] trace.*
mpiexec -np x `eztrace -e ./prog`
eztrace_stats trace.*
Scheduling of tasks generated by PLASMA
P#0_T#2248308464
P#0_T#1126963520
P#0_T#1091815744
P#0_T#1083423040
P#0_T#1100208448
P#0_T#1109317952
P#0_T#1117710656
P#0_T#1135356224
P#0Program
min: 0 max: 1070.97
0 500 1000
Compute Statistics• Generic statistics • Min/max/average duration of each event • Number of occurrence of each event• Add semantic to events • Bug detection (lock missmatch, …) • Communication scheme
Visualize the traces• Generation of the trace in OTF or Paje format• Visualize the traces with ViTE, Vampir, ….
STEP 1
CONTEXT ISSUES
STEP 2
STEP 3A STEP 3B
CONCLUSION FUTUREWORK
trace file #1
...
trace file #x
Paje trace file
OTF trace file
MPI + OpenMPProgram
MPI
OpenMP
User-definedplug-in