GPars. Russel Winder. The concurrency and parallelism framework for Groovy and Java applications.

Size: px
Start display at page:

Download "GPars. Russel Winder. The concurrency and parallelism framework for Groovy and Java applications."

Transcription

1 GPars The concurrency and parallelism framework for Groovy and Java applications Russel

2 Aims and Goals Convince people that they: Can deal with parallelism and concurrency without fear. Already understand GPars. Can use GPars tonight.

3 should tremble in fear at the prospect of using shared-memory multi-threading with Java

4 and even with Groovy.

5 Concurrency Execution as co-routines: Sequences of code give up the execution to pass it to another coroutine.

6 More Concurrency Concurrency is a technique founded in a uniprocessor view of the world. Time-division multiplexing.

7 Parallelism Having multiple executions active all at the same time.

8 Concurrency is a tool for structuring execution where a single processor is used by multiple computations. Parallelism is about making a computation complete faster than using a single processor.

9

10

11

12

13

14

15

16 Squirrel behaviour emulates synchronized software behaviour.

17 Thanks to Paul King Who uses synchronized?

18 Thanks to Paul King You did it wrong.

19 Small addition by me Who uses lock objects?

20 Small addition by me You definitely did it wrong.

21 Locks deny parallelism.

22 The whole purpose of a lock is to prevent parallelism.

23 Parallelism is performance improvement. Performance improvement requires parallelism.

24 Locks deny performance improvement.

25 Locks are needed only if there is mutable shared state.

26 Avoid mutable shared state.

27 Use processes and message passing.

28 It's all easier if processes are single threaded.

29 but how

30 Use appropriate architectural models.

31 Dataflow Actors Operators connected by channels with activity triggered by arrival of data on the channels. Independent processes communicating via asynchronous exchange of messages CSP Sequential processes connected by channels using synchronous message exchange (rendezvous). 31

32 Actors Independent processes communicating via asynchronous exchange of messages 32

33 Dataflow Operators connected by channels with activity triggered by arrival of data on the channels. 33

34 CSP Sequential processes connected by channels using synchronous message exchange (rendezvous). 34

35 We need examples. 35

36 36

37 What is the Value of? Easy, it's known exactly, it's (obviously). 37

38 It's simples Александр Орлов

39 Approximating What is it's value represented as a floating point number? We can only obtain an approximation. A plethora of possible algorithms to choose from, a popular one is to employ the following integral equation. 1 1 = 0 dx x 39

40 One Possible Algorithm Use quadrature to estimate the value of the integral which is the area under the curve. Embarrassingly parallel. 4 n = i=1 n 1 i n With n = 3 not much to do, but potentially lots of error. Use n = 107 or n = 109? 40

41 Commutative and Associative Because addition is commutative and associative, expression can be decomposed into sums of partial sums. 41

42 a+b+c+d+e+f = (a+b)+(c+d)+(e+f) 42

43 Scatter Gather map reduce 43

44 Code 44

45 But isn't this just data parallelism? 45

46 More code 46

47 If you want the code, clone the Git repository: 47

48 Or if you just want to browse: 48

49 The Sleeping Barber Problem 49

50 The Sleeping Barber Problem The barber's shop has a single cutting chair and a row of waiting seats. The barber sleeps in the cutting chair unless trimming a customer. Customers arrive at the shop at intervals. If the barber is asleep, the customer wakes the barber sits in the cutting chair and gets a trim. If the barber is cutting, a new customer checks to see if there is a free waiting seat. If there is join the queue to be trimmed. If there isn't leave disgruntled. Problem originally due to Edsger Dijkstra. 50

51 The cutting chair. The waiting chairs. The barber's shop. A new customer enters the shop, check to see if they can go straight to the cutting chair, if not can they take a waiting chair, if not leave. 51

52 Wikipedia article presents the classic operating systems approach using locks and semaphores. 52

53 More code 53

54 If you want the code, clone the Git repository: 54

55 Or if you just want to browse: 55

56 56

57 57

58 58

59 59

60 60

61 61

62 Squirrels deny parallelism. 62

63 Squirrels deny performance enhancement. 63

64 Don't be a squirrel. 64

65 Do not use explicit locking algorithms. 65

66 Use computational architectures that promote parallelism and hence performance improvement: Actors Dataflow CSP Data Parallelism 66

67 Use GPars. Go on, you know you want to 67

It's All About Processes Communicating

