Reference Implementation of the High Performance Debugging (HPD) Standard Kevin London ( ) Shirley Browne ( ) Robert.

Slides:



Advertisements
Similar presentations
Parallel Virtual Machine Rama Vykunta. Introduction n PVM provides a unified frame work for developing parallel programs with the existing infrastructure.
Advertisements

Operating System Structures
COURSE: COMPUTER PLATFORMS
Honeywell Displays Testing Mike Santa Cruz Brad Simons Ryan Hernandez Matt Lombardo Jeremy Pager.
Operating-System Structures
Multilingual Debugging Support for Data-driven Parallel Languages Parthasarathy Ramachandran Laxmikant Kale Parallel Programming Laboratory Dept. of Computer.
Technical Architectures
Reference: Message Passing Fundamentals.
Phones OFF Please Operating System Introduction Parminder Singh Kang Home:
Common System Components
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 11 of the textbook [SE-8] Ian Sommerville, Software Engineering, 8t h Ed.,
The Structuring of Systems Using Upcalls David D. Clark Presenter: Haitham Gad.
Distributed Systems: Client/Server Computing
© 2001 by Prentice Hall8-1 Local Area Networks, 3rd Edition David A. Stamper Part 3: Software Chapter 8 Client/Server Architecture.
Tiered architectures 1 to N tiers. 2 An architectural history of computing 1 tier architecture – monolithic Information Systems – Presentation / frontend,
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Data Structures and Programming.  John Edgar2.
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
UNIX SVR4 COSC513 Zhaohui Chen Jiefei Huang. UNIX SVR4 UNIX system V release 4 is a major new release of the UNIX operating system, developed by AT&T.
PAPI Update Shirley Browne, Cricket Deane, George Ho, Philip Mucci University of Tennessee Computer.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Support for Debugging Automatically Parallelized Programs Robert Hood Gabriele Jost CSC/MRJ Technology Solutions NASA.
MIMD Distributed Memory Architectures message-passing multicomputers.
Chapter 2 Operating System Overview
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
PyDebug: A New Application for Integrated Debugging of Python with C and Fortran Extensions Peter Stoltz Tech-X Corporation O'Reilly.
Cooperative FVS ! Functional Requirements for a Shared Library Version of FVS, or Calling FVS from R! Nicholas L. Crookston Rocky Mountain Research Station.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Slide 3-1 Copyright © 2004 Pearson Education, Inc. Operating Systems: A Modern Perspective, Chapter 3.
Module 5: Implementing Printing. Overview Introduction to Printing in the Windows Server 2003 Family Installing and Sharing Printers Managing Access to.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
X-WindowsP.K.K.Thambi The X Window System Module 5.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
1 / 26 CS 425/625 Software Engineering Architectural Design Based on Chapter 10 of the textbook [Somm00] Ian Sommerville, Software Engineering, 6 th Ed.,
 2001 Prentice Hall, Inc. All rights reserved. Chapter 1 – Introduction to Computers, the Internet and the World Wide Web Outline 1.1Introduction 1.2What.
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
The Mach System Silberschatz et al Presented By Anjana Venkat.
HPD -- A High Performance Debugger Implementation A Parallel Tools Consortium project
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Chapter – 8 Software Tools.
Parallel Tools Platform Parallel Debugger Greg Watson Project Leader Greg Watson Project Leader.
CLIENT SERVER COMPUTING. We have 2 types of n/w architectures – client server and peer to peer. In P2P, each system has equal capabilities and responsibilities.
Slide 6-1 Chapter 6 Terms System Software Considerations Introduction to Information Systems Judith C. Simon.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Hongbin Li 11/13/2014 A Debugger of Parallel Mutli- Agent Spatial Simulation.
Application of Design Patterns to Geometric Decompositions V. Balaji, Thomas L. Clune, Robert W. Numrich and Brice T. Womack.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Module 3: Operating-System Structures
Performance Analysis, Tools and Optimization
University of Technology
Chapter 2: System Structures
Chapter 2: Operating-System Structures
Chapter 2: Operating-System Structures
What is a Thread? A thread is similar to a process, but it typically consists of just the flow of control. Multiple threads use the address space of a.
Presentation transcript:

Reference Implementation of the High Performance Debugging (HPD) Standard Kevin London ( ) Shirley Browne ( ) Robert Hood ( ) Phil Mucci ( ) John Thurman ( )

Work partially funded by the DoD High Performance Computing Modernization Program, ARL, CEWES, and NAVO Major Shared Resource Centers, through Programming Environment and Training (PET). Views, opinions, and/or findings contained in this report are those of the author(s) and should not be construed as an official Department of Defense position, policy or decision unless so designated by other official documentation.

What is HPD? HPD is an implementation following the standard proposed by The High Performance Debugger Forum. A debugger for parallel and multi-threaded applications. Is light weight, easy to use and presents multiprocess/multithread information in a format that is easy to understand.

What is the High Performance Debugger Forum? The Forum is sponsored by The Ptools Consortium The goals are to define a useful and appropriate set of standards relevant to debugging tools for HPC systems and to accommodate needs of both users and tool developers.

The High Performance Debugger Standard The standard was written to address the following types of programs: –“high performance” in nature (i.e., performance is an important consideration) and typically parallel –written in one or more high-level languages –intended to run on possibly many different computer systems The standard assumes explicit parallelism as the basic programming model. The standard is applicable to both shared-memory programming (multiple threads of execution in an address space) and distributed-memory programming (multiple processes co- operating via message-passing libraries, such as PVM or MPI)

The High Performance Debugger Standard The standard distinguishes the functionality needed for threads-only, process-only and multilevel (multi- process and multi-thread) models of parallelism The overall objective of the standard is to make it possible for debuggers of all three types to provide support that is consistent as possible, given the constraints imposed by the underlying model. The major languages considered were Fortran (F77 and F90), C, and C++.

p2d2/HPD’s Client-server Architecture remote server remote server remote server a.out user interface distribution manager debugger server client

The Command Line Debugger The command line debugger will be written so that it aggregates data when it returns, so that the results will be easier to read. The command line debugger will adhere to the standard so that multi-process applications will be easily controlled. It will be a good alternative to a GUI for those who have poor network connections.

The GUI (e.g. p2d2) The GUI will be a module that will easily be replaceable so front-ends can be changed reasily. Currently P2D2 will be the GUI front end. Also the Data Management Layer, Debugger Server, and DBX/GDB clients will be coming from P2D2. These will be changed to support the command line debugger. The GUI will also be able to have a command line debugger within its display.

The Data Management Layer This layer contains all of the process information including execution names, processor name the executable is running on, and more information that the debugger might need. This is the layer that keep track of groups of processes. The DM layer has the ability to iterate over these groups sending the commands to the Debugger Server level.

The Debugger Server The Debugger server ‘s main duty is to communicate with the debuggers on the various machines/processors. The debugger server sends the commands through the DBX/GDB Client so that we can have abstract commands and the Client translates the commands to the native GDB or DBX commands. This allows support of other debuggers rather easily.

GDB/DBX Client In addition to mapping the abstract commands to the native GDB/DBX commands, the Client is also responsible for parsing the output that comes from the debuggers on the various machines/processes, thus allowing the command line debugger and the GUI to get back the same format of information no matter what debugger the machine/processes are using.

What will the beta release contain (est. Feb 99)? A subset version of the command line debugger implementing the following: –run, continue, break, print, where Due to memory issues run will only work the first time you use it, then you must exit out and restart the debugger. GDB will be the only per-process debugger supported initially.

Limitations of the Beta Release For simplicity the initial release will implement a subset of the functionality and commands specified by the standard. No memory management so you must restart the debugger each time you want to run your application. Some commands will have limited functionality to make the initial release easier to finish. DBX will not be supported in the Beta Release No conditional breakpoints will be supported in the Beta Release.

Future Work DBX as the per-process debugger in addition to GDB Add functionality to implement as much of the standard as possible Memory clean-up routines Make the code more modular

For More Information