Document Actions

CScADS Summer 2009 (II)

by Jennifer Harris last modified 2009-07-02 06:48

The Center for Scalable Application Development Software plans to hold an ongoing series of summer workshops that aim to engage the community in the challenges of leadership computing and foster interdisciplinary collaborations. The general charge for the workshops is the following: 1) Identify important open problems and challenges for achieving high performance on leadership computing systems. 2) Brainstorm on promising approaches to open problems. 3) Identify infrastructure needs to address key challenges and assess available infrastructure. 4) Identify opportunities for synergy, opportunities to consolidate and harden existing infrastructures, opportunities to reuse existing components developed by others, and opportunities to refactor and extend existing components to apply them to new challenges. 5) Collaborate on design of sharable components. Encourage interaction and information interchange between computer scientists and SciDAC application teams. 6) Identify targets of opportunity for further investment of resources, in particular strategic investment targets for the DOE Office of Science.

8:00 AM Breakfast Mon AM 1 9:00 AM The Latest and Greatest in the Dyninst Binary Code Toolkit Matt Legendre Bill Williams Madhavi Krishnan Drew Bernat, Univ. of Wisconsin We will present a brief overview of deconstructing Dyninst and building independent components. We will talk briefly about the components that we have already developed like SymtabAPI, InstructionAPI, DepgraphAPI and StackwalkerAPI and new components on the horizon like ParsingAPI. We will discuss the current status and goals of the binary rewriting tool, a new addition to the toolkit. We will describe our initial thoughts on components we intend to produce, namely a process control library and an interface for evaluating instruction semantics. In the second part of the talk, we will describe a new idiom called group file operations, for performing file operations on groups of files on distributed hosts. We will discuss the design of TBON-FS (Tree Based Overlay Network-File System) which is a scalable distributed file system that supports group file operations on thousands of distributed files. We will demonstrate how group file operations were used to create several parallel tools like parallel top (ptop), parallel rsync etc for management of distributed systems. 10:00 AM New Developments around Scalasca Felix Wolf, Juelich Supercomputing Centre Scalasca is an open-source toolset that can be used to analyze the performance behavior of parallel applications and to identify opportunities for optimization. It has been specifically designed for use on large-scale systems including IBM Blue Gene and Cray XT, but is also well-suited for small- and medium-scale HPC platforms. Scalasca integrates runtime summaries with in-depth studies of concurrent behavior via event tracing, adopting a strategy of successively refined measurement configurations. In this talk, we will discuss new developments around Scalasca including a semantic runtime compression method for time-series call-path profiles and will give updates on SIONlib, a library for efficient parallel task-local I/O, and CUBE, a generic profile browser. 10:30 AM Morning Break Mon AM 2 10:30 AM Memory Subsystem Profiling with the Sun Studio Performance Analyzer (with demo) Marty Itzkowitz, Sun Microsystems In this talk, I will delineate why memory subsystem performance is crucial to application performance, and why it is hard to understand. I will briefly review HW counter profiling, and dataspace profiling. Then I will describe new techniques for slicing and dicing the data differently to directly address issues related to the memory subsystem, and give an example of the detection of false-sharing of a cache line. Finally, I will talk about potential future development in the tools. 11:15 AM Linux Has a Generic Performance Monitoring API! (with demo) Stephane Eranian, HP For many years, people have been asking for a generic Linux performance monitoring API to access the hardware performance counters of modern processors. First, there was OProfile, then perfctr, then perfmon. We designed perfmon but late last year, it was eventually rejected by top-level X86 kernel maintainers. They, instead, developed a brand new interface using a different approach: an event-oriented API. This interface, called Performance Counter for Linux (PCL), has been under heavy development for the last six months. The ABI is fairly stable but only a few processors are currently supported. Nonetheless, the patch was accepted in the upstream kernel for 2.6.31. In this talk, we give an overview of this new interface and compare the pros and cons with perfmon. 12:30 PM Lunch Mon PM 1 2:00 PM Combining static and dynamic analysis for debugging and performance tuning Martin Schulz, LLNL Traditional tools often rely only on static or dynamic analysis. However, to exploit all available information about a program, tools must combine both of these basic techniques. This talk will discuss the opportunities of this approach and demonstrate it using two projects from the areas of debugging and performance tuning. In collaboration with the University of Wisconsin we use static analysis to extract a logical temporal ordering of dynamic execution contexts and statements directly from source code and then map this data to dynamic location information to assist debugging. In collaboration with the Universities of Linz and Munich we use dynamic pattern detection and static source code analysis to identify and to verify opportunities to apply transformations for MPI collective operations. 2:30 PM Performance Measurement and Analysis of Multithreaded Programs Nathan Talent, Rice Univ. Understanding why the performance of a multithreaded program does not improve linearly with the number of cores in a shared-memory node populated with one or more multicore processors is a problem of growing practical importance. This paper makes three contributions to performance analysis of multithreaded programs. First, we describe how to measure and attribute *parallel idleness*, namely, where threads are stalled and unable to work. This technique applies broadly to programming models ranging from explicit threading (e.g., Pthreads) to higher-level models such as Cilk and OpenMP. Second, we describe how to measure and attribute *parallel overhead* --- when a thread is performing miscellaneous work other than executing the user's computation. By employing a combination of compiler support and post-mortem analysis, we incur no measurement cost beyond normal profiling to glean this information. Using *idleness* and *overhead* metrics enables one to pinpoint areas of an application where concurrency should be increased (to reduce idleness), decreased (to reduce overhead), or where the present parallelization is hopeless (where idleness and overhead are both high). Third, we describe how to measure and attribute arbitrary performance metrics for high-level multithreaded programming models, such as Cilk. This requires bridging the gap between the expression of logical concurrency in programs and its realization at run-time as it is adaptively partitioned and scheduled onto a pool of threads. We have prototyped these ideas in the context of Rice University's HPCToolkit performance tools. We describe our approach, implementation, and experiences applying this approach to measure and attribute work, idleness, and overhead in executions of Cilk programs. 3:00 PM Afternoon Break Mon PM 2 3:30 PM What It Takes To Assign Blame Jeff Hollingsworth Nick Rutar, Univ. of Maryland We have been developing a new performance mapping tool called Blame that tracks performance problems through levels of abstraction in complex parallel programming frameworks. In this talk we explain some of the needs we have for tool components. Our tool requires the integration of data from both static and dynamic analysis. In addition we use both source code and binary analysis components. This talk will review why data is needed from these difference sources, and describe our experiences using tool components to gather it. 4:00 PM Performance Strategies for Parallel Mathematical Libraries Based on Historical Knowledgebase Eduardo Cesar Ana Cortes, Autonomous University of Barcleona Scientific and mathematical parallel libraries offer a high level of abstraction to programmers. However, it is still difficult to select the proper parameters and algorithms to maximize the application performance. We proposed some strategies for automatically adjusting parameters of applications written with the PETSc library. These strategies are based on historical performance information and data mining techniques. They must be able to automatically identify the structure and significant characteristics of the input data and then compare the output of this recognition process against a comprehensive set of known cases. At the same time, they also have to include a mechanism to distribute the input data to avoid load inbalances 4:30 PM A Proposal for a Profiling Data Exchange Format Bernd Mohr, JSC Martin Schulz, LLNL Dan Gunter, LBL Kevin Huck, Univ . Oregon Xingfu Wu, Texas A&M The PERI XML effort aims at defining a standardized, XML based performance data exchange format that will allow measurement and performance analysis tools to share structured profile data. The current version, which was born from discussions during last year's CScADS workshop, then further developed in a long series of phone conferences, represents a complete draft of the PERI XML schema. In this talk, we want to present this new schema to the community to get feedback and to understand possible limitations of the current schema. It is our hope that this will lead to the final version of the schema shortly after the workshop, which can then be implemented in a wide variety of tools. 6:30 PM Dinner Tuesday, July 21, 2009 8:00 AM Breakfast Tue AM 1 9:00 AM HPCToolkit Update 2009 Mike Fagan, Rice Univ. HPCToolkit development has been moving along at a nice pace. Several new features have been added. In addition, HPCToolkit has been installed and used on some leadership-class machines. The high points are: 1. Refinements to the libmonitor interface 2. Refinements to unwinder (including validation) 3. Leadership class machine experience: 3.1 Flash (show demo) 3.2 IBM Blue Gene 3.3 PFLOTRAN on XT 4. Leadership class machine experience has led us to create acceptance tests for various OS features. 5. Future 5.1 Plan to explore scionlib 5.2 MPI-hpcprof parallel profile analysis 10:00 AM Performance Measurement and Analysis of Heterogeneous Systems: Tasks and GPU Accelerators Allen Malony, Univ. Oregon TBA 10:30 AM Morning Break Tue AM 2 10:30 AM Automatic Profiling Analysis Luiz Derose Heidi Poxon, Cray TBA 11:00 AM Obtaining Extremely Detailed Information at Scale Jesus Labarta, BSC We will describe two approaches to obtain very detailed information about the behavior of large parallel programs. The first approach aims at merging information obtained through instrumentation and coarse grain sampling to achieve very detailed information on the evolution of performance metrics with time while keeping the instrumentation overhead to a minimum. The second technique applies clustering techniques at run time to derive very detailed CPI Stack models of a running application at large scale. Both techniques could be combined to extract in a very scalable way a huge amount of information about the behavior of a program while minimizing the actual amount of data emitted. 11:30 AM Building a Community Infrastructure for Scalable On-Line Performance Analysis Tools Jim Galarowicz, Krell InstituteDavid Montoya, LANL n this talk we will give an overview of a project which was just recently jointly funded by OASCR and the NNSA to create scalable open source performance tool components. The goal of this project is to design, implement, and evaluate a general, flexible tool infrastructure supporting the construction of performance tools as "pipelines" of high-quality interchangeable tool building blocks. These tool building blocks provide common performance tool functionality, and are designed for scalability, lightweight data acquisition and analysis, and interoperability. The key benefit of this project will be the ability to use the highly scalable infrastructure to quickly create tools that match with a machine architecture and a performance problem that needs to be understood. For this project, we will start with the existing Open|SpeedShop code base and decompose its current components into new a more modular and scalable set of components. When combined these components will provide the equivalent Open|SpeedShop functionality, but the individual components can also be used in other tool sets without requiring the Open|SpeedShop structure or design philosophy.In order for this project to be successful we need to develop a mechanism that can recognize which components are compatible with others, which have dependencies, and which have some sort of constraints. We will present information about our initial research into the modeling of component interfaces to resolve component constraints and dependencies. The goal of this research is to ultimately be able to create a component resolution system that allows a core driver component, driven by the user, to assemble a set of components that fit the users criteria creating a scalable performance tool. We have been brainstorming with a frameworks person from Carnegie Mellon University about the best approach to these and other issues. 12:30 PM Lunch Tue PM 1 2:00 PM Autonomous Tool Infrastructure Dorian Arnold, Univ. of New Mexico This talk will present current and future research in autonomous overlay networks to support high performance, scalable, robust tools. I briefly will overview recent extensions to the MRNet infrastructure made to support fault-tolerance and dynamic topology configurations. I will then discuss our current work in run-time monitoring, modeling and re-configurations that will lead eventually to an infrastructure that autonomously and dynamically adapts itself to address functional failures and performance failures and workload. 2:30 PM Scalable Tool Infrastructure for the Cray XT Using Tree-Based Overlay Networks Philip Roth, ORNL Performance, debugging, and administration tools are critical for the effective use of parallel computing platforms, but traditional tools have failed to overcome several problems that limit their scalability such as communication between a large number of tool processes and the management and processing of the volume of data generated on a large number of compute nodes. A tree-based overlay network has proven effective for overcoming these challenges. In this talk, we present our experiences in bringing the MRNet tree-based overlay network infrastructure to the Cray XT platform, including a description of new MRNet capabilities and integration of MRNet into an existing performance tool on the Cray XT. 3:00 PM Afternoon Break Tue PM 2 3:30 PM ROSE Open Compiler Infrastructure supporting Custom Tools for Software Analysis, Transformation, and Optimization Dan Quinlan, LLNL ROSE is a tool for building source-to-source transformation tools for the custom analysis, optimization, and transformation of large scale C, UPC, C++ and Fortran (F2003,F95,F90,F77,F66) applications, and also OpenMP. Recent work over the last two years has added binary analysis support to ROSE (specifically support for x86, ARM, and PowerPC instruction sets and both Windows (PE, NE, LE, MSDOS formats) and Linux (Elf format). More recent work has added dynamic analysis support using "Intel Pin" to mix both static and dynamic analysis. ROSE has an external community of users, developers, and collaborators and has been used in a number of research and industry tools (more information is available at www.roseCompiler.org). It has been a basis for a number of external collaborations in custom analysis and program optimization and we invite new ones. Specifically, ROSE is packaged to allow the construction of custom tools by a non-compiler audience. Central to ROSE is the analysis and transformation of the Abstract Syntax Tree (as well as other graphs generated from it) and its transformation to generate new code. Research work has addressed a range of topics from optimization (loop optimization, MPI optimization, data structure optimization, automated parallelization using OpenMP, etc.) to the details of macro handling in CPP preprocessing and advanced token handling for extremely precise levels of source-to-source code regeneration and analysis of subtle details typically not possible within conventional compiler infrastructures. Ongoing research using ROSE has been the basis of our development of an end-to-end tool chain focused on empirical tuning using a wide range of tools from academic and other DOE labs and demonstrating how these work together. Recent work has also demonstrated static analysis tools using ROSE that can be used to check OpenMP usage. Still other work has demonstrated the run-time detection of code for which the results are undefined, or compiler implementation dependent, within the C and C++ language standard. This talk will present a range of uses of ROSE for both performance optimization and a few selected areas to demonstrate the breath of tools that can be built using ROSE. 4:00 PM TBA TBA TBA 4:30 PM TBA TBA TBA 6:30 PM Dinner Wednesday, July 22, 2009 8:00 AM Breakfast Wed AM 1 9:00 AM Working Groups - Planning and initial meetings 10:30 AM Morning Break Wed AM 2 10:30 AM Working Groups 12:30 PM Lunch Wed PM 2:00 PM Informal discussions of research challenges, ongoing tools research, working group activities, and collaboration plans 6:30 PM Dinner Thursday, July 23, 2009 8:00 AM Breakfast Thu AM 1 9:00 AM Working Groups 10:30 AM Morning Break Thu AM 2 11:00 AM Working Groups 12:30 PM Lunch Thu PM 1 2:00 PM Working Groups 3:00 PM Afternoon Break Thu PM 2 3:30 PM Working Groups and Closing Discussion 6:30 PM Dinner
Sunday, July 19, 2009 7:00 PM Dinner Buffet Monday, July 20, 2009
« April 2018 »
Su Mo Tu We Th Fr Sa
1234567
891011121314
15161718192021
22232425262728
2930
 

Powered by Plone

CScADS Collaborators include:

Rice University ANL UCB UTK WISC