It's All About Processes Communicating It's All About Processes Communicating Russel Winder email: russel@winder.org.uk xmpp: russel@winder.org.uk twitter: russel_winder 1 Aims, Goals and Objects Show that shared memory multi-threading should

More information

Sleeping Barber CSCI 201 Principles of Software Development

Sleeping Barber CSCI 201 Principles of Software Development Sleeping Barber CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Sleeping Barber Outline USC CSCI 201L Sleeping Barber Overview The Sleeping Barber problem contains

More information

Operating Systems and Networks Course: International University Bremen Date: Dr. Jürgen Schönwälder Deadline:

Operating Systems and Networks Course: International University Bremen Date: Dr. Jürgen Schönwälder Deadline: Operating Systems and Networks Course: 320202 International University Bremen Date: 2004-03-26 Dr. Jürgen Schönwälder Deadline: 2004-03-26 Midterm Examination Problem M.1: processes (10 points) Indicate

More information

4.5 Cigarette smokers problem

4.5 Cigarette smokers problem 4.5 Cigarette smokers problem The cigarette smokers problem problem was originally presented by Suhas Patil [8], who claimed that it cannot be solved with semaphores. That claim comes with some qualifications,

More information

CS450 OPERATING SYSTEMS FINAL EXAM ANSWER KEY

CS450 OPERATING SYSTEMS FINAL EXAM ANSWER KEY CS450 OPERATING SYSTEMS FINAL EXAM KEY 1. Provide Java class definitions for each of the components of a monitor. Include specifications for local data and methods (names and arguments, not implementation);

More information

Programming Languages

Programming Languages Programming Languages Tevfik Koşar Lecture - XXVI April 27 th, 2006 1 Roadmap Shared Memory Synchronization Spin Locks Barriers Semaphores Monitors 2 1 Memory Architectures Distributed Memory Shared Memory

More information

Process Management And Synchronization

Process Management And Synchronization Process Management And Synchronization In a single processor multiprogramming system the processor switches between the various jobs until to finish the execution of all jobs. These jobs will share the

More information

The Rise and Rise of Dataflow in the JavaVerse

The Rise and Rise of Dataflow in the JavaVerse The Rise and Rise of Dataflow in the JavaVerse @russel_winder russel@winder.org.uk https://www.russel.org.uk 1 The Plan for the Session Stuff. More stuff. Even more stuff possibly. Summary and conclusions

More information

PROCESS SYNCHRONIZATION

PROCESS SYNCHRONIZATION PROCESS SYNCHRONIZATION Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores Classic Problems of Synchronization Monitors Synchronization

More information

107 學年度 (2018 年秋季班 ) 作業系統 學期群組計畫需求說明書

107 學年度 (2018 年秋季班 ) 作業系統 學期群組計畫需求說明書 107 學年度 (2018 年秋季班 ) 作業系統 學期群組計畫需求說明書 * 學 學系 jong@cs.nccu.edu.tw 需求書 期 2018 年 9 18 1 1. 組 09/25 4 學期群組計畫 2. 3. 學 Multi-Thread Synchronization 群組計畫 Python, C, C++, Java, Scala, etc Multi-Thread Semaphore,

More information

COMP 346 WINTER Tutorial 5 MONITORS

COMP 346 WINTER Tutorial 5 MONITORS COMP 346 WINTER 2018 1 Tutorial 5 MONITORS WHY DO WE NEED MONITORS? Semaphores are very useful for solving concurrency problems But it s easy to make mistakes! If proper usage of semaphores is failed by

More information

Puzzle: Write synchronization code for oxygen and hydrogen molecules that enforces these constraints.

Puzzle: Write synchronization code for oxygen and hydrogen molecules that enforces these constraints. Problem 2: H 2 O Building Problem There are two kinds of threads, oxygen and hydrogen. In order to assemble these threads into water molecules, we have to create a barrier that makes each thread wait until

More information

Example: Sleeping Barber (Midterm 2002)

