actor model software transactional memory data flow programming
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