70 likes | 182 Vues
Detailed plan for exploring extensibility, code reuse, and instrumentation using various libraries. Tasks assigned to team members with detailed timeline and focus areas. Explore tools for analysis, visualization, and profile modifications. Analyze binary instrumentation options and static kit search. Literature searches and project examinations included.
E N D
Extensibility Study Plan Adam Leko 7/29/2005 HCS Research Laboratory University of Florida
Extensibility & Code Reuse • List of likely reusable components • Color key • [code]: Reuse code or implementation ideas • [lib]: Interact with existing library or tool • Instrumentation & measurement units (Adam, Bryan) • Source instrumentation: tau_instrument [code], PDToolkit [lib] • UPC not supported with PDToolkit • Binary instrumentation: DynInst [lib], DPCL [lib], ATOM [lib], Pin [lib] • Cray not supported with DynInst • DPCL only works with AIX and Linux (based on DynInst) • ATOM only on Tru64 • Pin only on IA32/IA64 Linux, very new (based on DynInst) • Hardware counters: PAPI [lib], PCL [lib] • General trace and profile routines: TAU [code], EPILOG & EARL from KOJAK [lib/code]
Extensibility & Code Reuse (2) • Analysis unit (Hung-Hsun) • Source code correlation from wrapper libraries: HPCToolkit [code], mpiP [code] • Pattern matching for bottleneck identification: EXPERT from KOJAK [lib] • Presentation unit (Hans) • Trace visualization: Jumpshot [code/lib], Intel Trace Analyzer or VampirNG using libvtf [lib] • Profile visualization: CUBE from KOJAK [lib], Paraprof from TAU [code/lib] • Source code viewer: ToolGear [code/lib], HPCToolkit [code]
Tasks: I & M Unit: Adam and Bryan • PUPC, PDToolkit vs. writing parser from scratch (4 weeks) • Also time for PUPC work • Need parser for source instrumentation for PUPC • PDToolkit might work for SHMEM code, possibly with UPC if we use macro tricks • DynInst (2 weeks) • Determine how difficult it is to use DynInst • “Advanced” feature, but should know how hard it is to use DynInst for planning purposes • PAPI vs. PCL (2 weeks) • Find which is better (requires less kernel patching) and has better platform support • Find out how the best one works and how to use API • Trace file format and indexing (4 weeks) • Re-use TAU or KOJAK code, or write trace write/read library from scratch? • Investigate indexing options • Work with Hung-Hsun and Hans to find what type of indexing would be useful for analysis and presentation • Search for static binary instrumentation toolkits (1 week) • Static binary instrumentation might be more flexible than dynamic for instrumenting executables • Preliminary search has turned up no existing cross-platform static instrumentation kits
Tasks: A Unit: Hung-Hsun • Literature search on analysis • See if we can use EXPERT / APART stuff • …
Tasks: P Unit: Hans • Examine code from existing projects (4 weeks) • Only look at presentation parts (ignore measurement, source correlation, PAPI, etc etc) • Trace tools (2 weeks) • Jumpshot • libvtf3 for writing Vampir traces • Profile tools (2 week) • Toolgear • CUBE • Paraprof • HPCToolkit • Experiment with writing graphical programs (5 weeks) • General graphics tutorials/concepts (1 week) • Java, other languages/platforms as necessary • Find existing graphics toolkits to help • Start designing preliminary user interface (3 weeks) • Perform alongside graphical coding task (see Gantt chart) so ideas can be tested