Gauss Students’ Views on Multicore Processors Group members: Yu Yang (presenter), Xiaofang Chen, Subodh Sharma, Sarvani Vakkalanka, Anh Vo, Michael DeLisi,

Slides:



Advertisements
Similar presentations
Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Advertisements

Multiprocessor Architectures for Speculative Multithreading Josep Torrellas, University of Illinois The Bulk Multicore Architecture for Programmability.
Hierarchical Cache Coherence Protocol Verification One Level at a Time through Assume Guarantee Xiaofang Chen, Yu Yang, Michael Delisi, Ganesh Gopalakrishnan.
Transaction Based Modeling and Verification of Hardware Protocols Xiaofang Chen, Steven M. German and Ganesh Gopalakrishnan Supported in part by Intel.
Parallel Programming Motivation and terminology – from ACM/IEEE 2013 curricula.
ESP: A Language for Programmable Devices Sanjeev Kumar, Yitzhak Mandelbaum, Xiang Yu, Kai Li Princeton University.
Prof. Srinidhi Varadarajan Director Center for High-End Computing Systems.
Introductory Courses in High Performance Computing at Illinois David Padua.
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.
March 18, 2008SSE Meeting 1 Mary Hall Dept. of Computer Science and Information Sciences Institute Multicore Chips and Parallel Programming.
Lock-free Cache-friendly Software Queue for Decoupled Software Pipelining Student: Chen Wen-Ren Advisor: Wuu Yang 學生 : 陳韋任 指導教授 : 楊武 Abstract Multicore.
Scheduling Considerations for building Dynamic Verification Tools for MPI Sarvani Vakkalanka, Michael DeLisi Ganesh Gopalakrishnan, Robert M. Kirby School.
Verification of Hierarchical Cache Coherence Protocols for Future Processors Student: Xiaofang Chen Advisor: Ganesh Gopalakrishnan.
Chapter Hardwired vs Microprogrammed Control Multithreading
Parallel Programming Models and Paradigms
The Problem  Rigorous descriptions for widely used APIs essential  Informal documents / Experiments not a substitute Goals / Benefits  Define MPI rigorously.
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
1 Multicores viewed from a correctness perspective Ganesh Gopalakrishnan.
Utah Verifier Group Research Overview Robert Palmer.
1 Reducing Verification Complexity of a Multicore Coherence Protocol Using Assume/Guarantee Xiaofang Chen 1, Yu Yang 1, Ganesh Gopalakrishnan 1, Ching-Tsun.
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,
INTEL CONFIDENTIAL Why Parallel? Why Now? Introduction to Parallel Programming – Part 1.
Joram Benham April 2,  Introduction  Motivation  Multicore Processors  Overview, CELL  Advantages of CMPs  Throughput, Latency  Challenges.
Advances in Language Design
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
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.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Using Model-Checking to Debug Device Firmware Sanjeev Kumar Microprocessor Research Labs, Intel Kai Li Princeton University.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
View-Oriented Parallel Programming for multi-core systems Dr Zhiyi Huang World 45 Univ of Otago.
Programming Paradigms for Concurrency Part 2: Transactional Memories Vasu Singh
Multi-Core Architectures
Software & the Concurrency Revolution by Sutter & Larus ACM Queue Magazine, Sept For CMPS Halverson 1.
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
SJSU SPRING 2011 PARALLEL COMPUTING Parallel Computing CS 147: Computer Architecture Instructor: Professor Sin-Min Lee Spring 2011 By: Alice Cotti.
Integrating and Optimizing Transactional Memory in a Data Mining Middleware Vignesh Ravi and Gagan Agrawal Department of ComputerScience and Engg. The.
Hybrid MPI and OpenMP Parallel Programming
Operating Systems CSE 411 Multi-processor Operating Systems Multi-processor Operating Systems Dec Lecture 30 Instructor: Bhuvan Urgaonkar.
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
Software Transactional Memory Should Not Be Obstruction-Free Robert Ennals Presented by Abdulai Sei.
Programmability Hiroshi Nakashima Thomas Sterling.
ICFEM 2002, Shanghai Reasoning about Hardware and Software Memory Models Abhik Roychoudhury School of Computing National University of Singapore.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
3/12/2013Computer Engg, IIT(BHU)1 OpenMP-1. OpenMP is a portable, multiprocessing API for shared memory computers OpenMP is not a “language” Instead,
SMP Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Hardware Trends CSE451 Andrew Whitaker. Motivation Hardware moves quickly OS code tends to stick around for a while “System building” extends way beyond.
Tools and Libraries for Manycore Computing Kathy Yelick U.C. Berkeley and LBNL.
PERFORMANCE OF THE OPENMP AND MPI IMPLEMENTATIONS ON ULTRASPARC SYSTEM Abstract Programmers and developers interested in utilizing parallel programming.
Lecture 20: Consistency Models, TM
Learning from Mistakes: A Comprehensive Study on Real-World Concurrency Bug Characteristics Ben Shelton.
Chapter 4: Multithreaded Programming
Xiaofang Chen1 Yu Yang1 Ganesh Gopalakrishnan1 Ching-Tsun Chou2
For Massively Parallel Computation The Chaotic State of the Art
Welcome: Intel Multicore Research Conference
Threads Cannot Be Implemented As a Library
Computer Engg, IIT(BHU)
Teaching Parallel Computing with OpenMP on the Raspberry Pi
Intel® Parallel Studio and Advisor
Chapter 4: Threads.
Chapter 4: Threads.
Benjamin Goldberg Compiler Verification and Optimization
Shared Memory Programming
Lecture 22: Consistency Models, TM
EE 4xx: Computer Architecture and Performance Programming
Chapter 4: Threads & Concurrency
Exploring Parallel Computing with OpenMP on the Raspberry Pi
Programming with Shared Memory Specifying parallelism
Presentation transcript:

