MPI ABI Working Group status March 10, 2008 Jeff Brown, chair (LANL)

Slides:



Advertisements
Similar presentations
IATI Technical Advisory Group Technical Proposals Simon Parrish IATI Technical Advisory Group, DIPR March 2010.
Advertisements

MPI 2.2 William Gropp. 2 Scope of MPI 2.2 Small changes to the standard. A small change is defined as one that does not break existing correct MPI 2.0.
March 2008MPI Forum Voting 1 MPI Forum Voting March 2008.
MPI3 RMA William Gropp Rajeev Thakur. 2 MPI-3 RMA Presented an overview of some of the issues and constraints at last meeting Homework - read Bonachea's.
MPI Forum ABI WG Status and Discussion Dublin meeting September, 2008.
2 MPI 2.2 Discussed Ground Rules with Examples Agenda for the next meeting will be drafted at the interim telecon Drafts of Changes Karl to propose sparse.
MPI ABI WG Status Jeff Brown, LANL (chair) April 28, 2008.
MPI Message Queue Debugging Interface Chris Gottbrath Director, Product Management.
An Overview Of Virtual Machine Architectures Ross Rosemark.
K T A U Kernel Tuning and Analysis Utilities Department of Computer and Information Science Performance Research Laboratory University of Oregon.
The HDF Group Parallel HDF5 Developments 1 Copyright © 2010 The HDF Group. All Rights Reserved Quincey Koziol The HDF Group
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
Procedures Procedures are very important for writing reusable and maintainable code in assembly and high-level languages. How are they implemented? Application.
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Exploring Security Vulnerabilities by Exploiting Buffer Overflow using the MIPS ISA Andrew T. Phillips Jack S. E. Tan Department of Computer Science University.
CS Lecture 4 Programming with Posix Threads and Java Threads George Mason University Fall 2009.
The OpenUH Compiler: A Community Resource Barbara Chapman University of Houston March, 2007 High Performance Computing and Tools Group
March 25, 2014CS410 – Software Engineering Lecture #12: Advanced C++ I 1 Alumni Party The Alumni Party will take place on Tuesday, May 13 It would be great.
Sujit R Nair November 30,2009. Introduction Need / Requirement. Characteristics of current rule markup Languages. A sample Scenario of Rule Interchange.
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
NewsFlash!! Earth Simulator no longer #1. In slightly less earthshaking news… Homework #1 due date postponed to 10/11.
Software Configuration Management (SCM) Software Configuration Management (SCM) is a) the development and b) the application of standards and procedures.
(1) ICS 313: Programming Language Theory Chapter 10: Implementing Subprograms.
Sameer Shende Department of Computer and Information Science Neuro Informatics Center University of Oregon Tool Interoperability.
JVM-1 Introduction to Java Virtual Machine. JVM-2 Outline Java Language, Java Virtual Machine and Java Platform Organization of Java Virtual Machine Garbage.
Guide To UNIX Using Linux Third Edition
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
Types of software. Sonam Dema..
Computer Science 210 Computer Organization Modular Decomposition Making a Library Separate Compilation.
Anders Karlsson Principal Sales Engineer, MySQL MySQL Embedded - Getting started with libmysqld.
Backward Compatibility WG Charter -Monitor MPI3.0 activity to determine each proposals' impact on MPI 2.x users and code base. -The goal is to provide.
Incell Phonium Processor Project Plan Document Dale Mansholt Aaron Drake Jon Scruggs Travis Svehla.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
TRACEREP: GATEWAY FOR SHARING AND COLLECTING TRACES IN HPC SYSTEMS Iván Pérez Enrique Vallejo José Luis Bosque University of Cantabria TraceRep IWSG'15.
Compiler BE Panel IDC HPC User Forum April 2009 Don Kretsch Director, Sun Developer Tools Sun Microsystems.
Lecture 10 : Introduction to Java Virtual Machine
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
OpenFabrics 2.0 or libibverbs 1.0 Sean Hefty Intel Corporation.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Linux interoperability Question: How can I handle interoperability between Linux and UNIX in my IT environment? HP’s Approach With HP’s Linux Compatibility.
Buffer Overflow Attack Proofing of Code Binary Gopal Gupta, Parag Doshi, R. Reghuramalingam, Doug Harris The University of Texas at Dallas.
Sending large message counts (The MPI_Count issue)
Introduction Why are virtual machines interesting?
RealTimeSystems Lab Jong-Koo, Lim
Pyragen A PYTHON WRAPPER GENERATOR TO APPLICATION CORE LIBRARIES Fernando PEREIRA, Christian THEIS - HSE/RP EDMS tech note:
Lecture 1 Page 1 CS 111 Summer 2013 Important OS Properties For real operating systems built and used by real people Differs depending on who you are talking.
Virtualization Neependra Khare
Procedures Procedures are very important for writing reusable and maintainable code in assembly and high-level languages. How are they implemented? Application.
Computer System Structures
Microsoft Foundation Classes MFC
Current Generation Hypervisor Type 1 Type 2.
Computer Science 210 Computer Organization
Virtual Machines: Versatile Platforms for Systems and Processes
Implementing Subprograms
Computer Science 210 Computer Organization
Chapter 3: Windows7 Part 4.
The HP OpenVMS Itanium® Calling Standard
Microsoft Azure Makes It Simple to Integrate Data between Dynamics CRM and Web Portal MINI-CASE STUDY “We needed to deliver our customer a robust and.
Virtualization Layer Virtual Hardware Virtual Networking
Application Binary Interface (ABI)
MPI-Message Passing Interface
Computer Science 210 Computer Organization
Grid Services B.Ramamurthy 12/28/2018 B.Ramamurthy.
Virtual Machines (Introduction to Virtual Machines)
Analysis models and design models
Introduction to Virtual Machines
Introduction to Virtual Machines
Question 1 How are you going to provide language and/or library (or other?) support in Fortran, C/C++, or another language for massively parallel programming.
Presentation transcript:

