Open MPI Project June 2015 Updated Version Numbering Scheme and Release Planning.

Slides:



Advertisements
Similar presentations
Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Advertisements

Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Programming Types of Testing.
CMPT 431 Dr. Alexandra Fedorova Lecture VIII: Time And Global Clocks.
Outline (Mis)communicating expectations Schedule of class-related deliverables Specific final release deliverables Your questions Intellectual activity:
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
Introduction to Programming Prof. Rommel Anthony Palomino Department of Computer Science and Information Technology Spring 2011.
CS110/CS119 Introduction to Computing (Java)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Defining the project You have presented your project proposal and you have the go-ahead to start the project. Before you start you need to ensure everyone.
Monthly Updates to Presort Data. Agenda What is Presort Data? History of Update Schedule Important Terms to Understand The New Schedule Transition to.
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
EGEE is a project funded by the European Union under contract IST Testing processes Leanne Guy Testing activity manager JRA1 All hands meeting,
Program Development Life Cycle (PDLC)
MAE Continuous Integration Administration guide July 8th, 2013.
EEC4133 Computer Organization & Architecture Chapter 6: Languages and the Machine by Muhazam Mustapha, May 2014.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
CRT State Stuff Dana Robinson The HDF Group. In the next slide, I show a single executable linked to three dlls. Two dlls and the executable were built.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
CS2852 Week 2, Class 1 Today Generics (Section 051) Big-O runtime analysis Muddiest Point Lab Quiz Includes writing a method from ArrayList class (See.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
1 MassChallenge Technology Review MassChallenge Technology Review (April July 2011) MassChallenge Web Technology Review April July 2011 Johnny.
2013 Texas Ad Astra Summit Monday, July 22 nd Role Play: Fresh Ideas for Setting Up Security Roles in Astra 7.5 Truman Glenn University of Houston
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
PPMS Spring User Group Meeting 5/30/2012 Presented by Susan Engel.
Current Assignments Homework 2 is available and is due in three days (June 19th). Project 1 due in 6 days (June 23 rd ) Write a binomial root solver using.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 3, Lecture 1.
Genesys Shell development Input-side development progress.
Static Shared Library. Non-shared v.s. Shared Library A library is a collection of pre-written function calls. Using existing libraries can save a programmer.
Threaded Programming Lecture 2: Introduction to OpenMP.
1 CS 106 Computing Fundamentals II Chapter 211 “Coding And Debugging” Herbert G. Mayer, PSU CS status 6/29/2013 Initial content copied verbatim from CS.
May 2015 New version numbering proposal. Where this proposal started from… Odd / even scheme doesn’t seem to be working well  Most users only using even.
CS 6290 Branch Prediction. Control Dependencies Branches are very frequent –Approx. 20% of all instructions Can not wait until we know where it goes –Long.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Program Libraries 1. What is a program library? A library is a collection of implementations of behavior, written in terms of a language, that has a well-defined.
Reflection on graphical interfaces for illustrating European statistics UNECE Work Session on Statistical Dissemination and Communication May 2008.
GCC Conversion Status Alan M Jonckheere. 12/4/2002A.M.Jonckheere2 Introduction KAI is no longer supported by their new owner, INTEL. Reconstituted C++
ONE LAPTOP PER CHILD This works are licensed under a Creative Commons Attribution 2.5 License. One Laptop per Child Builds, Customizations and Localization.
Real-World Pipelines Idea –Divide process into independent stages –Move objects through stages in sequence –At any given times, multiple objects being.
OCR A Level F453: The function and purpose of translators Translators a. describe the need for, and use of, translators to convert source code.
Review for Eclipse Release Review | © 2012 by Review for Eclipse Committers, made available under the EPL v1.0 1 Review for Eclipse (R4E) 0.11 Release.
Configuration & Build Management. Why Software Configuration Management ? The problem: Multiple people have to work on software that is changing More.
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.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
Multi-threading and other parallelism options J. Apostolakis Summary of parallel session. Original title was “Technical aspects of proposed multi-threading.
1 March 10, Project Planning William Cohen NCSU CSC 591W March 10, 2008.
Real-World Pipelines Idea Divide process into independent stages
Virtual Roundtable Discussion
Continuous Delivery- Complete Guide
Chapter 18 Maintaining Information Systems
Maintaining software solutions
IS3440 Linux Security Unit 7 Securing the Linux Kernel
Software Testing and Maintenance Maintenance and Evolution Overview
Upgrading Condor Best Practices
Outline Module 1 and 2 dealt with processes, scheduling and synchronization Next two modules will deal with memory and storage Processes require data to.
CSE 303 Concepts and Tools for Software Development
Scope Rules and Storage Types
Dr. Rob Hasker SE 3800 Note 9 Reviews.
Paper 7: Technical Updates
Discussing an OVS/OVN Split
How to write good code Part 2
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Walking dead. How to save project?
Presentation transcript:

Open MPI Project June 2015 Updated Version Numbering Scheme and Release Planning

Table of contents These slides cover several related topics: 1.Open MPI’s new version numbering scheme 2.Transition plan to the new version numbering 3.Release planning roadmap 4.The bottom line (TL;DR) Let’s jump right in… 2

Before July 2015… Open MPI used an “odd / even” numbering scheme  1.odd: “feature” series  1.even: “stable” series But it’s not working out as well as we’d like 3

One problem Very few users actually use the “odd” versions  Users equate “odd” with “unstable” As a direct result:  New features don’t get real-world tested  …until the “even” releases 4

Another problem Users want new features faster  A “stable” series (intentionally) does not receive new features As a direct result:  New features take a long time to get to users 5

Let’s fix that 6

Goodbye odd / even scheme! 7

New version numbering scheme Open MPI will (continue to) use a “A.B.C” version number triple Each number now has a specific meaning: This number changes when backwards compatibility breaks This number changes when new features are added This number changes for all other releases A B C 8

Examples Pretend we’re in the future  The current Open MPI release is v3.4.2 What will be the next release number? Let’s look at a few cases… 9

Example 1 Current release: v3.4.2 Situation:  Bugs are fixed  No new features are added  Backwards compatibility is preserved  Next release will be v

Example 2 Current release: v3.4.2 Situation:  Bugs are fixed  User-noticeable new features are added  Backwards compatibility is preserved  Next release will be v

Example 3 Current release: v3.4.2 Situation:  Major changes occur (new features, etc.)  Backwards compatibility is broken  Next release will be v

Wait… How exactly are you defining the term “backwards compatibility” ? 13

Definition Open MPI vY is backwards compatible with Open MPI vX (where Y>X) if:  Users can compile a correct MPI / OSHMEM program with vX  Run it with the same CLI options and MCA parameters using vX or vY  The job executes correctly 14

What does that encompass? “Backwards compatibility” covers several areas:  Binary compatibility, specifically the MPI / OSHMEM API ABI  MPI / OSHMEM run time system  mpirun / oshrun CLI options  MCA parameter names / values / meanings 15

How will I know when backwards compatibility breaks? Two ways: 1.The first digit of the Open MPI version number changes 2.Read the NEWS file When the first digit of the version number changes, NEWS will contain a list of what issues broke backwards compatibility 16

Versioning note Open MPI only supports running exactly the same version of the runtime and MPI / OSHMEM libraries in a single job  If you mix-n-match different versions in a single job… 17 ERROR

Versioning: beware of static builds! When an MPI app is statically linked, it is “locked” to a specific version of Open MPI  mpicc myapp.c –static –o myapp  It is erroneous to mpirun with a different version (e.g., mpirun vY) 18 myapp Open MPI vX

Transition to the New Version Numbering Scheme 19

How to move to the new numbering? 20 v1.8.6 Released June 19, 2015

How to move to the new numbering? 21 What’s next? v1.8.6 Released June 19, 2015

How to move to the new numbering? 22 v1.8.6 Released June 19, 2015 What’s next? Note: it would be crazy confusing to change the version number scheme in the middle of the v1.8.x series. We won’t be doing that.

How to move to the new numbering? 23 v1.8.6 Released June 19, 2015 v Will contain the usual bug fixes And (a small number of) new features

How to move to the new numbering? 24 v1.8.6 Released June 19, 2015 v Starting with v1.10.0, future releases will abide by the new versioning scheme

Release Planning Roadmap 25

What’s next? We are planning for v  Within the next few months  Contains the usual bug fixes and minor improvements (over v1.8.6)  Also contains a small number of new features libfabric support Mellanox Yalla PML Intel PSM2 for OmniPath 26

What’s next? We anticipate v2.0.0  Later this year  Will contain larger new features  Will not be backwards compatible with v1.10.x 27

28 Transition definition for the technically inclined Git master development v2.x branch v1.7.x / v1.8.x branch v1.10.x branch v1.8v1.8.5 … v1.8.6 No further v1.8.x releases planned unless serious bugs are found

Why “v1.10.0” (vs. “v1.9.0”)? 1. Before June 2015, we referred to the next major release as the “v1.9 series”  “v1.10.0” clearly distinguishes from that idea  “v2.0.0” conveys a significant difference (i.e., a major new release series) 2. It will take a while for the new scheme to become common knowledge  We didn’t want users to think “v1.9” = “odd” = “unstable” 29

What’s the plan over time? Plan for a new release series once a year  v2.x: release in mid / late 2015  v3.x: release in mid / late 2016  v4.x: release in mid / late 2017  …etc. 30 NOTE: Scheduled releases is a new concept for the Open MPI developer community. We’ll continue to evaluate this plan over time.

What will be supported? (Continue the) Support “current version and one prior” philosophy  Mid 2015 – mid 2016 Support v1.10.x, and v2.x Special case for the transition: also support v1.8.x  Mid 2016 – mid 2017 Support v2.x and v3.x  Mid 2017 – mid 2018 Support v3.x and v4.x  …etc. 31

Planned development and support cycle Version 1.8.x series Version 1.10.x series Active development Slowed development Maintenance (bug fix only) Key:

Planned development and support cycle Version 1.8.x series Version 1.10.x series Version 2.x series Active development Slowed development Maintenance (bug fix only) Key:

Planned development and support cycle Active development Slowed development Maintenance (bug fix only) Version 1.8.x series Version 1.10.x series Key: Version 2.x series Version 3.x series 34

The Bottom Line 35

The bottom line Starting with v1.10.0:  No more odd/even series  “A.B.C”: each number has a specific meaning Read the NEWS file when “A” changes  Release new features faster Aim to limit life release series  ~1 year of devel + ~1 year of bug fixes 36