Major Project, CSD411

Size: px
Start display at page:

Download "Major Project, CSD411"

Transcription

1 Major Project, CSD411 Deterministic Execution In Multithreaded Applications Supervisor Prof. Sorav Bansal Ashwin Kumar 2010CS10211 Himanshu Gupta 2010CS Deterministic Execution In Multithreaded Applications

2 Project Overview Multithreaded programming is challenging Race conditions, deadlocks Different runs produce different outputs Non-determinism complicates it further Debugging, testing Reproducing errors in multithreaded applications Existing solutions are inefficient, don t work for general case Coredet: Upto 8x slowdown Kendo: Does not guarantee determinism with data races Start with Dthreads which makes the most significant claims 2 Deterministic Execution In Multithreaded Applications

3 DTHREADS Key ideas Efficient deterministic multithreaded system Threads run as processes (and thus working on isolated memory) Deterministic memory commit protocol Concept of serial (at synchronization points) and parallel phases Enhances performance by eliminating false sharing of cache lines 3 Deterministic Execution In Multithreaded Applications

4 Mid-Term Status Understanding the code flow Testing sample programs on Dthreads Debugging the code 8 Deterministic Execution In Multithreaded Applications

5 Current Status Code is now working Fixed bugs e.g. commit at granularity of long long Evaluated on benchmarks and compared performance with pthreads Analyzed each benchmark for reasons accounting for performance variation among Dthreads and Pthreads 9 Deterministic Execution In Multithreaded Applications

6 Execution Time Execution Time Benchmark Analysis (Part 1) Dthreads = Pthreads Pseudo parallel benchmarks No synchronization primitive other than create and join Matrix Multiply String Match pthreads dthreads pthreads dthreads Dataset Size (Small to Large) Dataset Size (Small to Large) 10 Deterministic Execution In Multithreaded Applications

7 Execution Time Benchmark Analysis (Part 2) Dthreads < Pthreads Benefit of false sharing exposed Parallel program where each thread accumulates read only input values Running as processes means each thread can work using isolated memory Linear Regression Dataset Size (Small to Large) pthreads dthreads 11 Deterministic Execution In Multithreaded Applications

8 Execution Time Benchmark Analysis (Part 3) Dthreads > Pthreads Multiple threads accessing a shared data structure using locks Number of transactions is very large Reverse Index pthreads dthreads Dataset Size (Small to Large) 12 Deterministic Execution In Multithreaded Applications

9 Possible Optimizations (Part 1) Fine grained locking Currently, Dthreads converts all locks into one global lock via the token mechanism Prevents acquisition of independent locks Can modify this to have a locked/unlocked state for every lock Update of lock state requires token 14 Deterministic Execution In Multithreaded Applications

10 Possible Optimizations (Part 2) Handling load imbalances Allowing user to insert explicit synch points in code Trade off between increase in number of transactions and benefit due to load balancing Work Ahead : Work on these optimisations and evaluate performance benefits 15 Deterministic Execution In Multithreaded Applications

11 References DTHREADS: Efficient and Deterministic Multithreading by Tongping Liu, Charlie Curtsinger, Emery D. Berger Kendo: Efficient Deterministic Multithreading in Software by Marek Olszewski, Jason Ansel, Saman Amarasinghe Efficient System-Enforced Deterministic Parallelism by Amittai Aviram, Shu- Chun Weng, Sen Hu, Bryan Ford DoublePlay: Parallelizing Sequential Logging and Replay by Kaushik Veeraraghavan, Dongyoon Lee, Benjamin Wester, Jessica Ouyang, Peter M. Chen, Jason Flinn, Satish Narayanasamy Execution Replay for Multiprocessor Virtual Machines by George W. Dunlap, Dominic G. Lucchetti, Peter M. Chen, Michael A. Fetterman ReTrace: Collecting Execution Trace with Virtual Machine Deterministic Replay by Min Xu, Vyacheslav Malyugin, Jeffrey Sheldon, Ganesh Venkitachalam, Boris Weissman 16 Deterministic Execution In Multithreaded Applications

12 THANK YOU Any Question? 17 Deterministic Execution In Multithreaded Applications

Chimera: Hybrid Program Analysis for Determinism

Chimera: Hybrid Program Analysis for Determinism Chimera: Hybrid Program Analysis for Determinism Dongyoon Lee, Peter Chen, Jason Flinn, Satish Narayanasamy University of Michigan, Ann Arbor - 1 - * Chimera image from http://superpunch.blogspot.com/2009/02/chimera-sketch.html

More information

Samsara: Efficient Deterministic Replay with Hardware Virtualization Extensions

