Tramp Ali-Reza Adl-Tabatabai, Richard L. Hudson, Vijay Menon, Yang Ni, Bratin Saha, Tatiana Shpeisman, Adam Welc.

Slides:



Advertisements
Similar presentations
Dataflow Analysis for Datarace-Free Programs (ESOP 11) Arnab De Joint work with Deepak DSouza and Rupesh Nasre Indian Institute of Science, Bangalore.
Advertisements

Compiler and Runtime Support for Efficient Software Transactional Memory Vijay Menon Programming Systems Lab Ali-Reza Adl-Tabatabai, Brian T. Lewis, Brian.
TRAMP Workshop Some Challenges Facing Transactional Memory Craig Zilles and Lee Baugh University of Illinois at Urbana-Champaign.
CS 345: Chapter 9 Algorithmic Universality and Its Robustness
Software & Services Group PinPlay: A Framework for Deterministic Replay and Reproducible Analysis of Parallel Programs Harish Patil, Cristiano Pereira,
Multiprocessor Architectures for Speculative Multithreading Josep Torrellas, University of Illinois The Bulk Multicore Architecture for Programmability.
IBM’s X10 Presentation by Isaac Dooley CS498LVK Spring 2006.
Code Generation and Optimization for Transactional Memory Construct in an Unmanaged Language Programming Systems Lab Microprocessor Technology Labs Intel.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Rich Transactions on Reasonable Hardware J. Eliot B. Moss Univ. of Massachusetts,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Memory Models: The Case for Rethinking Parallel Languages and Hardware Sarita Adve University of Illinois at Urbana-Champaign
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.
We should define semantics for languages, not for TM Tim Harris (MSR Cambridge)
IBM Software Group © 2005 IBM Corporation Compilation Technology Toward Deterministic Java Performance Mark Stoodley, Mike Fulton Toronto Lab, IBM Canada.
My programming-languages view of TM: Research and Conjectures Dan Grossman University of Washington June 2008.
University of Virginia CSharp (© John Knight 2005) 1 What’s New In C#
Lecture 1: Overview of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++ Designed.
Replay Debugging for Distributed Systems Dennis Geels, Gautam Altekar, Ion Stoica, Scott Shenker.
Project Proposal (Title + Abstract) Due Wednesday, September 4, 2013.
Exceptions and Mistakes CSE788 John Eisenlohr. Big Question How can we improve the quality of concurrent software?
OSE 2013 – synchronization (lec3) 1 Operating Systems Engineering Locking & Synchronization [chapter #4] By Dan Tsafrir,
Real-Time Software Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CSC300 Visual Programming Dr. Craig Reinhart. Objectives Teach the basics of C++ –You won’t be an expert but hopefully a very good novice –GUI development.
JAVA Introduction ● One of the main JAVA design goal is reducing complexity for programmer – Development time is half or less comparing to equivalent C++
 Actor Model  Software Transactional Memory  Data Flow Programming.
Integrating Parallel and Distributed Computing Topics into an Undergraduate CS Curriculum Andrew Danner & Tia Newhall Swarthmore College Third NSF/TCPP.
Microsoft Research Faculty Summit Panacea or Pandora’s Box? Software Transactional Memory Panacea or Pandora’s Box? Christos Kozyrakis Assistant.
© 2004, D. J. Foreman 1 Memory Management. © 2004, D. J. Foreman 2 Building a Module -1  Compiler ■ generates references for function addresses may be.
CDP 2012 Based on “C++ Concurrency In Action” by Anthony Williams and The C++11 Memory Model and GCC WikiThe C++11 Memory Model and GCC Created by Eran.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
1 COMP 3438 – Part II-Lecture 1: Overview of Compiler Design Dr. Zili Shao Department of Computing The Hong Kong Polytechnic Univ.
CDP 2013 Based on “C++ Concurrency In Action” by Anthony Williams, The C++11 Memory Model and GCCThe C++11 Memory Model and GCC Wiki and Herb Sutter’s.
1 Causal-Consistent Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna,
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
Rethinking Hardware and Software for Disciplined Parallelism Sarita V. Adve University of Illinois
Shared Memory Consistency Models. SMP systems support shared memory abstraction: all processors see the whole memory and can perform memory operations.
On-Demand Dynamic Software Analysis Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan December 12,
1 Interprocess Communication (IPC) - Outline Problem: Race condition Solution: Mutual exclusion –Disabling interrupts; –Lock variables; –Strict alternation.
CS510 Concurrent Systems Why the Grass May Not Be Greener on the Other Side: A Comparison of Locking and Transactional Memory.
Computer Science Faculty School of Software Engineering C INTERPRETER AND DEBUGGER (ISO/IEC 9899:2011) Developer: student of 203SE group: Lukyanov Dmitry.
CSE 598c – Virtual Machines Survey Proposal: Improving Performance for the JVM Sandra Rueda.
CoreDet: A Compiler and Runtime System for Deterministic Multithreaded Execution Tom Bergan Owen Anderson, Joe Devietti, Luis Ceze, Dan Grossman To appear.
On-Demand Dynamic Software Analysis Joseph L. Greathouse Ph.D. Candidate Advanced Computer Architecture Laboratory University of Michigan November 29,
Multithreading The objectives of this chapter are: To understand the purpose of multithreading To describe Java's multithreading mechanism.
® July 21, 2004GC Summer School1 Cycles to Recycle: Copy GC Without Stopping the World The Sapphire Collector Richard L. Hudson J. Eliot B. Moss Originally.
Demand-Driven Software Race Detection using Hardware Performance Counters Joseph L. Greathouse †, Zhiqiang Ma ‡, Matthew I. Frank ‡ Ramesh Peri ‡, Todd.
Critical Section Tools (HW interface) locks implemented in ISA – T&S, CAS (O.S. )Semaphores – Counting and Binary (a.k.a a mutex lock) (Augmented O.S.)
USEIMPROVEEVANGELIZE ● Yue Chao ● Sun Campus Ambassador High-Performance Computing with Sun Studio 12.
Intro to ASP.NET CS-422 Dick Steflik. What is.NET As applications in the Enterprise become more and more netcentric and less and less standalone.NET is.
Jim Fawcett CSE775 – Distributed Objects Spring 2017
On-Demand Dynamic Software Analysis
Memory Management © 2004, D. J. Foreman.
JAVA Introduction ការណែនាំពី Java
Runtime Analysis of Hotspot Java Virtual Machine
Java Virtual Machine Complete subject details are available at:
Real-time Software Design
Optimize Your Java Code By Tools
Closure Representations in Higher-Order Programming Languages
COMS Prelim 1 Review Session
Compiler Front End Panel
Does Hardware Transactional Memory Change Everything?
Design and Implementation Issues for Atomicity
Outline Chapter 2 (cont) OS Design OS structure
(Computer fundamental Lab)
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Xinyu Feng University of Science and Technology of China
WG4: Language Integration & Tools
Presentation transcript:

Tramp Ali-Reza Adl-Tabatabai, Richard L. Hudson, Vijay Menon, Yang Ni, Bratin Saha, Tatiana Shpeisman, Adam Welc

TM Semantic and Current Languages Success of TM is dependent on acceptance by practitioners + Practitioners are resistant to changing their languages and SDEs Therefore Adding TM to current languages is important Isolation is where tension between TM and other language semantics is most acute

Non-Repeatable Reads Thread 1: atomic { t1 = x; t2 = x; } Initially x == 0 Thread 2: x = 1; Can t1 != t2 ?

Intermediate Dirty Read Thread 1: atomic { x++; } Initially x == 0 Thread 2: t = x; Can t be odd?

Limit the scope of TM Should we distinguish between Transactional Memory and Transactional Execution? Should we train students not to think of it as Java synchronization on steroids? Should we be optimizing for 1 HW thread per SW thread? –This changes the equations w.r.t. premption safety.

Rethinking TM HW Support TM is a language construct that eases programming Integrated into a language environment –Debugger, Editor, Performance Monitoring Will be subject to aggressive SW optimizations –Compiler writers have really big brains HW TM support must factor in a mature SW stack Analogies: Object orientation, Garbage collection Lots of HW proposed based on un-optimized SW stack Fell by the wayside after SW evolved

Limit HW Support, Expand Applicability Focus on acceleration of STM (and other) constructs Leave semantics and policy to SW. Largest obstacle may be single thread performance Keep proposals simple or it wont be built in time to help TM. Demonstrate mechanisms are applicable to more that TM

Rethinking the stack Sophisticated OS and virtual machine algorithms could be simplified New SDE for concurrent programming. Suppose you preserve read sets, write sets, serialization order of transactional blocks. Could cost be similar to that of a leak detector or a race condition detector? Such a system would allow data mining of execution as well as deterministic replay for performance or debugging. As a practitioner this would be very useful to me. Lets do it in concert with the HW being rethought around many cores.

Thanks