Department of Computer and Information Sciences September 22, 2011 Toward the Embedded Petascale Architecture: The Dual Roles of.

Slides:



Advertisements
Similar presentations
Technology Drivers Traditional HPC application drivers – OS noise, resource monitoring and management, memory footprint – Complexity of resources to be.
Advertisements

Priority Research Direction (I/O Models, Abstractions and Software) Key challenges What will you do to address the challenges? – Develop newer I/O models.
Sponsored by the U.S. Department of Defense © 2005 by Carnegie Mellon University 1 Pittsburgh, PA Dennis Smith, David Carney and Ed Morris DEAS.
Prof. Srinidhi Varadarajan Director Center for High-End Computing Systems.
1 Lawrence Livermore National Laboratory By Chunhua (Leo) Liao, Stephen Guzik, Dan Quinlan A node-level programming model framework for exascale computing*
March 18, 2008SSE Meeting 1 Mary Hall Dept. of Computer Science and Information Sciences Institute Multicore Chips and Parallel Programming.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
A 100,000 Ways to Fa Al Geist Computer Science and Mathematics Division Oak Ridge National Laboratory July 9, 2002 Fast-OS Workshop Advanced Scientific.
- 1 - Component Based Development R&D SDM Theo Schouten.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 3: Basing Software Development on Reusable Technology.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Enterprise Architecture
The Re-engineering and Reuse of Software
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
By Mihir Joshi Nikhil Dixit Limaye Pallavi Bhide Payal Godse.
Priority Research Direction Key challenges Fault oblivious, Error tolerant software Hybrid and hierarchical based algorithms (eg linear algebra split across.
4.x Performance Technology drivers – Exascale systems will consist of complex configurations with a huge number of potentially heterogeneous components.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
An Introduction to Software Architecture
The “State” and “Future” of Middleware for HPEC Anthony Skjellum RunTime Computing Solutions, LLC & University of Alabama at Birmingham HPEC 2009.
:: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: ::::: :: Dennis Hoppe (HLRS) ATOM: A near-real time Monitoring.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Reinventing Explicit Parallel Programming for Improved Engineering of High Performance Computing Software Anthony Skjellum, Purushotham Bangalore, Jeff.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
If Exascale by 2018, Really? Yes, if we want it, and here is how Laxmikant Kale.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
System Software for Parallel Computing. Two System Software Components Hard to do the innovation Replacement for Tradition Optimizing Compilers Replacement.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Jan. 29, 2002Grand Challenges in Simulation Issues in Enhancing Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
HPC User Forum Back End Compiler Panel SiCortex Perspective Kevin Harris Compiler Manager April 2009.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
07/09/04 Johan Muskens ( TU/e Computer Science, System Architecture and Networking.
ECE450S – Software Engineering II
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
March 2004 At A Glance NASA’s GSFC GMSEC architecture provides a scalable, extensible ground and flight system approach for future missions. Benefits Simplifies.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Programmability Hiroshi Nakashima Thomas Sterling.
Advanced Object-oriented Design Patterns Creational Design Patterns.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1 VSIPL++: Parallel Performance HPEC 2004 CodeSourcery, LLC September 30, 2004.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Background Computer System Architectures Computer System Software.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CLASSIFICATION OF DESIGN PATTERNS Hladchuk Maksym.
NCSA Strategic Retreat: System Software Trends Bill Gropp.
Defining the Competencies for Leadership- Class Computing Education and Training Steven I. Gordon and Judith D. Gardiner August 3, 2010.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Organizations Are Embracing New Opportunities
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
IS301 – Software Engineering V:
Power is Leading Design Constraint
An Introduction to Software Architecture
On the notion of Variability in Software Product Lines
From Use Cases to Implementation
Presentation transcript:

Department of Computer and Information Sciences September 22, 2011 Toward the Embedded Petascale Architecture: The Dual Roles of Middleware and Software Engineering in Future HPEC Anthony Skjellum, PhD

Background Community has worked on standards in HPC and HPEC for the last 18 years (MPI, VSIPL, DRI, MPI/RT, …) Evolution of thought and practice on abstraction and encapsulation and OO in Signal/Image Processing for HPEC Evolution of HPEC systems over time : Open, Linux, POSIX, common APIs - VSIPL, MPI Systems of 1-4 Single precision Gigaflops in 1999 … Goal of PetaFlop in 2018 Benefits from open source (e.g., GCC, Linux)

Exascale requires unprecedented integration of concerns Apps Apps OS OS Runtime Runtime System System 3rd party codes 3rd party codes Compilers Compilers Fault models Fault models Optimizers/Schedulers Optimizers/Schedulers Global constraints, utility functions, schedules, QoS Global constraints, utility functions, schedules, QoS

Exascale is Unforgiving Global state is not scalable Global state is not scalable Device granularities vary Device granularities vary Many kinds of heterogeneity Many kinds of heterogeneity “Where” and “when” to compute and store?? “Where” and “when” to compute and store?? Systems will evolve quickly Systems will evolve quickly “Tweaking” and “Tuning” current apps insufficient “Tweaking” and “Tuning” current apps insufficient

Embedded Petascale Shares some concerns of Exascale, even though 1/1024 scale Size-weight-power issues may be even more demanding compared to HPC Additional concerns for embedded deployable and rugged Exascale Systems composed of Embedded Petascale Systems? Reuse of Exascale technologies and vice versa appears crucial

High level view of hardware We know that hardware will be massively parallel (millions of entities) Heterogeneous in memory and compute units Subject to many faults Power, space, location, and other constraints apply We know there will be multiple approaches and varied instantiations Embedded Petascale Systems will be scale models of Exascale Systems

Good FastCheap Engineering Maxim: Good-Fast-Cheap - choose 2 Wexelblat's Scheduling Algorithm: Choose two: Good; Fast; Cheap.

Performance/Scalability(Fast) Portability (Good) Productivity (Cheap) Parallel Computing Maxim: Choose at Most 2

Performance/Scalability(Fast) Portability (Good) Productivity (Cheap) Exascale Computing Triangle: Choose at Most 1?

Baseline Assumptions Combinatorial optimization and parameter exploration is needed to achieve high performance Combinatorial optimization and parameter exploration is needed to achieve high performance Polyalgorithm libraries are crucial to achieve high performance (providing optimizers choices with common contracts) Polyalgorithm libraries are crucial to achieve high performance (providing optimizers choices with common contracts) For many years, it has been clear that there are many algorithms for the same problem (at fixed or varying accuracy) … e.g., dense matrix multiplication has huge algorithmic space For many years, it has been clear that there are many algorithms for the same problem (at fixed or varying accuracy) … e.g., dense matrix multiplication has huge algorithmic space Managing complexity for the application is needed Managing complexity for the application is needed

Advanced Software Engineering Needed Every generation of HPC has a big compiler- does-it-all push Every generation of HPC has “we do it all by hand” push Systems initially hard to program, and those successful highly rewarded with performance Applications for defense worth many billions to keep running overshadow cost of systems and TCO for some sectors… new systems constraints to run “legacy” apps Good enough results needed before systems obsolesce

Advanced Software Engineering Important Embedded Petascale, like Exascale, has unprecedented complexity Managing millions of resources difficult Software has to be reusable to be affordable Fault tolerance and QoS are needed Large teams of developers will be used

MOPA - Advanced Software Engineering Models (MDA) - Managing Lifecycle and Structure and Complexity Objects - Managing Complexity Patterns - Reusable Experience Aspects - Global Constraints

Model Driven Architecture Develop all software as large scale Software for Embedded Petascale Use models to Support “Large Scale Construction” and enable complete life cycle Management of applications Treat many more classes of “Code” as “write only” Support plug-ins for optimization, compilers, third-party components

Object-orientation This is not just using C++, also UML, … Object-oriented everywhere as a principle for all artifacts underlies modern software engineering For embedded petascale, OO means that algorithms are abstracted, contracts are abstracted, and there is an ability to mix, match, and switch implementations Middleware represented here as standard families of objects, hierarchies, and contracts

Patterns Design patterns (cf, Erich Gamma and many others) are crucial to large-scale software Design P\patterns for Embedded Exascale together with Families of Components that can describe, implement the patterns will be helpful Lots of research lately on “parallel computing patterns”… right direction Patterns are an engineering way to reuse “tribal knowledge”

Aspects (AOP) AOP is the “responsible way” to apply global constraints to systems Fault models Energy monitoring Cross abstraction barriers (runtime, app, middleware, scheduler) Supports separation of concerns in new dimensions, and also compartmentalization Can be generalized (e.g., Semantic Designs products, Rose Framework) to be extensible compiler technology… languages become extensible

We need a lot of reusable, efficient, modeled software The kind of middleware we need for embedded petascale Relevant to domains for HPEC Validated / Trusted / Modeled Work within a lattice Support free and commercial All competing and collaborating entities Support “product lines” Need common, community scoped repositories (app stores)

What becomes of VSIPL, MPI The best reusable, indivisible operations of communication and computation go into component libraries Patterns of communication and computation are captured VSIPlets and MPIlets (and shmem or PGAS) reside in component libraries (together with characteristics and implementations) Everyone no longer writes their own FFT, and FFTs come with a finite number of flexible contracts

MOPA+Compilers put it all together While component libraries can be assembled by hand, working with models and aspects… Compilers have to take the framework of assembled applications, and choose subsets of components, do offline and online optimization Compilers compile, Optimizers Optimize, Tuners Tune We need to make sure as much is open and can be substituted as possible… monoliths a bad idea

MOPA+Compilers put it all together The application always is evolving in the face of changing constraints: either to new modes, or to new hardware, or to new levels of QoS So a compilation of software is a set of options to run at runtime, and MDA provides means for validation and cataloging of all those “production lines” (We learned a lot before and during DARPA PCA)

Combinatorial Optimization Crucial Offline optimization good for “predefined” modes of operation (cf, DARPA PCA) Online optimization needed for changing conditions (e.g., faults) Software engineering validation of “predefined” modes crucial for HPEC deployments Ability to run at risk, rather than stop working completely will be of value in some fault scenarios This is also called “autotuning” Compilers, schedules and programs use “combinatorial” optimization, not just compilers

How to build community of MOPA for Petascale HPEC? Need an investor (e.g., DARPA)… or investors Need long term transition plan so it doesn’t “go away” Need the community to support the diversity of stakeholders and contributors Participation must be economically viable (competition, cooperation, hybrid, government contributors, freeware) Validation, Classification, Lattices, and Trust all crucial

How to build community of MOPA for Petascale HPEC? Scoped for HPEC communit(ies) so it can be used with confidence Ability to include artifacts that “make us stronger” and reject the rest No one will invest in apps until critical mass present We then need emerging compiler developers to interface with the components Can’t standardize until there is maturity (!?!?) Need to ensure that key architectures supported Many parts should be open to universities, but some parts proprietary and etc

Summary Exascale = Embedded Petascale * 1024 Open Systems Crucial Runtime abstractions must be minimal expensive Software Engineering Advances Must be Exploited: Objects, Models, Aspects, Patterns Integration, Reuse of Components and Models Crucial Need communities of reusable, validated, deployable components for Exascale (commercial and free) We can’t keep reinventing the wheel, the software will be too expensive Combinatorial and Compiler Optimizations Key Middleware (Standards Based) Useful - Framework for Component Libraries

Contact info: Questions? Discussion?