Example: Sleeping Barber (Midterm 2002) CS 372H Spring 2010 February 23, 2010 Potentially useful, if convoluted, example, to test your understanding of how to do concurrent programming. [Thanks to Mike Dahlin.] Example: Sleeping Barber (Midterm

More information

Consistency: Relaxed. SWE 622, Spring 2017 Distributed Software Engineering

Consistency: Relaxed. SWE 622, Spring 2017 Distributed Software Engineering Consistency: Relaxed SWE 622, Spring 2017 Distributed Software Engineering Review: HW2 What did we do? Cache->Redis Locks->Lock Server Post-mortem feedback: http://b.socrative.com/ click on student login,

More information

Consistency: Strict & Sequential. SWE 622, Spring 2017 Distributed Software Engineering

Consistency: Strict & Sequential. SWE 622, Spring 2017 Distributed Software Engineering Consistency: Strict & Sequential SWE 622, Spring 2017 Distributed Software Engineering Review: Real Architectures N-Tier Web Architectures Internet Clients External Cache Internal Cache Web Servers Misc

More information

1995 Paper 10 Question 7

1995 Paper 10 Question 7 995 Paper 0 Question 7 Why are multiple buffers often used between producing and consuming processes? Describe the operation of a semaphore. What is the difference between a counting semaphore and a binary

More information

Contribution:javaMultithreading Multithreading Prof. Dr. Ralf Lämmel Universität Koblenz-Landau Software Languages Team

Contribution:javaMultithreading Multithreading Prof. Dr. Ralf Lämmel Universität Koblenz-Landau Software Languages Team http://101companies.org/wiki/ Contribution:javaMultithreading Multithreading Prof. Dr. Ralf Lämmel Universität Koblenz-Landau Software Languages Team Non-101samples available here: https://github.com/101companies/101repo/tree/master/technologies/java_platform/samples/javathreadssamples

More information

Chapter 6: Process Synchronization. Operating System Concepts 8 th Edition,

Chapter 6: Process Synchronization. Operating System Concepts 8 th Edition, Chapter 6: Process Synchronization, Silberschatz, Galvin and Gagne 2009 Module 6: Process Synchronization Background The Critical-Section Problem Peterson s Solution Synchronization Hardware Semaphores

More information

Concurrency. Unleash your processor(s) Václav Pech

Concurrency. Unleash your processor(s) Václav Pech Concurrency Unleash your processor(s) Václav Pech About me Passionate programmer Concurrency enthusiast GPars @ Codehaus lead Groovy contributor Technology evangelist @ JetBrains http://www.jroller.com/vaclav

More information

Homework 2: Implementing a Firewall with Load Sharing

Homework 2: Implementing a Firewall with Load Sharing Homework 2: Implementing a Firewall with Load Sharing The purpose of this homework is to simulate a redundant firewall to compare performance of one versus multiple processors, and various queue sizes.

More information

5 Classical IPC Problems

5 Classical IPC Problems OPERATING SYSTEMS CLASSICAL IPC PROBLEMS 2 5 Classical IPC Problems The operating systems literature is full of interesting problems that have been widely discussed and analyzed using a variety of synchronization

More information

Concurrency, Thread. Dongkun Shin, SKKU

Concurrency, Thread. Dongkun Shin, SKKU Concurrency, Thread 1 Thread Classic view a single point of execution within a program a single PC where instructions are being fetched from and executed), Multi-threaded program Has more than one point

More information

Project 4: Synchronization

Project 4: Synchronization Project 4: Synchronization CS 311 For this project, you ll implement variations of two of the classic synchronization problems: Dining Philosophers and The Sleeping Barber. You ll use Pthreads mutex and

More information

IT 540 Operating Systems ECE519 Advanced Operating Systems

IT 540 Operating Systems ECE519 Advanced Operating Systems IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (5 th Week) (Advanced) Operating Systems 5. Concurrency: Mutual Exclusion and Synchronization 5. Outline Principles

More information

Today: Synchronization. Recap: Synchronization

Today: Synchronization. Recap: Synchronization Today: Synchronization Synchronization Mutual exclusion Critical sections Example: Too Much Milk Locks Synchronization primitives are required to ensure that only one thread executes in a critical section

More information

Copyright 2013 Thomas W. Doeppner. IX 1

Copyright 2013 Thomas W. Doeppner. IX 1 Copyright 2013 Thomas W. Doeppner. IX 1 If we have only one thread, then, no matter how many processors we have, we can do only one thing at a time. Thus multiple threads allow us to multiplex the handling

More information

Lecture #10: Synchronization wrap up

Lecture #10: Synchronization wrap up Lecture #10: Synchronization wrap up Review -- 1 min Monitor = lock + condition variables Mesa v. Hoare semantics Advice/Summary Fall 2001 midterm: Every program with incorrect semantic behavior violated

More information

Operating Systems Comprehensive Exam. There are five questions on this exam. Please answer any four questions total

Operating Systems Comprehensive Exam. There are five questions on this exam. Please answer any four questions total Operating Systems Comprehensive Exam There are five questions on this exam. Please answer any four questions. ID 1 2 3 4 5 total 1) The following questions pertain to McKusick et al's A Fast File System