Samsara: Efficient Deterministic Replay with Hardware Virtualization Extensions Samsara: Efficient Deterministic Replay with Hardware Virtualization Extensions Shiru Ren, Chunqi Li, Le Tan, and Zhen Xiao School of Electronics Engineering and Computer Science, Peking University {rsr,

More information

Efficient and highly portable deterministic multithreading (DetLock)

Efficient and highly portable deterministic multithreading (DetLock) Computing (2014) 96:1131 1147 DOI 10.1007/s00607-013-0370-9 Efficient and highly portable deterministic multithreading (DetLock) Hamid Mushtaq Zaid Al-Ars Koen Bertels Received: 22 March 2013 / Accepted:

More information

Deterministic Scaling

Deterministic Scaling Deterministic Scaling Gabriel Southern Madan Das Jose Renau Dept. of Computer Engineering, University of California Santa Cruz {gsouther, madandas, renau}@soe.ucsc.edu http://masc.soe.ucsc.edu ABSTRACT

More information

Performance Issues in Parallelization Saman Amarasinghe Fall 2009

Performance Issues in Parallelization Saman Amarasinghe Fall 2009 Performance Issues in Parallelization Saman Amarasinghe Fall 2009 Today s Lecture Performance Issues of Parallelism Cilk provides a robust environment for parallelization It hides many issues and tries

More information

Efficient System-Enforced Deterministic Parallelism

Efficient System-Enforced Deterministic Parallelism Efficient System-Enforced Deterministic Parallelism Amittai Aviram, Shu-Chun Weng, Sen Hu, Bryan Ford Decentralized/Distributed Systems Group, Yale University http://dedis.cs.yale.edu/ 9 th OSDI, Vancouver

More information

Deterministic OpenMP for Race-Free Parallelism

Deterministic OpenMP for Race-Free Parallelism Deterministic OpenMP for Race-Free Parallelism Amittai Aviram and Bryan Ford Yale University {amittai.aviram, bryan.ford}@yale.edu Recent deterministic parallel programming models show promise for their

More information

Performance Issues in Parallelization. Saman Amarasinghe Fall 2010

Performance Issues in Parallelization. Saman Amarasinghe Fall 2010 Performance Issues in Parallelization Saman Amarasinghe Fall 2010 Today s Lecture Performance Issues of Parallelism Cilk provides a robust environment for parallelization It hides many issues and tries

More information

DTHREADS: Efficient Deterministic

DTHREADS: Efficient Deterministic DTHREADS: Efficient Deterministic Multithreading Tongping Liu, Charlie Curtsinger, and Emery D. Berger Department of Computer Science University of Massachusetts, Amherst Amherst, MA 01003 {tonyliu,charlie,emery}@cs.umass.edu

More information

OPERATING SYSTEM SUPPORT FOR REDUNDANT MULTITHREADING. Björn Döbel (TU Dresden)

OPERATING SYSTEM SUPPORT FOR REDUNDANT MULTITHREADING. Björn Döbel (TU Dresden) OPERATING SYSTEM SUPPORT FOR REDUNDANT MULTITHREADING Björn Döbel (TU Dresden) Brussels, 02.02.2013 Hardware Faults Radiation-induced soft errors Mainly an issue in avionics+space 1 DRAM errors in large

More information

DMP Deterministic Shared Memory Multiprocessing

DMP Deterministic Shared Memory Multiprocessing DMP Deterministic Shared Memory Multiprocessing University of Washington Joe Devietti, Brandon Lucia, Luis Ceze, Mark Oskin A multithreaded voting machine 2 thread 0 thread 1 while (more_votes) { load

More information

DTHREADS: Efficient Deterministic Multithreading

DTHREADS: Efficient Deterministic Multithreading DTHREADS: Efficient Deterministic Multithreading Tongping Liu Charlie Curtsinger Emery D. Berger Dept. of Computer Science University of Massachusetts, Amherst Amherst, MA 01003 {tonyliu,charlie,emery}@cs.umass.edu

More information

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011

Synchronization. CS61, Lecture 18. Prof. Stephen Chong November 3, 2011 Synchronization CS61, Lecture 18 Prof. Stephen Chong November 3, 2011 Announcements Assignment 5 Tell us your group by Sunday Nov 6 Due Thursday Nov 17 Talks of interest in next two days Towards Predictable,

More information

DoublePlay: Parallelizing Sequential Logging and Replay

DoublePlay: Parallelizing Sequential Logging and Replay oubleplay: Parallelizing Sequential Logging and Replay Kaushik Veeraraghavan ongyoon Lee enjamin Wester Jessica Ouyang Peter M. hen Jason Flinn Satish Narayanasamy University of Michigan {kaushikv,dongyoon,bwester,jouyang,pmchen,jflinn,nsatish}@umich.edu

More information

I-1 Introduction. I-0 Introduction. Objectives:

I-1 Introduction. I-0 Introduction. Objectives: I-0 Introduction Objectives: Explain necessity of parallel/multithreaded algorithms. Describe different forms of parallel processing. Present commonly used architectures. Introduce a few basic terms. Comments:

More information

DMP: DETERMINISTIC SHARED- MEMORY MULTIPROCESSING

DMP: DETERMINISTIC SHARED- MEMORY MULTIPROCESSING ... DMP: DETERMINISTIC SHARED- MEMORY MULTIPROCESSING... SHARED-MEMORY MULTICORE AND MULTIPROCESSOR SYSTEMS ARE NONDETERMINISTIC, WHICH FRUSTRATES DEBUGGING AND COMPLICATES TESTING OF MULTITHREADED CODE,

More information

Workload Optimization on Hybrid Architectures

Workload Optimization on Hybrid Architectures IBM OCR project Workload Optimization on Hybrid Architectures IBM T.J. Watson Research Center May 4, 2011 Chiron & Achilles 2003 IBM Corporation IBM Research Goal Parallelism with hundreds and thousands

More information

TERN: Stable Deterministic Multithreading through Schedule Memoization

TERN: Stable Deterministic Multithreading through Schedule Memoization TERN: Stable Deterministic Multithreading through Schedule Memoization Heming Cui, Jingyue Wu, Chia-che Tsai, Junfeng Yang Columbia University Appeared in OSDI 10 Nondeterministic Execution One input many

More information

EE382 Processor Design. Processor Issues for MP

EE382 Processor Design. Processor Issues for MP EE382 Processor Design Winter 1998 Chapter 8 Lectures Multiprocessors, Part I EE 382 Processor Design Winter 98/99 Michael Flynn 1 Processor Issues for MP Initialization Interrupts Virtual Memory TLB Coherency

More information

ROEVER ENGINEERING COLLEGE DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

ROEVER ENGINEERING COLLEGE DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING ROEVER ENGINEERING COLLEGE DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING 16 MARKS CS 2354 ADVANCE COMPUTER ARCHITECTURE 1. Explain the concepts and challenges of Instruction-Level Parallelism. Define

More information

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Dongyoon Lee Benjamin Wester Kaushik Veeraraghavan Satish Narayanasamy Peter M. Chen Jason Flinn Dept. of EECS, University

More information

CS510 Advanced Topics in Concurrency. Jonathan Walpole

CS510 Advanced Topics in Concurrency. Jonathan Walpole CS510 Advanced Topics in Concurrency Jonathan Walpole Threads Cannot Be Implemented as a Library Reasoning About Programs What are the valid outcomes for this program? Is it valid for both r1 and r2 to

More information

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism

Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Respec: Efficient Online Multiprocessor Replay via Speculation and External Determinism Dongyoon Lee Benjamin Wester Kaushik Veeraraghavan Satish Narayanasamy Peter M. Chen Jason Flinn Dept. of EECS, University

More information

Kendo: Efficient Deterministic Multithreading in Software

Kendo: Efficient Deterministic Multithreading in Software Kendo: Efficient Deterministic Multithreading in Software Marek Olszewski Jason Ansel Saman Amarasinghe Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology mareko,

More information

Do you have to reproduce the bug on the first replay attempt?

Do you have to reproduce the bug on the first replay attempt? Do you have to reproduce the bug on the first replay attempt? PRES: Probabilistic Replay with Execution Sketching on Multiprocessors Soyeon Park, Yuanyuan Zhou University of California, San Diego Weiwei

More information

Efficient Deterministic Multithreading Without Global Barriers

Efficient Deterministic Multithreading Without Global Barriers Efficient Deterministic Multithreading Without Global Barriers Kai Lu 1,2 Xu Zhou 1,2 Tom Bergan 3 Xiaoping Wang 1,2 1.Science and Technology on Parallel and Distributed Processing Laboratory, National

More information

Reliable and Efficient Multithreading

Reliable and Efficient Multithreading University of Massachusetts Amherst ScholarWorks@UMass Amherst Doctoral Dissertations Dissertations and Theses Spring 2014 Reliable and Efficient Multithreading Tongping Liu Follow this and additional

More information

CMSC Computer Architecture Lecture 12: Multi-Core. Prof. Yanjing Li University of Chicago

CMSC Computer Architecture Lecture 12: Multi-Core. Prof. Yanjing Li University of Chicago CMSC 22200 Computer Architecture Lecture 12: Multi-Core Prof. Yanjing Li University of Chicago Administrative Stuff! Lab 4 " Due: 11:49pm, Saturday " Two late days with penalty! Exam I " Grades out on

More information

Dynamic Monitoring Tool based on Vector Clocks for Multithread Programs

Dynamic Monitoring Tool based on Vector Clocks for Multithread Programs , pp.45-49 http://dx.doi.org/10.14257/astl.2014.76.12 Dynamic Monitoring Tool based on Vector Clocks for Multithread Programs Hyun-Ji Kim 1, Byoung-Kwi Lee 2, Ok-Kyoon Ha 3, and Yong-Kee Jun 1 1 Department

More information

Embedded System Programming

Embedded System Programming Embedded System Programming Multicore ES (Module 40) Yann-Hang Lee Arizona State University yhlee@asu.edu (480) 727-7507 Summer 2014 The Era of Multi-core Processors RTOS Single-Core processor SMP-ready

More information

Speculative Execution Across Layers

Speculative Execution Across Layers Speculative Execution Across Layers by Benjamin J. Wester A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Computer Science and Engineering) in

More information

Warm-up question (CS 261 review) What is the primary difference between processes and threads from a developer s perspective?

Warm-up question (CS 261 review) What is the primary difference between processes and threads from a developer s perspective? Warm-up question (CS 261 review) What is the primary difference between processes and threads from a developer s perspective? CS 470 Spring 2018 POSIX Mike Lam, Professor Multithreading & Pthreads MIMD

More information

CMSC 330: Organization of Programming Languages

CMSC 330: Organization of Programming Languages CMSC 330: Organization of Programming Languages Multithreading Multiprocessors Description Multiple processing units (multiprocessor) From single microprocessor to large compute clusters Can perform multiple

More information

Advanced Memory Management

Advanced Memory Management Advanced Memory Management Main Points Applications of memory management What can we do with ability to trap on memory references to individual pages? File systems and persistent storage Goals Abstractions

More information

Application Programming

Application Programming Multicore Application Programming For Windows, Linux, and Oracle Solaris Darryl Gove AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Paris

More information

Designing Parallel Programs. This review was developed from Introduction to Parallel Computing

Designing Parallel Programs. This review was developed from Introduction to Parallel Computing Designing Parallel Programs This review was developed from Introduction to Parallel Computing Author: Blaise Barney, Lawrence Livermore National Laboratory references: https://computing.llnl.gov/tutorials/parallel_comp/#whatis

More information

PetaBricks: A Language and Compiler for Algorithmic Choice

PetaBricks: A Language and Compiler for Algorithmic Choice PetaBricks: A Language and Compiler for Algorithmic Choice Jason Ansel, Cy Chan, Yee Lok Wong, Marek Olszewski, Qin Zhao, Alan Edelman and Saman Amarasinghe CSAIL, MIT The problem No one- size- fits- all

More information

Aikido: Accelerating Shared Data Dynamic Analyses

Aikido: Accelerating Shared Data Dynamic Analyses Aikido: Accelerating Shared Data Dynamic Analyses Marek Olszewski Qin Zhao David Koh Jason Ansel Saman Amarasinghe Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology

More information

MELD: Merging Execution- and Language-level Determinism. Joe Devietti, Dan Grossman, Luis Ceze University of Washington

MELD: Merging Execution- and Language-level Determinism. Joe Devietti, Dan Grossman, Luis Ceze University of Washington MELD: Merging Execution- and Language-level Determinism Joe Devietti, Dan Grossman, Luis Ceze University of Washington CoreDet results overhead normalized to nondet 800% 600% 400% 200% 0% 2 4 8 2 4 8 2

More information

Deterministic Replay and Data Race Detection for Multithreaded Programs

Deterministic Replay and Data Race Detection for Multithreaded Programs Deterministic Replay and Data Race Detection for Multithreaded Programs Dongyoon Lee Computer Science Department - 1 - The Shift to Multicore Systems 100+ cores Desktop/Server 8+ cores Smartphones 2+ cores

More information

NVthreads: Practical Persistence for Multi-threaded Applications

NVthreads: Practical Persistence for Multi-threaded Applications NVthreads: Practical Persistence for Multi-threaded Applications Terry Hsu*, Purdue University Helge Brügner*, TU München Indrajit Roy*, Google Inc. Kimberly Keeton, Hewlett Packard Labs Patrick Eugster,

More information

Relaxed Logging for Replay of Multithreaded Applications

Relaxed Logging for Replay of Multithreaded Applications Relaxed Logging for Replay of Multithreaded Applications (extended abstract of the MSc dissertation) Aliaksandra Sankova Departamento de Engenharia Informática Instituto Superior Técnico Advisor: Professor

More information

Tralfamadore: Unifying Source Code and Execution Experience

Tralfamadore: Unifying Source Code and Execution Experience Draft do not circulate. Tralfamadore: Unifying Source Code and Execution Experience (Short Paper) Geoffrey Lefebvre, Brendan Cully, Michael J. Feeley, Norman C. Hutchinson and Andrew Warfield Department

More information

Scalable GPU Graph Traversal!

Scalable GPU Graph Traversal! Scalable GPU Graph Traversal Duane Merrill, Michael Garland, and Andrew Grimshaw PPoPP '12 Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming Benwen Zhang

More information

Table of Contents. Cilk

Table of Contents. Cilk Table of Contents 212 Introduction to Parallelism Introduction to Programming Models Shared Memory Programming Message Passing Programming Shared Memory Models Cilk TBB HPF Chapel Fortress Stapl PGAS Languages

More information

Optimize HPC - Application Efficiency on Many Core Systems

Optimize HPC - Application Efficiency on Many Core Systems Meet the experts Optimize HPC - Application Efficiency on Many Core Systems 2018 Arm Limited Florent Lebeau 27 March 2018 2 2018 Arm Limited Speedup Multithreading and scalability I wrote my program to

More information

Uniparallel execution and its uses

Uniparallel execution and its uses Uniparallel execution and its uses by Kaushik Veeraraghavan A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Computer Science and Engineering)

