![]() |
|||
|
|
|
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:
Distributed Data Structures (pContainers) A pContainer is the parallel equivalent of an STL container. Its data is partitioned and distributed across the machine, but the User is offered a shared object view. The pContainer distribution across the machine can be user specified or automatically selected by STAPL.
Currently, STAPL provides STL
equivalent containers: pVector, pList, pArray, pMap, pSet, pMultiSet,
pMultiMap, pHashMap, pMatrix and pGraph.
Views are the STAPL equivalent of STL iterators in the sense that they provide a generic mechanism to access the data of the pContainers. Views emphasize processing data ranges over accessing single items. Each View may be partitioned into subviews hierarchically and this allow to adjust the degree of parallelism to the application needs and nested parallelsm. Views provide iterators to the data items to access single pContainer elements. The partition of the data and the iteration order of the elements may be independent from the physical data distribution, thus allowing easier specification of the parallel algorithms.
A pAlgorithm is the parallel equivalent of an STL algorithm. A pAlgorithm is written in terms of Views operations. The hierarchical structure of input Views and the algorithm access pattern decide the degree of parallelism available for computation. A pAlgorithm can modify input views for optimized data access and/or easier algorithm specification.
Because performance of parallel algorithms is sensitive to
system architecture (latency, topology, etc.) and to application data
(data type, distribution, density, etc.), STAPL is designed to
continually adapt
to the system and the data at all levels -- from selecting the most
appropriate algorithmic implementation to balancing communication
granularity with latency by self-tuning the message aggregation
factor, etc.(see Framework for Adaptive
Algorithm Selection in STAPL)
STAPL pAlgorithms are specified as a pRange. A pRange is a Task Dependence Graph (TDG), where a Task is defined as a set of subviews representing data and a function defined over those subviews. Data dependencies are specified among Tasks to guarantee correctness of execution.
To allow an easy specification of a TDG, STAPL provides a library of
dependence graphs and the capability of composing TDGs to build larger
and more complex computations. The Developer can still build new TDGs
directly through enumeration or closed form description of the
dependencies when the dependence pattern of the computation doesn't
match one of the dependence graphs provided.
STAPL's run-time system (RTS) provides to the Developer and Specialist
the following facilities:
Applications Developed with STAPL
STAPL is being refined and extended through the concurrent development of domain specific libraries for particle transport computations (computational physics), protein folding simulation (computational biology), and ray tracing (computational geometry). All these applications, like many problems in the physical and life sciences, make heavy use of dynamic linked data structures (e.g., graphs). STAPL provides built-in support for such irregular data structures.
If you have questions about STAPL, please email stapl-support@tamu.edu Journal Papers ARMI: A High Level Communication Library for STAPL, Nathan Thomas, Steven Saunders, Tim Smith, Gabriel Tanase, Lawrence Rauchwerger, Parallel Processing Letters, 16(2):261-280, Jun 2006. Conference Proceedings Associative Parallel Containers In STAPL, Gabriel Tanase, Chidambareswaran (Chids) Raman, Mauro Bianco, Nancy M. Amato, Lawrence Rauchwerger, In Wkshp. on Lang. and Comp.
for Par. Comp. (LCPC), Oct 2007. Dissertations and Theses Object Oriented Abstractions for Communication in Parallel Programs, Steven Saunders, Masters Thesis, Parasol Laboratory, Department of Computer Science, Texas A&M University, College Station, TX, May 2003. |
Parasol Home | Research | People | General info | Seminars | Resources Parasol Lab, 301 Harvey R. Bright Bldg, 3112 TAMU, College Station, TX 77843-3112 Contact Webmaster Phone 979.458.0722 Fax 979.458.0718
Department of Computer Science and Engineering | Dwight Look College of Engineering | Texas A&M University Privacy statement: Computer Science and Engineering Engineering TAMU |