The STAPL Parallel Container Framework
Authors: Gabriel Tanase, Antal Buss, Adam Fidel, Harshvardhan, Ioannis Papadopoulos, Olga Pearce, Timmie Smith, Nathan Thomas, Xiabing Xu, Nedhal Mourad, Jeremy Vu, Mauro Bianco, Nancy M. Amato, Lawrence Rauchwerger
Venue: Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming (PPoPP)
DOI: 10.1145/1941553.1941586
Link to Publication
Abstract:
The Standard Template Adaptive Parallel Library (STAPL) is a parallel programming infrastructure that extends C++ with support for parallelism. It includes a collection of distributed data structures called pContainers that are thread-safe, concurrent objects, i.e., shared objects that provide parallel methods that can be invoked concurrently. In this work, we present the STAPL Parallel Container Framework (PCF), that is designed to facilitate the development of generic parallel containers. We introduce a set of concepts and a methodology for assembling a pContainer from existing sequential or parallel containers, without requiring the programmer to deal with concurrency or data distribution issues. The PCF provides a large number of basic parallel data structures (e.g., pArray, pList, pVector, pMatrix, pGraph, pMap, pSet). The PCF provides a class hierarchy and a composition mechanism that allows users to extend and customize the current container base for improved application expressivity and performance. We evaluate STAPL pContainer performance on a CRAY XT4 massively parallel system and show that pContainer methods, generic pAlgorithms, and different applications provide good scalability on more than 16,000 processors.
@inproceedings{10.1145/1941553.1941586,
abstract = {The Standard Template Adaptive Parallel Library (STAPL) is a parallel programming infrastructure that extends C++ with support for parallelism. It includes a collection of distributed data structures called pContainers that are thread-safe, concurrent objects, i.e., shared objects that provide parallel methods that can be invoked concurrently. In this work, we present the STAPL Parallel Container Framework (PCF), that is designed to facilitate the development of generic parallel containers. We introduce a set of concepts and a methodology for assembling a pContainer from existing sequential or parallel containers, without requiring the programmer to deal with concurrency or data distribution issues. The PCF provides a large number of basic parallel data structures (e.g., pArray, pList, pVector, pMatrix, pGraph, pMap, pSet). The PCF provides a class hierarchy and a composition mechanism that allows users to extend and customize the current container base for improved application expressivity and performance. We evaluate STAPL pContainer performance on a CRAY XT4 massively parallel system and show that pContainer methods, generic pAlgorithms, and different applications provide good scalability on more than 16,000 processors.},
address = {New York, NY, USA},
author = {Tanase, Gabriel and Buss, Antal and Fidel, Adam and Harshvardhan and Papadopoulos, Ioannis and Pearce, Olga and Smith, Timmie and Thomas, Nathan and Xu, Xiabing and Mourad, Nedal and Vu, Jeremy and Bianco, Mauro and Amato, Nancy M. and Rauchwerger, Lawrence},
booktitle = {Proceedings of the 16th ACM Symposium on Principles and Practice of Parallel Programming},
doi = {10.1145/1941553.1941586},
isbn = {9781450301190},
keywords = {containers, libraries, structures, languages, parallel, data},
location = {San Antonio, TX, USA},
numpages = {12},
pages = {235–246},
publisher = {Association for Computing Machinery},
series = {PPoPP \'11},
title = {The STAPL Parallel Container Framework},
url = {https://doi.org/10.1145/1941553.1941586},
year = {2011}
}
@article{Tanase-tspcf-2011,
address = {New York, NY, USA},
author = {Tanase, Gabriel and Buss, Antal and Fidel, Adam and Harshvardhan and Papadopoulos, Ioannis and Pearce, Olga and Smith, Timmie and Thomas, Nathan and Xu, Xiabing and Mourad, Nedal and Vu, Jeremy and Bianco, Mauro and Amato, Nancy M. and Rauchwerger, Lawrence},
doi = {10.1145/2038037.1941586},
issn = {0362-1340},
issue_date = {August 2011},
journal = {SIGPLAN Not.},
keywords = {languages, libraries, data, structures, containers, parallel},
month = {February},
number = {8},
numpages = {12},
pages = {235–246},
publisher = {Association for Computing Machinery},
title = {The STAPL Parallel Container Framework},
url = {https://doi.org/10.1145/2038037.1941586},
volume = {46},
year = {2011}
}