More information

CSCI 447 Operating Systems Filip Jagodzinski

CSCI 447 Operating Systems Filip Jagodzinski Filip Jagodzinski Announcements Homework 2 you have 2 weeks start now Book questions including two custom ones A single programming task File names and directories, class conventions homework2-script,

More information

Chapter Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level

Chapter Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level Concurrency can occur at four levels: 1. Machine instruction level 2. High-level language statement level 3. Unit level 4. Program level Because there are no language issues in instruction- and program-level

More information

Roadmap. Readers-Writers Problem. Readers-Writers Problem. Readers-Writers Problem (Cont.) Dining Philosophers Problem.

Roadmap. Readers-Writers Problem. Readers-Writers Problem. Readers-Writers Problem (Cont.) Dining Philosophers Problem. CSE 421/521 - Operating Systems Fall 2011 Lecture - X Process Synchronization & Deadlocks Roadmap Classic Problems of Synchronization Readers and Writers Problem Dining-Philosophers Problem Sleeping Barber

More information

Synchronization SPL/2010 SPL/20 1

Synchronization SPL/2010 SPL/20 1 Synchronization 1 Overview synchronization mechanisms in modern RTEs concurrency issues places where synchronization is needed structural ways (design patterns) for exclusive access 2 Overview synchronization

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Scripting 1 Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Rationale C++ isn't the best choice for all problems Complicated feature set, syntax Low-level,

More information

Specifications and Modeling

Specifications and Modeling 12 Specifications and Modeling Peter Marwedel TU Dortmund, Informatik 12 Springer, 2010 2012 年 10 月 17 日 These slides use Microsoft clip arts. Microsoft copyright restrictions apply. Hypothetical design

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

Chapter 5 Concurrency: Mutual Exclusion. and. Synchronization. Operating Systems: Internals. and. Design Principles

Chapter 5 Concurrency: Mutual Exclusion. and. Synchronization. Operating Systems: Internals. and. Design Principles Operating Systems: Internals and Design Principles Chapter 5 Concurrency: Mutual Exclusion and Synchronization Seventh Edition By William Stallings Designing correct routines for controlling concurrent

More information

Understandable Concurrency

Understandable Concurrency Edward A. Lee Professor, Chair of EE, and Associate Chair of EECS Director, CHESS: Center for Hybrid and Embedded Software Systems Director, Ptolemy Project UC Berkeley Chess Review November 21, 2005 Berkeley,

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2004 Lecture 9: Readers-Writers and Language Support for Synchronization 9.1.2 Constraints 1. Readers can access database

More information

SYNCHRONIZATION M O D E R N O P E R A T I N G S Y S T E M S R E A D 2. 3 E X C E P T A N D S P R I N G 2018

SYNCHRONIZATION M O D E R N O P E R A T I N G S Y S T E M S R E A D 2. 3 E X C E P T A N D S P R I N G 2018 SYNCHRONIZATION M O D E R N O P E R A T I N G S Y S T E M S R E A D 2. 3 E X C E P T 2. 3. 8 A N D 2. 3. 1 0 S P R I N G 2018 INTER-PROCESS COMMUNICATION 1. How a process pass information to another process

More information

Implementing Mutual Exclusion. Sarah Diesburg Operating Systems CS 3430

Implementing Mutual Exclusion. Sarah Diesburg Operating Systems CS 3430 Implementing Mutual Exclusion Sarah Diesburg Operating Systems CS 3430 From the Previous Lecture The too much milk example shows that writing concurrent programs directly with load and store instructions

More information

Chapter 13 Topics. Introduction. Introduction

Chapter 13 Topics. Introduction. Introduction Chapter 13 Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Java Threads C# Threads Statement-Level Concurrency Copyright 2006 Pearson Addison-Wesley. All rights reserved.

More information

740: Computer Architecture Memory Consistency. Prof. Onur Mutlu Carnegie Mellon University

740: Computer Architecture Memory Consistency. Prof. Onur Mutlu Carnegie Mellon University 740: Computer Architecture Memory Consistency Prof. Onur Mutlu Carnegie Mellon University Readings: Memory Consistency Required Lamport, How to Make a Multiprocessor Computer That Correctly Executes Multiprocess

More information

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017 CS 471 Operating Systems Yue Cheng George Mason University Fall 2017 1 Review: Sync Terminology Worksheet 2 Review: Semaphores 3 Semaphores o Motivation: Avoid busy waiting by blocking a process execution

