Lawrence Rauchwerger (Texas A&M University)
STAPL: An Adaptive Parallel Programming Environment
The Standard Template Adaptive Parallel Library (STAPL) is a collection of generic data structures and algorithms that provides a high productivity, parallel programming infrastructure with an approach that draws heavily in design from the C++ Standard Template Library (STL).
By abstracting much of the complexities of parallelism from the end user, STAPL provides a platform for high productivity by enabling the user to focus on algorithmic design instead of lower level parallel implementation issues. At the same time the scalable performance of the STAPL library has to be portable across parallel systems and application domains. To ensure this performance portability, STAPL incorporates adaptive mechanisms that automatically tunes its behavior. In this talk, we provide an overview of the major STAPL components and discuss its framework for automatic and user initiated adaptive optimization. We will present some results obtained using adaptive algorithm selection, data structure selection and work granularity control. We will conclude with our plans to better organize, at library level, the needed interfaces for automatic tuning, performance monitoring and debugging.