Bronis R. de Supinski and Jeffrey S. Vetter Center for Applied Scientific Computing August 15, 2000 Umpire: Making MPI Programs Safe.

Slides:



Advertisements
Similar presentations
Presented by Fault Tolerance and Dynamic Process Control Working Group Richard L Graham.
Advertisements

Parallel Processing & Parallel Algorithm May 8, 2003 B4 Yuuki Horita.
PROTOCOL VERIFICATION & PROTOCOL VALIDATION. Protocol Verification Communication Protocols should be checked for correctness, robustness and performance,
Module 7: Advanced Development  GEM only slides here  Started on page 38 in SC09 version Module 77-0.
ECMDA workshop Thales ATM experience in using MDE ECMDA Workshop From code centric to model centric software engineering Bilbao 11 July 2006.
1 Implementing Master/Slave Algorithms l Many algorithms have one or more master processes that send tasks and receive results from slave processes l Because.
1 Buffers l When you send data, where does it go? One possibility is: Process 0Process 1 User data Local buffer the network User data Local buffer.
Toward Efficient Support for Multithreaded MPI Communication Pavan Balaji 1, Darius Buntinas 1, David Goodell 1, William Gropp 2, and Rajeev Thakur 1 1.
7.5 Deadlock Avoidance The algorithm is simply to ensure that the system will always remain in safe state. Therefore, if a process requests a resource.
Scheduling Considerations for building Dynamic Verification Tools for MPI Sarvani Vakkalanka, Michael DeLisi Ganesh Gopalakrishnan, Robert M. Kirby School.
July Terry Jones, Integrated Computing & Communications Dept Fast-OS.
Bronis R. de Supinski Center for Applied Scientific Computing Lawrence Livermore National Laboratory June 2, 2005 The Most Needed Feature(s) for OpenMP.
CS 240A: Models of parallel programming: Distributed memory and MPI.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
1 Dan Quinlan, Markus Schordan, Qing Yi Center for Applied Scientific Computing Lawrence Livermore National Laboratory Semantic-Driven Parallelization.
Message Passing Interface In Java for AgentTeamwork (MPJ) By Zhiji Huang Advisor: Professor Munehiro Fukuda 2005.
Distributed process management: Distributed deadlock
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
ADLB Update Recent and Current Adventures with the Asynchronous Dynamic Load Balancing Library Rusty Lusk Mathematics and Computer Science Division Argonne.
GKK 1 CASC Recommended Viewing: Since this is a pictorial presentation, I’ve gone through the effort to type up what I normally say in the “notes” section.
Siddharth Manay Chandrika Kamath Center for Applied Scientific Computing 2 March 2005 Progress Report on Data Analysis Work at LLNL: Aug’04 - Feb’05
LLNL-PRES-XXXXXX This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.
1 MPI: Message-Passing Interface Chapter 2. 2 MPI - (Message Passing Interface) Message passing library standard (MPI) is developed by group of academics.
Support for Debugging Automatically Parallelized Programs Robert Hood Gabriele Jost CSC/MRJ Technology Solutions NASA.
Specialized Sending and Receiving David Monismith CS599 Based upon notes from Chapter 3 of the MPI 3.0 Standard
Tammy Dahlgren with Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October.
Accelerating Scientific Exploration Using Workflow Automation Systems Terence Critchlow (LLNL) Ilkay Altintas (SDSC) Scott Klasky(ORNL) Mladen Vouk (NCSU)
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Martin Schulz Center for Applied Scientific Computing Lawrence Livermore National Laboratory Lawrence Livermore National Laboratory, P. O. Box 808, Livermore,
MPI Communications Point to Point Collective Communication Data Packaging.
Performance Oriented MPI Jeffrey M. Squyres Andrew Lumsdaine NERSC/LBNL and U. Notre Dame.
Operating System 2 Overview. OPERATING SYSTEM OBJECTIVES AND FUNCTIONS.
MPI (continue) An example for designing explicit message passing programs Advanced MPI concepts.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
Martin Schulz Center for Applied Scientific Computing Lawrence Livermore National Laboratory ASC STAT Team: Greg Lee, Dong Ahn (LLNL), Dane Gardner (LANL)
MA471Fall 2002 Lecture5. More Point To Point Communications in MPI Note: so far we have covered –MPI_Init, MPI_Finalize –MPI_Comm_size, MPI_Comm_rank.
CSCI-455/522 Introduction to High Performance Computing Lecture 4.
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
1 THE EARTH SIMULATOR SYSTEM By: Shinichi HABATA, Mitsuo YOKOKAWA, Shigemune KITAWAKI Presented by: Anisha Thonour.
Bronis R. de Supinski and John May Center for Applied Scientific Computing March 18, 1999 Benchmarking pthreads.
MPI: Portable Parallel Programming for Scientific Computing William Gropp Rusty Lusk Debbie Swider Rajeev Thakur.
1 Lecture 4: Part 2: MPI Point-to-Point Communication.
MPI Point to Point Communication CDP 1. Message Passing Definitions Application buffer Holds the data for send or receive Handled by the user System buffer.
Virtual Application Profiler (VAPP) Problem – Increasing hardware complexity – Programmers need to understand interactions between architecture and their.
FIT5174 Parallel & Distributed Systems Dr. Ronald Pose Lecture FIT5174 Distributed & Parallel Systems Lecture 5 Message Passing and MPI.
Code Motion for MPI Performance Optimization The most common optimization in MPI applications is to post MPI communication earlier so that the communication.
GA 1 CASC Discovery of Access Patterns to Scientific Simulation Data Ghaleb Abdulla LLNL Center for Applied Scientific Computing.
1 University of Maryland Runtime Program Evolution Jeff Hollingsworth © Copyright 2000, Jeffrey K. Hollingsworth, All Rights Reserved. University of Maryland.
Sampling Dynamic Dataflow Analyses Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan University of British Columbia.
Presented By: Asst. Prof. Navjeet Kaur Computer Department Govt College Ropar.
August 12, 2004 UCRL-PRES Aug Outline l Motivation l About the Applications l Statistics Gathered l Inferences l Future Work.
Lawrence Livermore National Laboratory 1 Science & Technology Principal Directorate - Computation Directorate Scalable Fault Tolerance for Petascale Systems.
LLNL-PRES This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.
Parallelizing Functional Tests for Computer Systems Using Distributed Graph Exploration Alexey Demakov, Alexander Kamkin, and Alexander Sortov
Parallel Algorithms & Implementations: Data-Parallelism, Asynchronous Communication and Master/Worker Paradigm FDI 2007 Track Q Day 2 – Morning Session.
Pony – The occam-π Network Environment A Unified Model for Inter- and Intra-processor Concurrency Mario Schweigler Computing Laboratory, University of.
Improve Embedded System Stability and Performance through Memory Analysis Tools Bill Graham, Product Line Manager Development Tools November 14, 2006.
The Structuring of Systems Using Upcalls By David D. Clark Presented by Samuel Moffatt.
Process Management Deadlocks.
Verification of Data-Dependent Properties of MPI-Based Parallel Scientific Software Anastasia Mironova.
Credits: 3 CIE: 50 Marks SEE:100 Marks Lab: Embedded and IOT Lab
Dr.K.Venkata Subba Reddy Professor-CSE Department
MPI: Portable Parallel Programming for Scientific Computing
Parallel Programming By J. H. Wang May 2, 2017.
MPI Point to Point Communication
Programming Models for Distributed Application
More on MPI Nonblocking point-to-point routines Deadlock
Chapter 2: Operating-System Structures
More on MPI Nonblocking point-to-point routines Deadlock
Chapter 2: Operating-System Structures
Presentation transcript:

