Nowadays, parallel processing is mandatory to improve application performances at all levels of the software stack. However, dealing with concurrency and parallelism is challenging and error-prone, although multiple parallel programming models and frameworks are proposed over the years. In this thesis, we consider two radically different approaches to parallel programming, i.e., the Actor Model and the Parallel Patterns, and attempts to combine them into a new heterogeneous model. The Actor-based programming model is a well-established and high flexible concurrent model, in which Actors can be spawned and connected dynamically. Actor programmers often pay such great flexibility with additional effort in identifying and solve performance issues and sub-optimal communication patterns. On the other side, the Parallel Patterns offers ready-to-use solutions to recurrent programming problems (e.g., pipeline, map-reduce). However, the price to pay is reduced flexibility and additional constraints during the software development process. The programmer needs to design the parallel application(s) as a composition of Parallel Patterns. We analyzed the limitations of the Actor Model on multi/many-cores and investigated multiple approaches to achieve fruitful cooperation of the two models and maintaining, at the same time, the core features and advantages of the two approaches.

Extending the Actor Model with Parallel Patterns: a new model for multi-/many-core platforms

2021

Abstract

Nowadays, parallel processing is mandatory to improve application performances at all levels of the software stack. However, dealing with concurrency and parallelism is challenging and error-prone, although multiple parallel programming models and frameworks are proposed over the years. In this thesis, we consider two radically different approaches to parallel programming, i.e., the Actor Model and the Parallel Patterns, and attempts to combine them into a new heterogeneous model. The Actor-based programming model is a well-established and high flexible concurrent model, in which Actors can be spawned and connected dynamically. Actor programmers often pay such great flexibility with additional effort in identifying and solve performance issues and sub-optimal communication patterns. On the other side, the Parallel Patterns offers ready-to-use solutions to recurrent programming problems (e.g., pipeline, map-reduce). However, the price to pay is reduced flexibility and additional constraints during the software development process. The programmer needs to design the parallel application(s) as a composition of Parallel Patterns. We analyzed the limitations of the Actor Model on multi/many-cores and investigated multiple approaches to achieve fruitful cooperation of the two models and maintaining, at the same time, the core features and advantages of the two approaches.
24-apr-2021
Italiano
Torquati, Massimo
Danelutto, Marco
Università degli Studi di Pisa
File in questo prodotto:
File Dimensione Formato  
luca_rinaldi_phd_report.pdf

accesso aperto

Tipologia: Altro materiale allegato
Dimensione 91.94 kB
Formato Adobe PDF
91.94 kB Adobe PDF Visualizza/Apri
luca_rinaldi_phd_thesis_april_2021.pdf

accesso aperto

Tipologia: Altro materiale allegato
Dimensione 2.11 MB
Formato Adobe PDF
2.11 MB Adobe PDF Visualizza/Apri

I documenti in UNITESI sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/20.500.14242/141891
Il codice NBN di questa tesi è URN:NBN:IT:UNIPI-141891