More information

System-Enforced Determinism: What it Is, How Practical Is It, and What's It Good For?

System-Enforced Determinism: What it Is, How Practical Is It, and What's It Good For? System-Enforced Determinism: What it Is, How Practical Is It, and What's It Good For? Bryan Ford Amittai Aviram, Weiyi Wu, Yu Zhang, Bandan Das, Shu-Chun Weng, Sen Hu Decentralized/Distributed Systems

More information

CMSC 132: Object-Oriented Programming II

CMSC 132: Object-Oriented Programming II CMSC 132: Object-Oriented Programming II Synchronization in Java Department of Computer Science University of Maryland, College Park Multithreading Overview Motivation & background Threads Creating Java

More information

Active Testing for Concurrent Programs

Active Testing for Concurrent Programs Active Testing for Concurrent Programs Pallavi Joshi Mayur Naik Chang-Seo Park Koushik Sen 1/8/2009 ParLab Retreat ParLab, UC Berkeley Intel Research Overview Checking correctness of concurrent programs

More information

Deterministic Shared Memory Multiprocessing

Deterministic Shared Memory Multiprocessing Deterministic Shared Memory Multiprocessing Luis Ceze, University of Washington joint work with Owen Anderson, Tom Bergan, Joe Devietti, Brandon Lucia, Karin Strauss, Dan Grossman, Mark Oskin. Safe MultiProcessing

