STAPL: An Adaptive, Generic Parallel C++ Library
Ping An5
, Alin Jula5
, Silvius Rus5
, Steven Saunders5
, Tim Smith5
, Gabriel Tanase5
, Nathan Thomas5
, Nancy Amato5
and Lawrence Rauchwerger5 
| (5) |
Dept. of Computer Science, Texas A&M University, College Station, TX, 77843-3112 |
Abstract
The Standard Template Adaptive Parallel Library (STAPL) is a parallel library designed as a superset of the ANSI C++ Standard
Template Library (STL). It is sequentially consistent for functions with the same name, and executes on uni- or multi-processor
systems that utilize shared or distributed memory. STAPL is implemented using simple parallel extensions of C++ that currently
provide a SPMD model of parallelism, and supports nested parallelism. The library is intended to be general purpose, but emphasizes
irregular programs to allow the exploitation of parallelism for applications which use dynamically linked data structures
such as particle transport calculations, molecular dynamics, geometric modeling, and graph algorithms. STAPL provides several
different algorithms for some library routines, and selects among them adaptively at runtime. STAPL can replace STL automatically
by invoking a preprocessing translation phase. In the applications studied, the performance of translated code was within
5% of the results obtained using STAPL directly. STAPL also provides functionality to allow the user to further optimize the
code and achieve additional performance gains. We present results obtained using STAPL for a molecular dynamics code and a
particle transport code.
This research supported in part by NSF CAREER Awards CCR-9624315 and CCR-9734471, NSF Grants ACI-9872126, EIA-9975018, EIA-0103742,
and by the DOE ASCI ASAP program grant B347886.
References secured to subscribers.