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 run-time. 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.

References in zbMATH (referenced in 13 articles , 1 standard article )

Showing results 1 to 13 of 13.
Sorted by year (citations)

  1. Bourdev, Lubomir; Järvi, Jaakko: Efficient run-time dispatching in generic programming with minimal code bloat (2011)
  2. Giacaman, Nasser; Sinnen, Oliver: Parallel iterator for parallelizing object-oriented applications (2011)
  3. Graff, Mario; Poli, Riccardo: Practical performance models of algorithms in evolutionary program induction and other domains (2010)
  4. Järvi, Jaakko; Marcus, Mat; Smith, Jacob N.: Programming with C++ concepts (2010)
  5. Liao, Chunhua; Quinlan, Daniel J.; Willcock, Jeremiah J.; Panas, Thomas: Semantic-aware automatic parallelization of modern applications using high-level abstractions (2010)
  6. Pirkelbauer, Peter; Dechev, Damian; Stroustrup, Bjarne: Source code rejuvenation is not refactoring (2010)
  7. Pirkelbauer, Peter; Parent, Sean; Marcus, Mat; Stroustrup, Bjarne: Dynamic algorithm selection for runtime concepts (2010)
  8. Edmonds, Nick; Breuer, Alex; Gregor, Douglas; Lumsdaine, Andrew: Single-source shortest paths with the parallel boost graph library (2009)
  9. Suess, Michael; Leopold, Claudia: Implementing data-parallel patterns for shared memory with OpenMP (2008)
  10. Campa, Sonia: A formal framework for orthogonal data and control parallelism handling (2005)
  11. Quinlan, Dan; Schordan, Markus; Yi, Qing; de Supinski, Bronis R.: Semantic-driven parallelization of loops operating on user-defined containers (2004)
  12. An, Ping; Jula, Alin; Rus, Silvius; Saunders, Steven; Smith, Tim; Tanase, Gabriel; Thomas, Nathan; Amato, Nancy; Rauchwerger, Lawrence: STAPL: An adaptive, generic parallel C++ library (2003)
  13. Heintze, Nevin; Michaylov, Spiro; Stuckey, Peter: CLP$(\germ R)$ and some electrical engineering problems (1992)