More information

Deterministic Process Groups in

Deterministic Process Groups in Deterministic Process Groups in Tom Bergan Nicholas Hunt, Luis Ceze, Steven D. Gribble University of Washington A Nondeterministic Program global x=0 Thread 1 Thread 2 t := x x := t + 1 t := x x := t +

More information

MultiThreading. Object Orientated Programming in Java. Benjamin Kenwright

MultiThreading. Object Orientated Programming in Java. Benjamin Kenwright MultiThreading Object Orientated Programming in Java Benjamin Kenwright Outline Review Essential Java Multithreading Examples Today s Practical Review/Discussion Question Does the following code compile?

More information

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process

Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation. What s in a process? Organizing a Process Questions answered in this lecture: CS 537 Lecture 19 Threads and Cooperation Why are threads useful? How does one use POSIX pthreads? Michael Swift 1 2 What s in a process? Organizing a Process A process

More information

Explicitly Parallel Programming with Shared Memory is Insane: At Least Make it Deterministic!

Explicitly Parallel Programming with Shared Memory is Insane: At Least Make it Deterministic! Explicitly Parallel Programming with Shared Memory is Insane: At Least Make it Deterministic! Joe Devietti, Brandon Lucia, Luis Ceze and Mark Oskin University of Washington Parallel Programming is Hard