Bronis R. de Supinski and Jeffrey S. Vetter Center for Applied Scientific Computing August 15, 2000 Umpire: Making MPI Programs Safe

2 CASC Umpire l Writing correct MPI programs is hard l Unsafe or erroneous MPI programs —Deadlock —Resource errors l Umpire —Automatically detect MPI programming errors —Dynamic software testing —Shared memory implementation

3 CASC MPI Runtime System MPI Application Umpire Manager Task 0Task 1Task 2 Task N-1 Interposition using MPI profiling layer Transactions via Shared Memory Task 0Task 1Task 2 Task N-1 Task 0 Task 1 Task 2 Task N-1... Umpire Architecture Verification Algorithms

4 CASC Collection system l Calling task —Use MPI profiling layer —Perform local checks —Communicate with manager if necessary –Call parameters –Return program counter (PC) –Call specific information (e.g. Buffer checksum) l Manager —Allocate Unix shared memory —Receive transactions from calling tasks

5 CASC Manager l Detects global programming errors l Unix shared memory communication l History queues —One per MPI task —Chronological lists of MPI operations l Resource registry —Communicators —Derived datatypes —Required for message matching l Perform verification algorithms

6 CASC Configuration Dependent Deadlock l Unsafe MPI programming practice l Code result depends on: —MPI implementation limitations —User input parameters l Classic example code: Task 0Task 1MPI_SendMPI_Recv

7 CASC Mismatched Collective Operations l Erroneous MPI programming practice l Simple example code: Tasks 0, 1, & 2Task 3 MPI_BcastMPI_Barrier MPI_BarrierMPI_Bcast l Possible code results: —Deadlock —Correct message matching —Incorrect message matching —Mysterious error messages

8 CASC Deadlock detection l MPI history queues —One per task in Manager —Track MPI messaging operations –Items added through transactions –Remove when safely matched l Automatically detect deadlocks —MPI operations only —Wait-for graph —Recursive algorithm —Invoke when queue head changes l Also support timeouts

9 CASC Deadlock Detection Example Bcast Barrier Bcast Barrier Bcast Barrier Task 0Task 1Task 2Task 3 Task 1:MPI_BcastTask 0:MPI_BcastTask 0:MPI_BarrierTask 2:MPI_BcastTask 3:MPI_BarrierERROR! Report it!Task 2:MPI_BarrierTask 1:MPI_Barrier

10 CASC Resource Tracking Errors l Many MPI features require resource allocations —Communicators, datatypes and requests —Detect “leaks” automatically l Simple “lost request” example: MPI_Irecv (..., &req); MPI_Wait (&req,…) l Complicated by assignment l Also detect errant writes to send buffers

11 CASC Conclusion l First automated MPI debugging tool —Detect deadlocks —Eliminates resource leaks —Assure correct non-blocking sends l Performance —Low overhead (21% for sPPM) —Located deadlock in code set-up l Limitations —MPI_Waitany and MPI_Cancel —Shared memory implementation —Prototype only

12 CASC Future Work l Further prototype testing l Improve user interface l Handle all MPI calls l Tool distribution —LLNL application group testing —Exploring mechanisms for wider availability l Detection of other errors —Datatype matching —Others? l Distributed memory implementation

13 CASC Work performed under the auspices of the U. S. Department of Energy by University of California Lawrence Livermore National Laboratory under Contract W-7405-Eng-48 UCRL-VG