More information

Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify

Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify http://cs.lth.se/eda040 Real-Time and Concurrent Programming Lecture 4 (F4): Monitors: synchronized, wait and notify Klas Nilsson 2016-09-20 http://cs.lth.se/eda040 F4: Monitors: synchronized, wait and

More information

CS 162 Midterm Exam. October 18, This is a closed book examination. You have 60 minutes to answer as many questions

CS 162 Midterm Exam. October 18, This is a closed book examination. You have 60 minutes to answer as many questions CS 162 Midterm Exam October 18, 1993 Your Name: Lecture (A.M. or P.M.): General Information: This is a closed book examination. You have 60 minutes to answer as many questions as possible. The number in

More information

Lecture 13 Condition Variables

Lecture 13 Condition Variables Lecture 13 Condition Variables Contents In this lecture, you will learn Condition Variables And how to use CVs to solve The Producer/Consumer (Bounded Buffer) Problem Review Thus far we have developed

More information

Lecture #7: Implementing Mutual Exclusion

Lecture #7: Implementing Mutual Exclusion Lecture #7: Implementing Mutual Exclusion Review -- 1 min Solution #3 to too much milk works, but it is really unsatisfactory: 1) Really complicated even for this simple example, hard to convince yourself

More information

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras

Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Advanced Operations Research Prof. G. Srinivasan Department of Management Studies Indian Institute of Technology, Madras Lecture 32 Multiple Server Queueing Models In this lecture, we continue our discussion

More information

Roadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - XI Deadlocks - II. Louisiana State University

Roadmap. Tevfik Ko!ar. CSC Operating Systems Fall Lecture - XI Deadlocks - II. Louisiana State University CSC 4103 - Operating Systems Fall 2009 Lecture - XI Deadlocks - II Tevfik Ko!ar Louisiana State University September 29 th, 2009 1 Roadmap Classic Problems of Synchronization Bounded Buffer Readers-Writers

More information

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: ,

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD: , Question 2: (15 Marks) The Sleeping-Barber Problem: A barbershop consists of a waiting room with n chairs, and the barber room containing the barber chair. If there are no customers to be served, the barber

More information

Performance Throughput Utilization of system resources

Performance Throughput Utilization of system resources Concurrency 1. Why concurrent programming?... 2 2. Evolution... 2 3. Definitions... 3 4. Concurrent languages... 5 5. Problems with concurrency... 6 6. Process Interactions... 7 7. Low-level Concurrency

More information

Roadmap. Bounded-Buffer Problem. Classical Problems of Synchronization. Bounded Buffer 1 Semaphore Soln. Bounded Buffer 1 Semaphore Soln. Tevfik Ko!

Roadmap. Bounded-Buffer Problem. Classical Problems of Synchronization. Bounded Buffer 1 Semaphore Soln. Bounded Buffer 1 Semaphore Soln. Tevfik Ko! CSC 4103 - Operating Systems Fall 2009 Lecture - XI Deadlocks - II Roadmap Classic Problems of Synchronization Bounded Buffer Readers-Writers Dining Philosophers Sleeping Barber Deadlock Prevention Tevfik

More information

UNIT -3 PROCESS AND OPERATING SYSTEMS 2marks 1. Define Process? Process is a computational unit that processes on a CPU under the control of a scheduling kernel of an OS. It has a process structure, called

More information

Tales from the Workshops

Tales from the Workshops Tales from the Workshops Dr Russel Winder email: russel@winder.org.uk twitter: @russel_winder Web: http://www.russel.org.uk 1 Agile is the new black. 2 Aims, goals, objectives 3 Aims, goals, objectives

More information

Operating systems. Lecture 12

Operating systems. Lecture 12 Operating systems. Lecture 12 Michał Goliński 2018-12-18 Introduction Recall Critical section problem Peterson s algorithm Synchronization primitives Mutexes Semaphores Plan for today Classical problems

More information

Chapter 5 Concurrency: Mutual Exclusion and Synchronization

Chapter 5 Concurrency: Mutual Exclusion and Synchronization Operating Systems: Internals and Design Principles Chapter 5 Concurrency: Mutual Exclusion and Synchronization Seventh Edition By William Stallings Designing correct routines for controlling concurrent

More information

Threading the Code. Self-Review Questions. Self-review 11.1 What is a thread and what is a process? What is the difference between the two?

Threading the Code. Self-Review Questions. Self-review 11.1 What is a thread and what is a process? What is the difference between the two? Threading the Code 11 Self-Review Questions Self-review 11.1 What is a thread and what is a process? What is the difference between the two? Self-review 11.2 What does the scheduler in an operating system