Gauss Students’ Views on Multicore Processors Group members: Yu Yang (presenter), Xiaofang Chen, Subodh Sharma, Sarvani Vakkalanka, Anh Vo, Michael DeLisi, Geof Sawaya, Mike Kirby, Ganesh Gopalakrishnan (Photo courtesy of Intel®)

Verifying Cache Coherence Protocols RAC L2 Cache+Local Dir L1 Cache Main Mem Chip 1 L1 Cache Global Dir RAC L2 Cache+Local Dir L1 Cache RAC L2 Cache+Local Dir L1 Cache Verification complexity grows exponentially Compositional approaches are needed Hardware components better be loosely-coupled Chip 2 Chip 3 -- Xiaofang

Programmer Challenges from Multicore Majority of existing programmers are more tuned to thinking “sequentially”. To make multicore architectures useful, we need “multicore” programmers. How can we make a programmer's life easier in the multicore era? –Smarter compilers! Future compilers can identify program blocks that can be parallelized. –More architectural support ! Transaction memory can help eliminate program deadlocks and guarantee atomicity with very little effort on the programmers’ part. -- Sarvani

Static Analysis and Verification To guarantee the correctness of concurrent programs –Combination of static analysis and verification is needed Success stories: –In static analysis: Prefast/SDV (Windows) –In verification: SPIN What static analysis can achieve: –Abstraction: Discard irrelevant program information –Cheaper sanity checks than formal verification –Often report races / deadlocks w/o execution Success story: SoftCheck, Inspector etc. –Detect property violations sometimes Success story: Polyspace -- Subodh

OpenMP & Thread Building Blocks (TBB) Threads are great, but error-prone How can we make writing threading programs easier? –OpenMP: exploit loop level parallelism Support high level concepts: critical, atomic, barriers Require much less programming effort Can parallelize a program incrementally –TBB: exploit task level parallelism A template library for writing parallel programs (in C++) Easier to think in tasks than threads (TBB takes care of scheduling tasks to threads) -- Anh Vo

Multicore: general issues The challenges of threading and parallelism must be taught in entry level CS courses. For adoption, programming languages must make parallelism easy. –OpenMP? MPI? Compute clusters can become faster, more powerful, and smaller in size. –Also, it allows for people to have “clusters” at home where they can run complicated tasks faster (such as Could allow for faster, threaded model checking on bigger and more complicated programs. -- Michael DeLisi

Testing Multithreaded Programs Multicore will make multithreaded programs prevalent. –Multithreaded programs are hard to get correct! Why threading programs are hard to write? –When there is something wrong, we cannot debug it in the sequential way! How to effectively test/tune up multicore programs? New programming paradigms? -- Yu Yang

Summary Multicore increases the complexity of hardware verification Multicore introduces new challenges on improving software productivity –Support from compilers? –Effective testing methods? –New programming paradigms?