Group 3: Architectural Design for Enhancing Programmability Dean Tullsen, Josep Torrellas, Luis Ceze, Mark Hill, Onur Mutlu, Sampath Kannan, Sarita Adve,

Slides:



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

CS533 Concepts of Operating Systems Class 14 Virtualization and Exokernels.
Multiprocessor Architectures for Speculative Multithreading Josep Torrellas, University of Illinois The Bulk Multicore Architecture for Programmability.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Priority Research Direction (I/O Models, Abstractions and Software) Key challenges What will you do to address the challenges? – Develop newer I/O models.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Some Opportunities and Obstacles in Cross-Layer and Cross-Component (Power) Management Onur Mutlu NSF CPOM Workshop, 2/10/2012.
Introduction CSCI 444/544 Operating Systems Fall 2008.
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.
Workshops on Advancing Computer Architecture Research (ACAR) Sponsored by Computing Community Consortium (CCC) Computing Research Association (CRA) Held.
Assurance through Enhanced Design Methodology Orlando, FL 5 December 2012 Nirav Davé SRI International This effort is sponsored by the Defense Advanced.
CS533 Concepts of Operating Systems Class 14 Virtualization.
Chapter 13 Embedded Systems
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
1 © 1999 Citrix Systems Inc Java on Nemesis Tim Harris.
Center for Embedded Computer Systems University of California, Irvine and San Diego SPARK: A Parallelizing High-Level Synthesis.
What are the functions of an operating system? The operating system is the core software component of your computer. It performs many functions and is,
COMPUTER SYSTEMS An Integrated Approach to Architecture and Operating Systems Chapter 14 Epilogue: A Look Back at the Journey ©Copyright 2008 Umakishore.
Advances in Language Design
What is Concurrent Programming? Maram Bani Younes.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Computer System Architectures Computer System Software
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Cluster Reliability Project ISIS Vanderbilt University.
Programming Paradigms for Concurrency Part 2: Transactional Memories Vasu Singh
1 Advance Computer Architecture CSE 8383 Ranya Alawadhi.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Embedding Constraint Satisfaction using Parallel Soft-Core Processors on FPGAs Prasad Subramanian, Brandon Eames, Department of Electrical Engineering,
Rethinking Hardware and Software for Disciplined Parallelism Sarita V. Adve University of Illinois
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
Dean Tullsen UCSD.  The parallelism crisis has the feel of a relatively new problem ◦ Results from a huge technology shift ◦ Has suddenly become pervasive.
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
Harmony: A Run-Time for Managing Accelerators Sponsor: LogicBlox Inc. Gregory Diamos and Sudhakar Yalamanchili.
Memory Hierarchy Adaptivity An Architectural Perspective Alex Veidenbaum AMRM Project sponsored by DARPA/ITO.
DISTRIBUTED COMPUTING
Black Box Testing : The technique of testing without having any knowledge of the interior workings of the application is Black Box testing. The tester.
Data Center & Large-Scale Systems (updated) Luis Ceze, Bill Feiereisen, Krishna Kant, Richard Murphy, Onur Mutlu, Anand Sivasubramanian, Christos Kozyrakis.
Programmability Hiroshi Nakashima Thomas Sterling.
1 Copyright © 2005, Oracle. All rights reserved. Following a Tuning Methodology.
Computing Systems: Next Call for Proposals Dr. Panagiotis Tsarchopoulos Computing Systems ICT Programme European Commission.
Lecture 27 Multiprocessor Scheduling. Last lecture: VMM Two old problems: CPU virtualization and memory virtualization I/O virtualization Today Issues.
Parallel IO for Cluster Computing Tran, Van Hoai.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
Computer Architecture Lecture 27: Multiprocessors Prof. Onur Mutlu Carnegie Mellon University Spring 2015, 4/6/2015.
740: Computer Architecture Memory Consistency Prof. Onur Mutlu Carnegie Mellon University.
Elec/Comp 526 Spring 2015 High Performance Computer Architecture Instructor Peter Varman DH 2022 (Duncan Hall) rice.edux3990 Office Hours Tue/Thu.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
18-447: Computer Architecture Lecture 30B: Multiprocessors
Welcome: Intel Multicore Research Conference
CS490 Windows Internals Quiz 2 09/27/2013.
Multi-Processing in High Performance Computer Architecture:
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Software Architecture
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
EE 4xx: Computer Architecture and Performance Programming
Operating Systems : Overview
Operating Systems : Overview
Operating Systems : Overview
CSE 542: Operating Systems
Presentation transcript:

Group 3: Architectural Design for Enhancing Programmability Dean Tullsen, Josep Torrellas, Luis Ceze, Mark Hill, Onur Mutlu, Sampath Kannan, Sarita Adve, Satish Narayanasamy

Problem Statement Historically, we have attained sustained performance increases without asking for significant software changes. Continued performance scaling requires software and hardware changes to exploit parallelism. It is now much harder to get programmability, performance and correctness.

“Man-on-the-Moon” Goals Programming for parallel architectures as easy as it is now for sequential architectures Maintaining Moore’s Law for performance (double the speedup every 2 years) No concurrency bugs

Research Issues Programming model Correctness Introspection Scalable Memory and Communication Fabric Resource management

Programming Model Vision: Co-evolve programming models and architectures for programmability, to rapidly attain correctness and performance. Specific research topics: o Programming model that allows:  Potentially express communication (e.g., producer-consumer, pipelined)  Hide/abstract asymmetries o Support for new language features, high-level languages, and safe languages o Understanding the hardware support for common models  Data-parallelism  Task parallelism  Functional o Supporting incremental optimization of an initial correct program implementation that has poor performance o Role of speculation (visible or not visible) o Redefining abstraction of HW/SW interface  Communication, locality, scheduling, synchronization

Correctness Vision: Architecture and programming model that increases the chances of having a correct program Specific research topics: o Extensive framework of tools for testing, debugging, performance monitoring, and code restructuring o Runtime operation of such tools o Hardware primitives to augment/support correctness tools (e.g., associate metadata with data) o Use the extra cores to improve the correctness o Schemes to proactively skip/stop-at defects o Application of machine-learning techniques for correctness o Find techniques that support both software debugging and hardware bring-up o Support for determinism when desired

Introspection Vision: Machine that collects and abstracts data that percolates up to the right level for analysis and adaptation Specific research topics: o Multiple models of interaction with the programmer. Passive (user not involved) or active (the user specifies hints). o Interaction hardware and runtime software o Enhancing monitoring hardware of critical performance/power events o HW/SW infrastructure and algorithms to mine data and identify bottlenecks and inefficiencies o SW/HW that adapts based on the learned information for  Performance and scalability  Energy efficiency  Correctness o Ability for the programmer to convey information to the hardware o Effective support for visualization

Scalable Memory and Communication Fabric Vision: Scalable memory and communication fabric that provides performance, scalability, power efficiency, and flexibility Specific research topics: o Flexible memory hierarchy o Adaptable designs for  Cache coherence  Memory consistency  Communication o Analyze the different needs for different users o Design with pay only what you use; lean and mean o Power proportional design

Resource Management Vision: architecture that supports flexible resource management and allocation, including isolation of software and hardware components for programmability, correctness and performance. Specific research topics: o Design to attain composable performance/power in a highly multiprogramming environment o Sandboxing parallel programs o Communication isolation between threads in the same program and across programs o Rethinking virtual memory and protection in concurrent systems o Application to systems software o Design for Quality of service o Scalable, transparent resource management, including energy

Why is this Transformative? Society has come to depend on substantial, continuous increase in performance. This research will allow us to continue in this path by harnessing parallel processing.