More information

EECS 570 Final Exam - SOLUTIONS Winter 2015

EECS 570 Final Exam - SOLUTIONS Winter 2015 EECS 570 Final Exam - SOLUTIONS Winter 2015 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: # Points 1 / 21 2 / 32

More information

Hardware and Software Approaches for Deterministic Multi-processor Replay of Concurrent Programs

Hardware and Software Approaches for Deterministic Multi-processor Replay of Concurrent Programs Hardware and Software Approaches for Deterministic Multi-processor Replay of Concurrent Programs Gilles Pokam, Intel Labs, Intel Corporation Cristiano Pereira, Software and Services Group, Intel Corporation

More information

Chapter 5. Multiprocessors and Thread-Level Parallelism

Chapter 5. Multiprocessors and Thread-Level Parallelism Computer Architecture A Quantitative Approach, Fifth Edition Chapter 5 Multiprocessors and Thread-Level Parallelism 1 Introduction Thread-Level parallelism Have multiple program counters Uses MIMD model

More information

ECE 669 Parallel Computer Architecture

ECE 669 Parallel Computer Architecture ECE 669 Parallel Computer Architecture Lecture 9 Workload Evaluation Outline Evaluation of applications is important Simulation of sample data sets provides important information Working sets indicate

More information

C++ Threading. Tim Bailey

