Chapter

Languages and Compilers for Parallel Computing

Volume 5234 of the series Lecture Notes in Computer Science pp 156-171

Associative Parallel Containers in STAPL

  • Gabriel TanaseAffiliated withParasol Lab, Dept. of Computer Science, Texas A&M University
  • , Chidambareswaran RamanAffiliated withParasol Lab, Dept. of Computer Science, Texas A&M University
  • , Mauro BiancoAffiliated withParasol Lab, Dept. of Computer Science, Texas A&M University
  • , Nancy M. AmatoAffiliated withParasol Lab, Dept. of Computer Science, Texas A&M University
  • , Lawrence RauchwergerAffiliated withParasol Lab, Dept. of Computer Science, Texas A&M University

* Final gross prices may vary according to local VAT.

Get Access

Abstract

The Standard Template Adaptive Parallel Library (stapl) is a parallel programming framework that extends C++ and stl with support for parallelism. stapl provides a collection of parallel data structures (pContainers) and algorithms (pAlgorithms) and a generic methodology for extending them to provide customized functionality. stapl pContainers are thread-safe, concurrent objects, i.e., shared objects that provide parallel methods that can be invoked concurrently. They also provide appropriate interfaces that can be used by generic pAlgorithms. In this work, we present the design and implementation of the stapl associative pContainers: pMap, pSet, pMultiMap, pMultiSet, pHashMap, and pHashSet. These containers provide optimal insert, search, and delete operations for a distributed collection of elements based on keys. Their methods include counterparts of the methods provided by the stl associative containers, and also some asynchronous (non-blocking) variants that can provide improved performance in parallel. We evaluate the performance of the stapl associative pContainers on an IBM Power5 cluster, an IBM Power3 cluster, and on a linux-based Opteron cluster, and show that the new pContainer asynchronous methods, generic pAlgorithms (e.g., pfind) and a sort application based on associative pContainers, all provide good scalability on more than 103 processors.