Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
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