More information

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009

Lecture 17: Threads and Scheduling. Thursday, 05 Nov 2009 CS211: Programming and Operating Systems Lecture 17: Threads and Scheduling Thursday, 05 Nov 2009 CS211 Lecture 17: Threads and Scheduling 1/22 Today 1 Introduction to threads Advantages of threads 2 User

More information

IV. Process Synchronisation

IV. Process Synchronisation IV. Process Synchronisation Operating Systems Stefan Klinger Database & Information Systems Group University of Konstanz Summer Term 2009 Background Multiprogramming Multiple processes are executed asynchronously.

More information

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique

Parallelism. Master 1 International. Andrea G. B. Tettamanzi. Université de Nice Sophia Antipolis Département Informatique Parallelism Master 1 International Andrea G. B. Tettamanzi Université de Nice Sophia Antipolis Département Informatique andrea.tettamanzi@unice.fr Andrea G. B. Tettamanzi, 2014 1 Lecture 5, Part a Languages

More information

Last Class: Synchronization

Last Class: Synchronization Last Class: Synchronization Synchronization primitives are required to ensure that only one thread executes in a critical section at a time. Concurrent programs Low-level atomic operations (hardware) load/store

More information

Chapter 13. Concurrency ISBN

Chapter 13. Concurrency ISBN Chapter 13 Concurrency ISBN 0-321-49362-1 Chapter 13 Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Message Passing Ada Support for Concurrency Java Threads C# Threads

More information

Synchronization II: EventBarrier, Monitor, and a Semaphore. COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala

Synchronization II: EventBarrier, Monitor, and a Semaphore. COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala Synchronization II: EventBarrier, Monitor, and a Semaphore COMPSCI210 Recitation 4th Mar 2013 Vamsi Thummala Check point: Mission in progress Master synchronization techniques Develop best practices for

More information

Exercises 6 Parallel Processors and Programs

Exercises 6 Parallel Processors and Programs Exercises 6 Parallel Processors and Programs Computer Organization and Components / Datorteknik och komponenter (IS1500), 9 hp Computer Hardware Engineering / Datorteknik, grundkurs (IS1200), 7.5 hp KTH

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

Concurrent Programming

Concurrent Programming Concurrency Concurrent Programming A sequential program has a single thread of control. Its execution is called a process. A concurrent program has multiple threads of control. They may be executed as

More information

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed

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

Interprocess Communication and Synchronization

Interprocess Communication and Synchronization Chapter 2 (Second Part) Interprocess Communication and Synchronization Slide Credits: Jonathan Walpole Andrew Tanenbaum 1 Outline Race Conditions Mutual Exclusion and Critical Regions Mutex s Test-And-Set

More information

Lecture 27: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem

Lecture 27: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem COMP 322: Fundamentals of Parallel Programming Lecture 27: Safety and Liveness Properties, Java Synchronizers, Dining Philosophers Problem Mack Joyner and Zoran Budimlić {mjoyner, zoran}@rice.edu http://comp322.rice.edu

More information

MULTI-THREADED QUERIES

MULTI-THREADED QUERIES 15-721 Project 3 Final Presentation MULTI-THREADED QUERIES Wendong Li (wendongl) Lu Zhang (lzhang3) Rui Wang (ruiw1) Project Objective Intra-operator parallelism Use multiple threads in a single executor

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002 CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002 Lecture 6: Synchronization 6.0 Main points More concurrency examples Synchronization primitives 6.1 A Larger Concurrent

More information

Multithreading and Interactive Programs

Multithreading and Interactive Programs Multithreading and Interactive Programs CS160: User Interfaces John Canny. Last time Model-View-Controller Break up a component into Model of the data supporting the App View determining the look of the

More information

Operating Systems. Week 7 5 th Semester, 2012 IN Fei Peng PAI Group University of Fribourg

Operating Systems. Week 7 5 th Semester, 2012 IN Fei Peng PAI Group University of Fribourg Operating Systems Week 7 5 th Semester, 2012 IN. 5012 Fei Peng PAI Group University of Fribourg 6.1 Dining Philosophers Problem a. In the solution to the dining philosophers problem (Fig. 2-20), why is

More information

Last Class: CPU Scheduling! Adjusting Priorities in MLFQ!

