eztrace - inriaeztrace.gforge.inria.fr/papers/posters/2010_eztrace...need for generic performance...

1
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 foo DESC ''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#0 Program 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 FUTURE WORK trace file #1 ... trace file #x Paje trace file OTF trace file MPI + OpenMP Program MPI OpenMP User-defined plug-in

Upload: others

Post on 21-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EZTrace - Inriaeztrace.gforge.inria.fr/papers/posters/2010_eztrace...Need for generic performance analysis tools A GENERIC FRAMEWORK FOR PERFORMANCE ANALYSIS Select your modules •

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