TY - GEN
T1 - The STAPL pList
AU - Tanase, Gabriel
AU - Xu, Xiabing
AU - Buss, Antal
AU - Harshvardhan,
AU - Papadopoulos, Ioannis
AU - Pearce, Olga
AU - Smith, Timmie
AU - Thomas, Nathan
AU - Bianco, Mauro
AU - Amato, Nancy M.
AU - Rauchwerger, Lawrence
N1 - Funding Information:
This research supported in part by NSF Grants EIA-0103742, ACR-0081510, ACR-0113971, CCR-0113974, ACI-0326350, CRI-0551685, CCF-0833199, CCF-0830753, by the DOE NNSA under the Predictive Science Academic Alliances Program by grant DE-FC52-08NA28616, by Chevron, IBM, Intel, HP, and by King Abdullah University of Science and Technology (KAUST) Award KUS-C1-016-04. This research used resources of the National Energy Research Scientific Computing Center, which is supported by the Office of Science of the U.S. Department of Energy under Contract No. DE-AC02-05CH11231.
PY - 2010
Y1 - 2010
N2 - We present the design and implementation of the stapl pList, a parallel container that has the properties of a sequential list, but allows for scalable concurrent access when used in a parallel program. The Standard Template Adaptive Parallel Library (stapl) is a parallel programming library that extends C++ with support for parallelism. stapl provides a collection of distributed data structures (pContainers) and parallel algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. stapl pContainers are thread-safe, concurrent objects, providing appropriate interfaces (e.g., views) that can be used by generic pAlgorithms. The pList provides stl equivalent methods, such as insert, erase, and splice, additional methods such as split, and efficient asynchronous (non-blocking) variants of some methods for improved parallel performance. We evaluate the performance of the stapl pList on an IBM Power 5 cluster and on a CRAY XT4 massively parallel processing system. Although lists are generally not considered good data structures for parallel processing, we show that pList methods and pAlgorithms (p-generate and p-partial-sum) operating on pLists provide good scalability on more than 103 processors and that pList compares favorably with other dynamic data structures such as the pVector.
AB - We present the design and implementation of the stapl pList, a parallel container that has the properties of a sequential list, but allows for scalable concurrent access when used in a parallel program. The Standard Template Adaptive Parallel Library (stapl) is a parallel programming library that extends C++ with support for parallelism. stapl provides a collection of distributed data structures (pContainers) and parallel algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. stapl pContainers are thread-safe, concurrent objects, providing appropriate interfaces (e.g., views) that can be used by generic pAlgorithms. The pList provides stl equivalent methods, such as insert, erase, and splice, additional methods such as split, and efficient asynchronous (non-blocking) variants of some methods for improved parallel performance. We evaluate the performance of the stapl pList on an IBM Power 5 cluster and on a CRAY XT4 massively parallel processing system. Although lists are generally not considered good data structures for parallel processing, we show that pList methods and pAlgorithms (p-generate and p-partial-sum) operating on pLists provide good scalability on more than 103 processors and that pList compares favorably with other dynamic data structures such as the pVector.
UR - http://www.scopus.com/inward/record.url?scp=77954414900&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=77954414900&partnerID=8YFLogxK
U2 - 10.1007/978-3-642-13374-9_2
DO - 10.1007/978-3-642-13374-9_2
M3 - Conference contribution
AN - SCOPUS:77954414900
SN - 3642133738
SN - 9783642133732
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 16
EP - 30
BT - Languages and Compilers for Parallel Computing - 22nd International Workshop, LCPC 2009, Revised Selected Papers
T2 - 22nd International Workshop on Languages and Compilers for Parallel Computing, LCPC 2009
Y2 - 8 October 2009 through 10 October 2009
ER -