Last Class: CPU Scheduling! Adjusting Priorities in MLFQ! Last Class: CPU Scheduling! Scheduling Algorithms: FCFS Round Robin SJF Multilevel Feedback Queues Lottery Scheduling Review questions: How does each work? Advantages? Disadvantages? Lecture 7, page 1

More information

1

1 1 2 3 5 The database kernel runs as one process divided into threads. 6 Threads can be active in parallel on several processors within the operating system. Threads perform various tasks. 7 The runtime

More information

Flat Parallelization. V. Aksenov, ITMO University P. Kuznetsov, ParisTech. July 4, / 53

Flat Parallelization. V. Aksenov, ITMO University P. Kuznetsov, ParisTech. July 4, / 53 Flat Parallelization V. Aksenov, ITMO University P. Kuznetsov, ParisTech July 4, 2017 1 / 53 Outline Flat-combining PRAM and Flat parallelization PRAM binary heap with Flat parallelization ExtractMin Insert

More information

Synchronization in Concurrent Programming. Amit Gupta

Synchronization in Concurrent Programming. Amit Gupta Synchronization in Concurrent Programming Amit Gupta Announcements Project 1 grades are out on blackboard. Detailed Grade sheets to be distributed after class. Project 2 grades should be out by next Thursday.

More information

Distributed Programming

Distributed Programming Distributed Programming Lecture 02 - Processes, Threads and Synchronization Edirlei Soares de Lima Programs and Processes What is a computer program? Is a sequence

More information

Java Simulator for Modeling Concurrent Events

Java Simulator for Modeling Concurrent Events Java Simulator for Modeling Concurrent Events Weston Jossey College of Computer and Information Science Northeastern University Boston, MA 02115 wjossey@ccs.neu.edu Simona Boboila College of Computer and

More information

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016

Introduction to Concurrent Software Systems. CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 Introduction to Concurrent Software Systems CSCI 5828: Foundations of Software Engineering Lecture 12 09/29/2016 1 Goals Present an overview of concurrency in software systems Review the benefits and challenges

More information

Speculative Parallelism. Java & Object-Oriented Programming. Reading Assignment

Speculative Parallelism. Java & Object-Oriented Programming. Reading Assignment Speculative Parallelism Prolog also lends itself nicely to speculative parallelism. In this form of parallelism, we guess or speculate that some computation may be needed in the future and start it early.

More information

Concurrency: a crash course

Concurrency: a crash course Chair of Software Engineering Carlo A. Furia, Marco Piccioni, Bertrand Meyer Concurrency: a crash course Concurrent computing Applications designed as a collection of computational units that may execute

More information

Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - X Deadlocks - I. University at Buffalo. Synchronization structures

Roadmap. Tevfik Koşar. CSE 421/521 - Operating Systems Fall Lecture - X Deadlocks - I. University at Buffalo. Synchronization structures CSE 421/521 - Operating Systems Fall 2012 Lecture - X Deadlocks - I Tevfik Koşar University at Buffalo October 2nd, 2012 1 Roadmap Synchronization structures Problems with Semaphores Monitors Condition

More information

Roadmap. Problems with Semaphores. Semaphores. Monitors. Monitor - Example. Tevfik Koşar. CSE 421/521 - Operating Systems Fall 2012

Roadmap. Problems with Semaphores. Semaphores. Monitors. Monitor - Example. Tevfik Koşar. CSE 421/521 - Operating Systems Fall 2012 CSE 421/521 - Operating Systems Fall 2012 Lecture - X Deadlocks - I Tevfik Koşar Synchronization structures Problems with Semaphores Monitors Condition Variables Roadmap The Deadlock Problem Characterization

More information

Operating Systems. Synchronization, part 3 Monitors, classical sync. problems

Operating Systems. Synchronization, part 3 Monitors, classical sync. problems Operating Systems Synchronization, part 3 Monitors, classical sync. problems 1 Monitor Monitor a synchronization primitive A monitor is a collection of procedures, variables and data structures, grouped

More information

CS 537 Lecture 8 Monitors. Thread Join with Semaphores. Dining Philosophers. Parent thread. Child thread. Michael Swift

CS 537 Lecture 8 Monitors. Thread Join with Semaphores. Dining Philosophers. Parent thread. Child thread. Michael Swift CS 537 Lecture 8 Monitors Michael Swift Two Classes of Synchronization Problems Uniform resource usage with simple scheduling constraints No other variables needed to express relationships Use one semaphore

More information

Unit I. Chapter 2: Process and Threads

