Actor Model Software Transactional Memory Data Flow Programming.

Post on 28-Dec-2015

216 views 0 download

Tags:

transcript

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› Send an finite set of messages to known

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

messages

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.

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

Languages and Libraries

JAVA

: TAS

K Relevant: Killim, Clojure

JAVA

: EX

EC

UTO

R S

ER

VIC

E

SC

ALA

: AC

TO

RS Similars: Erlang, ActorFoundry, Jetlang

MU

LTIV

ER

SE STM on Groovy/Java

HA

DO

OP Map/Reduce

All-in

-on

es

GPa

rsH

aske

ll

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

forkIO and Mvars STM Foreign Function Interface Nested Data Parallelism

Hyb

rid S

olu

tion

s

Akka

MPI

Actors and Remote Actors STM Transactors: Transactional Actors

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