1037585
doi
10.5281/zenodo.1037585
oai:zenodo.org:1037585
user-toreador
user-eu
Aldinucci, Marco
University of Torino, Italy
Parallel Programming with Global Asynchronous Memory: Models, C++ APIs and Implementations
Maurizio Drocco
University of T
info:eu-repo/semantics/openAccess
Creative Commons Attribution 4.0 International
https://creativecommons.org/licenses/by/4.0/legalcode
Parallel Computing
Distributed Computing
PGAS
Stream Computing
Parallel run-time systems
Memory Consistency
<p>In the realm of High Performance Computing (HPC), message passing has been the programming paradigm of choice for over twenty years. The durable MPI (Message Passing Interface) standard, with send/receive communication, broadcast, gather/scatter, and reduction collectives is still used to construct parallel programs where each communication is orchestrated by the developer-based precise knowledge of data distribution and overheads; collective communications simplify the orchestration but might induce excessive synchronization.</p>
<p>Early attempts to bring shared-memory programming model—with its programming advantages—to distributed computing, referred as the Distributed Shared Memory (DSM) model, faded away; one of the main issue was to combine performance and programmability with the memory consistency model. The recently proposed Partitioned Global Address Space (PGAS) model is a modern revamp of DSM that exposes data placement to enable optimizations based on locality, but it still addresses (simple) data- parallelism only and it relies on expensive sharing protocols.</p>
<p>We advocate an alternative programming model for distributed computing based on a Global Asynchronous Memory (GAM), aiming to avoid coherency and consistency problems rather than solving them. We materialize GAM by designing and implementing a distributed smart pointers library, inspired by C++ smart pointers. In this model, public and pri- vate pointers (resembling C++ shared and unique pointers, respectively) are moved around instead of messages (i.e., data), thus alleviating the user from the burden of minimizing transfers. On top of smart pointers, we propose a high-level C++ template library for writing applications in terms of dataflow-like networks, namely GAM nets, consisting of stateful processors exchanging pointers in fully asynchronous fashion.</p>
<p>We demonstrate the validity of the proposed approach, from the expressiveness perspective, by showing how GAM nets can be exploited to implement both standalone applications and higher-level parallel program- ming models, such as data and task parallelism. As for the performance perspective, preliminary experiments show both close-to-ideal scalability and negligible overhead with respect to state-of-the-art benchmark implementations. For instance, the GAM implementation of a high-quality video restoration filter sustains a 100 fps throughput over 70%-noisy high-quality video streams on a 4-node cluster of Graphics Processing Units (GPUs), with minimal programming effort. </p>
Zenodo
2017-10-26
info:eu-repo/semantics/doctoralThesis
1037584
user-toreador
user-eu
award_title=TrustwOrthy model-awaRE Analytics Data platfORm; award_number=688797; award_identifiers_scheme=url; award_identifiers_identifier=https://cordis.europa.eu/projects/688797; funder_id=00k4n6c32; funder_name=European Commission;
award_title=REfactoring Parallel Heterogeneous Resource-Aware Applications - a Software Engineering Approach; award_number=644235; award_identifiers_scheme=url; award_identifiers_identifier=https://cordis.europa.eu/projects/644235; funder_id=00k4n6c32; funder_name=European Commission;
award_title=Reengineering and Enabling Performance And poweR of Applications; award_number=609666; award_identifiers_scheme=url; award_identifiers_identifier=https://cordis.europa.eu/projects/609666; funder_id=00k4n6c32; funder_name=European Commission;
award_title=Parallel Patterns for Adaptive Heterogeneous Multicore Systems; award_number=288570; award_identifiers_scheme=url; award_identifiers_identifier=https://cordis.europa.eu/projects/288570; funder_id=00k4n6c32; funder_name=European Commission;
1579541979.227403
2086215
md5:345af3c9e67190a48e519c10cef5b06d
https://zenodo.org/records/1037585/files/Drocco_phd_thesis.pdf
public
10.5281/zenodo.1037584
isVersionOf
doi