MPI ABI Working Group status March 10, 2008 Jeff Brown, chair (LANL)

Motivation Current MPI spec is an API, which allows for source but not binary compatibility across MPI implementations Applications built on MPI must recompile for every different target MPI implementation Not a problem on vertically integrated vendor systems with one MPI implementation A pain on open systems (e.g. linux clusters) with multiple MPI offerings (mpich, lampi, openmpi, mvapich, …)

Current MPI situationWhat we want Compile time (API) Link time (ABI) MPI Implementation A B C A B C Translation layer ABI compliant Application source Run time

Impacts ISVs with products that use MPI (e.g. Matlab) must build and ship a separate binary for every target MPI implementation Users cannot run third party applications distributed in binary form with an MPI implementation optimized for their hardware Application code developers (like at LANL) must recompile for every different MPI Tool providers (e.g. Tau) that use the profiling interface must build for every MPI Adds to the complexity of system maintenance due to additional run-time dependencies (modules, etc.)

MPI ABI Initiative Define an Application Binary Interface standard for MPI which will allow run- time dynamic linking to any compliant MPI binary library on a target platform (practical linkage compatibility) Initial focus will be on the C bindings only Not dealing with fortran issues (e.g. symbol names) for now (maybe never) Not dealing with run time environment issues such as standard library names, paths, etc. – leave this to the sys admins to standardize to their local conventions Does not ensure run-time correctness Translation (or morph) layers may be required to allow for backward compatibility with binaries compiled with a non-ABI compliant MPI

What we need to standardize Need a reference mpi.h implementation Need to ensure consistent calling and linkage conventions across binary implementations for a particular platform Need to come to consensus on what level standard – part of MPI 3.0 standard as a whole, or an add- on (MPI ABI compliant)

Some technical detail to be addressed extracted from Bill Gropps GMPI paper Compatible MPI data entities – Compile-time values – Init-time constants (MPI_INT, etc.) – Opaque objects (MPI_Comm, MPI_Datatype, etc.) – Defined objects (MPI_Status) – Defined pointers (MPI_BOTTOM, MPI_STATUS_NULL, etc.) Uniform approach to the macro implementation of certain functions Similar calling convention – Argument order and size – Stack frame management policy – Return address storage and handling – Function call and return handling Common linkage convention – Library file format – MPI library name – MPI library path resolution mechanism – System library dependency resolution

Next Steps Develop a concrete proposal to be presented at a future (possibly the next) forum meeting

Current members of the ABI working group To join us: Subscribing to mpi3-abi