A preview of this full-text is provided by Springer Nature.
Content available from International Journal of Parallel Programming
This content is subject to copyright. Terms and conditions apply.
Vol:.(1234567890)
International Journal of Parallel Programming (2020) 48:692–712
https://doi.org/10.1007/s10766-020-00663-1
1 3
Improving thePerformance ofActors onMulti‑cores
withParallel Patterns
LucaRinaldi1· MassimoTorquati1 · DanieleDeSensi1· GabrieleMencagli1·
MarcoDanelutto1
Received: 16 October 2019 / Accepted: 27 May 2020 / Published online: 4 June 2020
© Springer Science+Business Media, LLC, part of Springer Nature 2020
Abstract
The Actor-based programming model is largely used in the context of distributed
systems for its message-passing semantics and neat separation between the concur-
rency model and the underlying hardware platform. However, in the context of a
single multi-core node where the performance metric is the primary optimization
objective, the “pure” Actor Model is generally not used because Actors cannot
exploit the physical shared-memory, thus reducing the optimization options. In this
work, we propose to enrich the Actor Model with some well-known Parallel Patterns
to face the performance issues of using the “pure” Actor Model on a single multi-
core platform. In the experimental study, conducted on two different multi-core sys-
tems by using the C++ Actor Framework, we considered a subset of the
Parsec
benchmarks and two
savina
benchmarks. The analysis of results demonstrates that
the Actor Model enriched with suitable Parallel Patterns implementations provides a
robust abstraction layer capable of delivering performance results comparable with
those of thread-based libraries (i.e.
Pthreads
and
FastFlow
) while offering a safer
and versatile programming environment.
Keywords Actors· Parallel patterns· Programming model· Multi-cores
1 Introduction
The Actor Model (AM) proposed by Hewitt etal. [24] is attracting a revived atten-
tion among software developers and academics. In the AM, the concurrent unit
is the Actor. Actors are isolated entities with an internal state that can receive
This work has been partially supported by University of Pisa PRA 2018 66 DECLware: Declarative
methodologies for designing and deploying applications.
* Massimo Torquati
torquati@di.unipi.it
1 Computer Science Department, University ofPisa, Pisa, Italy
Content courtesy of Springer Nature, terms of use apply. Rights reserved.