Unit I. Chapter 2: Process and Threads Unit I Chapter 2: Process and Threads Introduction: Processes are one of the oldest and most important abstractions that operating systems provide. They support the ability to have (pseudo) simultaneous

More information

10/10/ Gribble, Lazowska, Levy, Zahorjan 2. 10/10/ Gribble, Lazowska, Levy, Zahorjan 4

10/10/ Gribble, Lazowska, Levy, Zahorjan 2. 10/10/ Gribble, Lazowska, Levy, Zahorjan 4 What s in a process? CSE 451: Operating Systems Autumn 2010 Module 5 Threads Ed Lazowska lazowska@cs.washington.edu Allen Center 570 A process consists of (at least): An, containing the code (instructions)

More information

LANGUAGE AND POWER: A RESOURCE BOOK FOR STUDENTS (ROUTLEDGE ENGLISH LANGUAGE INT BY PAUL SIMPSON

LANGUAGE AND POWER: A RESOURCE BOOK FOR STUDENTS (ROUTLEDGE ENGLISH LANGUAGE INT BY PAUL SIMPSON LANGUAGE AND POWER: A RESOURCE BOOK FOR STUDENTS (ROUTLEDGE ENGLISH LANGUAGE INT BY PAUL SIMPSON DOWNLOAD EBOOK : Click link bellow and free register to download ebook: STUDENTS (ROUTLEDGE ENGLISH LANGUAGE

More information

Design Patterns for Real-Time Computer Music Systems

Design Patterns for Real-Time Computer Music Systems Design Patterns for Real-Time Computer Music Systems Roger B. Dannenberg and Ross Bencina 4 September 2005 This document contains a set of design patterns for real time systems, particularly for computer

More information

What s in a process?

What s in a process? CSE 451: Operating Systems Winter 2015 Module 5 Threads Mark Zbikowski mzbik@cs.washington.edu Allen Center 476 2013 Gribble, Lazowska, Levy, Zahorjan What s in a process? A process consists of (at least):

More information

Threaded Programming. Lecture 9: Alternatives to OpenMP

Threaded Programming. Lecture 9: Alternatives to OpenMP Threaded Programming Lecture 9: Alternatives to OpenMP What s wrong with OpenMP? OpenMP is designed for programs where you want a fixed number of threads, and you always want the threads to be consuming

More information

Notes to Instructors Concerning the BLITZ Projects

Notes to Instructors Concerning the BLITZ Projects Overview Notes to Instructors Concerning the BLITZ Projects Harry H. Porter III, Ph.D. Department of Computer Science Portland State University April 14, 2006 Revised: September 17, 2007 The BLITZ System

More information

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011

Threads. Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Raju Pandey Department of Computer Sciences University of California, Davis Spring 2011 Threads Effectiveness of parallel computing depends on the performance of the primitives used to express

More information

CENG334 Introduction to Operating Systems

CENG334 Introduction to Operating Systems CENG334 Introduction to Operating Systems Semaphores Topics: Need for higher-level synchronization primitives Semaphores and their implementation The Producer/Consumer problem and its solution with semaphores

More information

Parallel Programming Concepts. Theory of Concurrency - Multicomputer. Peter Tröger

Parallel Programming Concepts. Theory of Concurrency - Multicomputer. Peter Tröger Parallel Programming Concepts Theory of Concurrency - Multicomputer Peter Tröger Von Neumann Model Process Processor Pipelining Super-scalar VLIW Branch prediction... Process Processor Processor Processor

More information

Them Threads, Them Threads, Them Useless Threads

Them Threads, Them Threads, Them Useless Threads Them Threads, Them Threads, Them Useless Threads Dr Russel Winder Partner, Concertant LLP russel.winder@concertant.com Copyright 2008 Russel Winder 1 Aims and Objectives of the Session Raise awareness

More information

First Midterm Exam September 28, 2017 CS162 Operating Systems

First Midterm Exam September 28, 2017 CS162 Operating Systems University of California, Berkeley College of Engineering Computer Science Division EECS Fall 2017 Ion Stoica First Midterm Exam September 28, 2017 CS162 Operating Systems Your Name: SID AND 162 Login

More information

Ver teil tes Rechnen und Parallelprogrammierung: Introduction to Multi-Threading in Java

Ver teil tes Rechnen und Parallelprogrammierung: Introduction to Multi-Threading in Java Ver teil tes Rechnen und Parallelprogrammierung: Introduction to Multi-Threading in Java Based on the book (chapter 29): Introduction to Java Programming (Comprehensive Version) by Y. Daniel Liang Based

More information