Abstract
The actor model has already proven itself as an interesting concurrency model
that avoids issues such as deadlocks and race conditions by construction, and
thus facilitates concurrent programming. The tradeoff is that it sacrifices
expressiveness and efficiency especially with respect to data parallelism.
However, many standard solutions to computationally expensive problems employ
data parallel algorithms for better performance on parallel systems.
We identified three problems that inhibit the use of data-parallel algorithms
within the actor model. Firstly, one of the main properties of the actor
model, the fact that no data is shared, is one of the most severe performance
bottlenecks. Especially the fact that shared state can not be read truly in
parallel. Secondly, the actor model on its own does not provide a mechanism to
specify extra synchronization conditions on batches of messages which leads to
event-level data-races. And lastly, programmers are forced to write code in a
continuation-passing style (CPS) to handle typical request-response
situations. However, CPS breaks the sequential flow of the code and is often
hard to understand, which increases complexity and lowers maintainability.
We proposes synchronization views to solve these three issues
without compromising the semantic properties of the actor model. Thus, the
resulting concurrency model maintains deadlock-freedom, avoids low-level race
conditions, and keeps the semantics of macro-step execution.
Users
Please
log in to take part in the discussion (add own reviews or comments).