concurrent programming and languages

13
Concurrent Programming and Languages Behrooz Nobakht

Upload: mahola

Post on 23-Feb-2016

62 views

Category:

Documents


0 download

DESCRIPTION

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

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