C++ Threading. Tim Bailey C++ Threading Introduction Very basic introduction to threads I do not discuss a thread API Easy to learn Use, eg., Boost.threads Standard thread API will be available soon The thread API is too low-level

More information

Optimistic Parallel State-Machine Replication

Optimistic Parallel State-Machine Replication 214 IEEE 33rd International Symposium on Reliable Distributed Systems Optimistic Parallel State-Machine Replication Parisa Jalili Marandi University of Lugano Switzerland Fernando Pedone University of

More information

COREMU: a Portable and Scalable Parallel Full-system Emulator

COREMU: a Portable and Scalable Parallel Full-system Emulator COREMU: a Portable and Scalable Parallel Full-system Emulator Haibo Chen Parallel Processing Institute Fudan University http://ppi.fudan.edu.cn/haibo_chen Full-System Emulator Useful tool for multicore

More information

Samuel T. King, George W. Dunlap, and Peter M. Chen University of Michigan. Presented by: Zhiyong (Ricky) Cheng

Samuel T. King, George W. Dunlap, and Peter M. Chen University of Michigan. Presented by: Zhiyong (Ricky) Cheng Samuel T. King, George W. Dunlap, and Peter M. Chen University of Michigan Presented by: Zhiyong (Ricky) Cheng Outline Background Introduction Virtual Machine Model Time traveling Virtual Machine TTVM

More information

Processor speed. Concurrency Structure and Interpretation of Computer Programs. Multiple processors. Processor speed. Mike Phillips <mpp>

Processor speed. Concurrency Structure and Interpretation of Computer Programs. Multiple processors. Processor speed. Mike Phillips <mpp> Processor speed 6.037 - Structure and Interpretation of Computer Programs Mike Phillips Massachusetts Institute of Technology http://en.wikipedia.org/wiki/file:transistor_count_and_moore%27s_law_-

More information

Revisiting the Past 25 Years: Lessons for the Future. Guri Sohi University of Wisconsin-Madison

Revisiting the Past 25 Years: Lessons for the Future. Guri Sohi University of Wisconsin-Madison Revisiting the Past 25 Years: Lessons for the Future Guri Sohi University of Wisconsin-Madison Outline VLIW OOO Superscalar Enhancing Superscalar And the future 2 Beyond pipelining to ILP Late 1980s to

More information

Multithreaded Programming in Cilk. Matteo Frigo

Multithreaded Programming in Cilk. Matteo Frigo Multithreaded Programming in Cilk Matteo Frigo Multicore challanges Development time: Will you get your product out in time? Where will you find enough parallel-programming talent? Will you be forced to

More information

C++ Concurrency in Action

C++ Concurrency in Action C++ Concurrency in Action Practical Multithreading ANTHONY WILLIAMS 11 MANNING Shelter Island contents preface xv acknowledgments xvii about this booh xix about the cover illustration xxii ~1 Hello, world

More information

Active Testing for Concurrent Programs

Active Testing for Concurrent Programs Active Testing for Concurrent Programs Pallavi Joshi, Mayur Naik, Chang-Seo Park, Koushik Sen 12/30/2008 ROPAS Seminar ParLab, UC Berkeley Intel Research Overview ParLab The Parallel Computing Laboratory

More information

Replication of Concurrent Applications in a Shared Memory Multikernel

Replication of Concurrent Applications in a Shared Memory Multikernel Replication of Concurrent Applications in a Shared Memory Multikernel Yuzhong Wen Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the

More information

Good Practices in Parallel and Scientific Software. Gabriel Pedraza Ferreira

Good Practices in Parallel and Scientific Software. Gabriel Pedraza Ferreira Good Practices in Parallel and Scientific Software Gabriel Pedraza Ferreira gpedraza@uis.edu.co Parallel Software Development Research Universities Supercomputing Centers Oil & Gas 2004 Time Present CAE

More information

Case Study: Using Inspect to Verify and fix bugs in a Work Stealing Deque Simulator

Case Study: Using Inspect to Verify and fix bugs in a Work Stealing Deque Simulator Case Study: Using Inspect to Verify and fix bugs in a Work Stealing Deque Simulator Wei-Fan Chiang 1 Introduction Writing bug-free multi-threaded programs is hard. Bugs in these programs have various types

More information

Common Correctness and Performance Issues

Common Correctness and Performance Issues Common Correctness and Performance Issues Unit 2.b 1 DRAFT: comments to msrpcpcp@microsoft.com Acknowledgments Authored by Sebastian Burckhardt, MSR Redmond 9/20/2010 DRAFT: comments to msrpcpcp@microsoft.com

More information

Lessons Learned During the Development of the CapoOne Deterministic Multiprocessor Replay System

Lessons Learned During the Development of the CapoOne Deterministic Multiprocessor Replay System Lessons Learned During the Development of the CapoOne Deterministic Multiprocessor System Pablo Montesinos, Matthew Hicks, Wonsun Ahn, Samuel T. King and Josep Torrellas Department of Computer Science

