Top Banner
Concurrent Programming and Languages Behrooz Nobakht
13

Concurrent Programming and Languages

Feb 23, 2016

Download

Documents

mahola

Concurrent Programming and Languages. Behrooz Nobakht. Approaches. Actor Model Software Transactional Memory Data Flow Programming . Actor Model. Actor: an autonomous and concurrent entity sending “messages” In response to a “message”, an actor may - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Concurrent Programming  and Languages

Concurrent Programming and Languages

Behrooz Nobakht

Page 2: Concurrent Programming  and Languages

Approaches Actor Model Software Transactional Memory Data Flow Programming

Page 3: Concurrent Programming  and Languages

Actor Model Actor: an autonomous and concurrent

entity sending “messages” In response to a “message”, an actor

may› Send an finite set of messages to known

actors› Create a finite set of new actors› Define how it will respond to future

messages

Page 4: Concurrent Programming  and Languages

Software Transactional Memory

Translating sequential object implementation to concurrent non-blocking ones

Transaction: a finite sequence of local and shared memory machine instructions

The illusion: Isolation and Atomicity A shared object plays the role of an

STM.

Page 5: Concurrent Programming  and Languages

Data Flow Programming Divide, conquer, merge the processing

data MapReduce

› Map: map incoming data to intermediate results

› Reduce: merge intermediate results to final results

› Specialized File System

Page 6: Concurrent Programming  and Languages

Languages and Libraries

Page 7: Concurrent Programming  and Languages

JAVA: TASK Relevant: Killim, Clojure

Page 8: Concurrent Programming  and Languages

JAVA: EXECUTOR SERVICE

Page 9: Concurrent Programming  and Languages

SCALA: ACTORS Similars: Erlang, ActorFoundry, Jetlang

Page 10: Concurrent Programming  and Languages

MULTIVERSE STM on Groovy/Java

Page 11: Concurrent Programming  and Languages

HADOOP Map/Reduce

Page 12: Concurrent Programming  and Languages

All-in-onesGPars

Haskell

Based on Groovy and Java Parallel Collection Functions Data Flows and MapReduce Actors

forkIO and Mvars STM Foreign Function Interface Nested Data Parallelism

Page 13: Concurrent Programming  and Languages

Hybrid SolutionsAkka

MPI

Actors and Remote Actors STM Transactors: Transactional Actors

Message Passing Interface Distributed Memory C, C++, Fortran, Boost Library