STAPL: Standard Template Adaptive Parallel Library
STAPL (the Standard Template Adaptive Parallel Library) is a framework for developing parallel programs in C++. It is designed to work on both shared and distributed memory parallel computers. Its core is a library of ISO Standard C++ components with interfaces similar to the (sequential) ISO C++ standard library. STAPL includes a run-time system, design rules for extending the provided library code, and optimization tools. Its goal is to allow the user to work at a high level of abstraction and hide many details specific to parallel programming, to allow a high degree of productivity, portability, and performance. To accomplish these goals STAPL identifies three types of users:
- Users: application developers that build applications using STAPL data structures and algorithms;
- Developers: domain specific developers that use the lower level concepts of STAPL to build new data structures and algorithms to be provided to users;
- Specialists: developers of the core STAPL library that provide developers and users with the programming framework for developing data structures, algorithms, and applications.
STAPL programming style extends both STL and the Intel Thread Building Blocks library (TBB), the last being inspired by the STAPL project. STAPL programming style is more general than TBB since it provides more algorithms and data structures, a novel mechanism to design algorithms (PARAGRAPH), and it is able to run on shared and distributed memory machines.
Take a look to our Getting Started Guide and to our STAPL Graph Library (SGL) Tutorial.