More information

Using System-Enforced Determinism to Control Timing Channels

Using System-Enforced Determinism to Control Timing Channels Using System-Enforced Determinism to Control Timing Channels Bryan Ford, Amittai Aviram, Weiyi Wu, Jose Faleiro, Ramki Gummadi Yale University http://dedis.cs.yale.edu/ ASPLOS PC Symposium, November 2,

More information

Predicting Data Races from Program Traces

Predicting Data Races from Program Traces Predicting Data Races from Program Traces Luis M. Carril IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Concurrency &

More information

Parallel Programming Multicore systems

Parallel Programming Multicore systems FYS3240 PC-based instrumentation and microcontrollers Parallel Programming Multicore systems Spring 2011 Lecture #9 Bekkeng, 4.4.2011 Introduction Until recently, innovations in processor technology have

More information

CS3733: Operating Systems

CS3733: Operating Systems Outline CS3733: Operating Systems Topics: Synchronization, Critical Sections and Semaphores (SGG Chapter 6) Instructor: Dr. Tongping Liu 1 Memory Model of Multithreaded Programs Synchronization for coordinated

More information

Parallel Functional Programming Lecture 1. John Hughes

Parallel Functional Programming Lecture 1. John Hughes Parallel Functional Programming Lecture 1 John Hughes Moore s Law (1965) The number of transistors per chip increases by a factor of two every year two years (1975) Number of transistors What shall we

More information

Green-Marl. A DSL for Easy and Efficient Graph Analysis. LSDPO (2017/2018) Paper Presentation Tudor Tiplea (tpt26)

Green-Marl. A DSL for Easy and Efficient Graph Analysis. LSDPO (2017/2018) Paper Presentation Tudor Tiplea (tpt26) Green-Marl A DSL for Easy and Efficient Graph Analysis S. Hong, H. Chafi, E. Sedlar, K. Olukotun [1] LSDPO (2017/2018) Paper Presentation Tudor Tiplea (tpt26) Problem Paper identifies three major challenges

More information

Shared Memory Programming with OpenMP. Lecture 8: Memory model, flush and atomics

Shared Memory Programming with OpenMP. Lecture 8: Memory model, flush and atomics Shared Memory Programming with OpenMP Lecture 8: Memory model, flush and atomics Why do we need a memory model? On modern computers code is rarely executed in the same order as it was specified in the

More information

Plan. Introduction to Multicore Programming. Plan. University of Western Ontario, London, Ontario (Canada) Multi-core processor CPU Coherence

Plan. Introduction to Multicore Programming. Plan. University of Western Ontario, London, Ontario (Canada) Multi-core processor CPU Coherence Plan Introduction to Multicore Programming Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 1 Multi-core Architecture 2 Race Conditions and Cilkscreen (Moreno Maza) Introduction

More information

Detecting and Surviving Data Races using Complementary Schedules

Detecting and Surviving Data Races using Complementary Schedules Detecting and Surviving Data Races using Complementary Schedules Kaushik Veeraraghavan, Peter M. Chen, Jason Flinn, and Satish Narayanasamy University of Michigan {kaushikv,pmchen,jflinn,nsatish}@umich.edu

More information

Review: Creating a Parallel Program. Programming for Performance

Review: Creating a Parallel Program. Programming for Performance Review: Creating a Parallel Program Can be done by programmer, compiler, run-time system or OS Steps for creating parallel program Decomposition Assignment of tasks to processes Orchestration Mapping (C)

More information

POSIX Threads: a first step toward parallel programming. George Bosilca

POSIX Threads: a first step toward parallel programming. George Bosilca POSIX Threads: a first step toward parallel programming George Bosilca bosilca@icl.utk.edu Process vs. Thread A process is a collection of virtual memory space, code, data, and system resources. A thread

More information

Overview. CMSC 330: Organization of Programming Languages. Concurrency. Multiprocessors. Processes vs. Threads. Computation Abstractions

Overview. CMSC 330: Organization of Programming Languages. Concurrency. Multiprocessors. Processes vs. Threads. Computation Abstractions CMSC 330: Organization of Programming Languages Multithreaded Programming Patterns in Java CMSC 330 2 Multiprocessors Description Multiple processing units (multiprocessor) From single microprocessor to

More information

Toward Eidetic Distributed File Systems. Xianzheng Dou, Jason Flinn, Peter M. Chen

Toward Eidetic Distributed File Systems. Xianzheng Dou, Jason Flinn, Peter M. Chen Toward Eidetic Distributed File Systems Xianzheng Dou, Jason Flinn, Peter M. Chen Rich file system features Modern file systems store more than just data Versioning: retention of past state Provenance-aware:

More information

MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. MultiJav: Introduction

MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. MultiJav: Introduction : A Distributed Shared Memory System Based on Multiple Java Virtual Machines X. Chen and V.H. Allan Computer Science Department, Utah State University 1998 : Introduction Built on concurrency supported

More information

Efficient Data Race Detection for Unified Parallel C

Efficient Data Race Detection for Unified Parallel C P A R A L L E L C O M P U T I N G L A B O R A T O R Y Efficient Data Race Detection for Unified Parallel C ParLab Winter Retreat 1/14/2011" Costin Iancu, LBL" Nick Jalbert, UC Berkeley" Chang-Seo Park,

More information

Lightweight Fault Detection in Parallelized Programs

Lightweight Fault Detection in Parallelized Programs Lightweight Fault Detection in Parallelized Programs Li Tan UC Riverside Min Feng NEC Labs Rajiv Gupta UC Riverside CGO 13, Shenzhen, China Feb. 25, 2013 Program Parallelization Parallelism can be achieved

More information

CSE 374 Programming Concepts & Tools

CSE 374 Programming Concepts & Tools CSE 374 Programming Concepts & Tools Hal Perkins Fall 2017 Lecture 22 Shared-Memory Concurrency 1 Administrivia HW7 due Thursday night, 11 pm (+ late days if you still have any & want to use them) Course

More information

Java Byte Code Scheduling Based on the Most-Often-Used-Paths in Programs with Branches

Java Byte Code Scheduling Based on the Most-Often-Used-Paths in Programs with Branches Java Byte Code Scheduling Based on the Most-Often-Used-Paths in Programs with Branches Eryk Laskowski 1, Marek Tudruj 1, Richard Olejnik 2, Bernard Toursel 2 1 Institute of Computer Science PAS, Warsaw,

More information

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING UNIT-1 DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING Year & Semester : III/VI Section : CSE-1 & CSE-2 Subject Code : CS2354 Subject Name : Advanced Computer Architecture Degree & Branch : B.E C.S.E. UNIT-1 1.

More information

Lecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory

Lecture 21: Transactional Memory. Topics: consistency model recap, introduction to transactional memory Lecture 21: Transactional Memory Topics: consistency model recap, introduction to transactional memory 1 Example Programs Initially, A = B = 0 P1 P2 A = 1 B = 1 if (B == 0) if (A == 0) critical section

More information

A Survey in Deterministic Replaying Approaches in Multiprocessors

A Survey in Deterministic Replaying Approaches in Multiprocessors International Journal of Electrical & Computer Sciences IJECS-IJENS Vol:10 No:04 23 A Survey in Deterministic Replaying Approaches in Multiprocessors Ahmad Heydari, Saeed Azimi Abstract most multithread

More information

RCDC: A Relaxed Consistency Deterministic Computer

RCDC: A Relaxed Consistency Deterministic Computer RCDC: A Relaxed Consistency Deterministic Computer Joseph Devietti Jacob Nelson Tom Bergan Luis Ceze Dan Grossman University of Washington, Department of Computer Science & Engineering {devietti,nelson,tbergan,luisceze,djg}@cs.washington.edu

More information

Call Paths for Pin Tools

Call Paths for Pin Tools , Xu Liu, and John Mellor-Crummey Department of Computer Science Rice University CGO'14, Orlando, FL February 17, 2014 What is a Call Path? main() A() B() Foo() { x = *ptr;} Chain of function calls that

More information

Program Graph. Lecture 25: Parallelism & Concurrency. Performance. What does it mean?

Program Graph. Lecture 25: Parallelism & Concurrency. Performance. What does it mean? Program Graph Lecture 25: Parallelism & Concurrency CS 62 Fall 2015 Kim Bruce & Michael Bannister Some slides based on those from Dan Grossman, U. of Washington Program using fork and join can be seen

More information

Page 1. Challenges" Concurrency" CS162 Operating Systems and Systems Programming Lecture 4. Synchronization, Atomic operations, Locks"

Page 1. Challenges Concurrency CS162 Operating Systems and Systems Programming Lecture 4. Synchronization, Atomic operations, Locks CS162 Operating Systems and Systems Programming Lecture 4 Synchronization, Atomic operations, Locks" January 30, 2012 Anthony D Joseph and Ion Stoica http://insteecsberkeleyedu/~cs162 Space Shuttle Example"

More information

Rethinking State-Machine Replication for Parallelism

Rethinking State-Machine Replication for Parallelism Rethinking State-Machine Replication for Parallelism Parisa Jalili Marandi, Carlos Eduardo Bezerra, Fernando Pedone University of Lugano, Switzerland Abstract State-machine replication, a fundamental approach

More information

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines

Introduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines Introduction to OpenMP Introduction OpenMP basics OpenMP directives, clauses, and library routines What is OpenMP? What does OpenMP stands for? What does OpenMP stands for? Open specifications for Multi

More information