The Problem  Rigorous descriptions for widely used APIs essential  Informal documents / Experiments not a substitute Goals / Benefits  Define MPI rigorously.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
MPI Message Passing Interface
Model Checking for an Executable Subset of UML Fei Xie 1, Vladimir Levin 2, and James C. Browne 1 1 Dept. of Computer Sciences, UT at Austin 2 Bell Laboratories,
Translation-Based Compositional Reasoning for Software Systems Fei Xie and James C. Browne Robert P. Kurshan Cadence Design Systems.
6.1 Synchronous Computations ITCS 4/5145 Cluster Computing, UNC-Charlotte, B. Wilkinson, 2006.
Message Passing: Formalization, Dynamic Verification Ganesh Gopalakrishnan School of Computing, University of Utah, Salt Lake City, UT 84112, USA based.
Module 7: Advanced Development  GEM only slides here  Started on page 38 in SC09 version Module 77-0.
Decision Trees and MPI Collective Algorithm Selection Problem Jelena Pje¡sivac-Grbovi´c,Graham E. Fagg, Thara Angskun, George Bosilca, and Jack J. Dongarra,
Snap-stabilizing Committee Coordination Borzoo Bonakdarpour Stephane Devismes Franck Petit IEEE International Parallel and Distributed Processing Symposium.
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by Intel.
1 Semantics Driven Dynamic Partial-order Reduction of MPI-based Parallel Programs Robert Palmer Intel Validation Research Labs, Hillsboro, OR (work done.
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
Scheduling Considerations for building Dynamic Verification Tools for MPI Sarvani Vakkalanka, Michael DeLisi Ganesh Gopalakrishnan, Robert M. Kirby School.
Argonne National Laboratory School of Computing and SCI Institute, University of Utah Formal Verification of Programs That Use MPI One-Sided Communication.
1 An Approach to Formalization and Analysis of Message Passing Libraries Robert Palmer Intel Validation Research Labs, Hillsboro, OR (work done at the.
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Portability Issues. The MPI standard was defined in May of This standardization effort was a response to the many incompatible versions of parallel.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Distributed Memory Programming with MPI. What is MPI? Message Passing Interface (MPI) is an industry standard message passing system designed to be both.
1 Parallel Computing—Introduction to Message Passing Interface (MPI)
1 MPI Verification Ganesh Gopalakrishnan and Robert M. Kirby Students Yu Yang, Sarvani Vakkalanka, Guodong Li, Subodh Sharma, Anh Vo, Michael DeLisi, Geof.
Argonne National Laboratory School of Computing and SCI Institute, University of Utah Practical Model-Checking Method For Verifying Correctness of MPI.
Modern trends in computer architecture and semiconductor scaling are leading towards the design of chips with more and more processor cores. Highly concurrent.
Utah Verifier Group Research Overview Robert Palmer.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
ARM HARDWARE DEBUGGER Shane Mahon, Lyndsi Parker, and Drew Shafer.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Introduction In the process of writing or optimizing High Performance Computing software, mostly using MPI these days, designers can inadvertently introduce.
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
Mapping Techniques for Load Balancing
Verification technique on SA applications using Incremental Model Checking 컴퓨터학과 신영주.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
CC02 – Parallel Programming Using OpenMP 1 of 25 PhUSE 2011 Aniruddha Deshmukh Cytel Inc.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Erlang/QuickCheck Thomas Arts, IT University John Hughes, Chalmers University Gothenburg.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
Chapter 1: A First Program Using C#. Programming Computer program – A set of instructions that tells a computer what to do – Also called software Software.
Analyzing parallel programs with Pin Moshe Bach, Mark Charney, Robert Cohn, Elena Demikhovsky, Tevi Devor, Kim Hazelwood, Aamer Jaleel, Chi- Keung Luk,
Chapter 3: Completing the Problem- Solving Process and Getting Started with C++ Introduction to Programming with C++ Fourth Edition.
Extreme Makeover for EDA Industry
Lifecycle Verification of the NASA Ames K9 Rover Executive Dimitra Giannakopoulou Mike Lowry Corina Păsăreanu Rich Washington.
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
Dynamic Analysis of Multithreaded Java Programs Dr. Abhik Roychoudhury National University of Singapore.
5/27/03MDES Supporting Model-Based Validation at Run-time Insup Lee and Oleg Sokolsky Department of Computer and Information Science University of.
Parallel Programming with MPI Prof. Sivarama Dandamudi School of Computer Science Carleton University.
Message Passing Programming Model AMANO, Hideharu Textbook pp. 140-147.
Quality Driven SystemC Design By Nasir Mahmood. Hybrid Approach The idea here is to combine the strengths of simulation – namely the ability to handle.
Message Oriented Communication Prepared by Himaja Achutha Instructor: Dr. Yanqing Zhang Georgia State University.
TTCN-3 MOST Challenges Maria Teodorescu
Concurrency: Mutual Exclusion and Synchronization Chapter 5.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
ICS 216 Embedded Systems Validation and Test Instructor: Professor Ian G. Harris Department of Computer Science University of California Irvine.
1 CSEP590 – Model Checking and Automated Verification Lecture outline for August 6, 2003.
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
HACNet Simulation-based Validation of Security Protocols Vinay Venkataraghavan Advisors: S.Nair, P.-M. Seidel HACNet Lab Computer Science and Engineering.
Using Symbolic PathFinder at NASA Corina Pãsãreanu Carnegie Mellon/NASA Ames.
September 1999Compaq Computer CorporationSlide 1 of 16 Verification of cache-coherence protocols with TLA+ Homayoon Akhiani, Damien Doligez, Paul Harter,
Gauss Students’ Views on Multicore Processors Group members: Yu Yang (presenter), Xiaofang Chen, Subodh Sharma, Sarvani Vakkalanka, Anh Vo, Michael DeLisi,
Compositional Verification for System-on-Chip Designs SRC Student Symposium Paper 16.5 Nishant Sinha Edmund Clarke Carnegie Mellon University.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
Message Passing Interface Using resources from
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Hongbin Li 11/13/2014 A Debugger of Parallel Mutli- Agent Spatial Simulation.
Verification of Data-Dependent Properties of MPI-Based Parallel Scientific Software Anastasia Mironova.
Intel® Parallel Studio and Advisor
Model Checking for an Executable Subset of UML
Synchronizing Computations
Presentation transcript:

The Problem  Rigorous descriptions for widely used APIs essential  Informal documents / Experiments not a substitute Goals / Benefits  Define MPI rigorously  Formal reasoning  Permit running “Litmus Tests”  Understanding  Tests for Implementations  Coverage  Guide New Implementations  ‘what’ (not ‘how’) The Methodology  Formalize MPI-2.0 primitives in TLA+ First Order Logic / Sets  Use the TLC model checker to check properties Finitely Instantiate TLA+ Specs  C Front-end / VisualStudio Debugger Error Trace Display thru Familiar GUI A Formal Specification of the MPI-2.0 Standard in TLA+ Guodong Li, Michael DeLisi, Ganesh Gopalakrishnan, Robert M. Kirby School of Computing, University of Utah, Salt Lake City, UT 84112Introduction Motivating Example Framework Architecture Verification Framework Specification This work was supported by NSF award CNS and Microsoft HPC InstitutesAcknowledgments References 1.Guodong Li, Michael DeLisi, Ganesh Gopalakrishnan, and Robert M. Kirby, Formal specification of the MPI 2.0 standard in TLA+, Principles and Practices of Parallel Programming (PPoPP), Robert Palmer, Michael Delisi, Ganesh Gopalakrishnan, and Robert M. Kirby, An approach to formalization and analysis of message passing libraries, Formal Methods for Industry Critical Systems (FMICS) (Berlin), 2007, Best Paper Award Sizes of major specification components : P0: if (rank==0){MPI_Irecv(rcvbuf1, from 1, req1); MPI_Irecv(rcvbuf2, from 1, req2); MPI_Wait(req1); MPI_Wait(req2);..} P1: if (rank==1){sendbuf1=6; sendbuf2=7; MPI_Issend(sendbuf1, to 0); MPI_Isend(sendbuf2, to 0);..} The following simple questions can be answered: 1.Is it guaranteed that rcvbuf1 will eventually contain the message sent out of sendbuf1? (yes)...; MPI_Wait(req2); Assert(rcvbuf1==6  rcvbuf2==7);... 2.When can the buffers be accessed? (after MPI_Wait is called)...; Assert(rcvbuf1==6  rcvbuf2==7); MPI_Wait(req1);... 3.Will the first receive always complete before the second? (No)...; MPI_Wait(req2); MPI_Wait(req1);... Example: (Synchronizing) Collective Communication A loose synchronization protocol is implemented: in the first “enter” phase, proess proc will proceed to its next “wait” phase provided that it hasn't participated in the current synchronization (say syn) and syn's status is either “entering” or “vacant”. If all expected processes have participated then syn's status will advance to “leaving”. In the “leave” phase, proc is blocked if syn is not in leaving status or proc has left. The last leaving process will reset syn's status to be “vacant”.  Insert a compilation phase in the Phoenix compiler.  Automatically generate TLA+ model from C  Verify the model using the TLC model checker.  Replay an error trail in the Microsoft Visual Studio parallel debugger.  MPI Based Parallel Simulation (Image courtesy of IBM / LLNL) MPI is the de-facto standard for programming cluster machines. Long-term Goal of Project: Concurrency Bug Elimination MPI Specification Phoenix Compiler C Program: if (rank == 0) MPI_Bcast (&b,1, MPI_INT, 0, comm1)=> TLA+ code: => VisualStudio TLC Model Checker MPI C Program Combined TLA+ Model IR Counterexamples / Witness Execution Simulation Results (Image courtesy of Prof. Steve Parker)