▼pContainers | |
►Parallel Container Framework | Base classes that facilitate the development of new parallel containers |
Traits Component Customization | Classes that specify customizable types that control container behavior, and may be changed for a given container instance |
Element Manipulation | Base classes that implement element manipulation capabilities of a container |
Data Distribution Management | Base classes that implement data distribution policies |
Distributed Object Access | Base classes that implement remote access of a container instance |
►Array | |
Array Traits | Specification of the customizable types of a container that can be changed for a given container instance |
Distributed Object Access | Specializations of stapl::proxy that provide a remote reference for the container |
Memory and Domain Management | Internal classes implementing functionality related to data distribution |
►Vector | |
Vector Traits | Specification of the customizable types of a container that can be changed for a given container instance |
Distributed Object Access | Specializations of stapl::proxy that provide a remote reference for the container |
Memory and Domain Management | Internal classes implementing functionality related to data distribution |
▼pViews | |
Base Parallel View | |
►Parallel View Framework | Base classes that facilitate the development of new parallel views |
Traits Component Customization | Classes that specify customizable types that control view behavior, and may be changed for a given view instance |
Validators for versioning | Validators used for view versioning |
Core | |
►Model abstract data types | Model common abstract data types |
Array | |
Vector | |
ArrayRO | |
Model graph abstract data types | Model graph abstract data types |
►Use no storage | Present data without using concrete storage |
Overlap | |
Repeated | |
Counting | |
Functor | |
►Modify values of containers | Modify values retrieved from underlying view or container |
Strided | |
Reverse | |
Filter | |
Transform | |
►Compose views | Compose views with other views |
Zip | |
►Specify a data distribution | Allow specification of an arbitrary data distribution |
System | A set of location ids on to which partition ids may be mapped |
Mapping | View to map partitions to location ids |
Partitioning | View that maps element ids to partition ids |
Distribution Specifications | A collection of functions that create view-based specifications of common data distributions |
►Modify distributions of containers | Modify distributions of underlying container |
Native | |
Balance | |
Explicit | |
Segmented | |
▼pAlgorithms | |
►Non-modifying Sequence Operations | Search and query view elements |
Search Operations | Search for elements in view(s) that meet the specified criteria (e.g. stapl::find()). Defined in stapl/algorithms/algorithm.hpp |
Summary Operations | Summarize the entire set of elements in the view(s) (e.g., stapl::equal()) |
Extrema Operations | Find the extreme values in the view provided (e.g., stapl::min_element()). Defined in stapl/algorithms/algorithm.hpp |
Counting Operations | Summarize the number of elements in the view(s) that meet the specified criteria. Defined in stapl/algorithms/algorithm.hpp |
►Mutating Sequence Operations | Modify the elements in a view |
Generating Operations | Initialize the elements in a view (e.g., stapl::generate()). Defined in stapl/algorithms/algorithm.hpp |
Removing Operations | Remove elements from the input view that meet a specified criteria (e.g., stapl::remove(), stapl::unique()). Defined in stapl/algorithms/algorithm.hpp |
Reordering Operations | Reorder the elements in the input view (e.g., stapl::reverse(), stapl::rotate()). Defined in stapl/algorithms/algorithm.hpp |
►Sorting and Related Operations | Sort elements in a view or perform operations on sorted sequences |
Sorting Operations | Sort the elements in a view. Defined in stapl/algorithms/sorting.hpp |
Permuting Operations | Reorder the elements in a view. Defined in stapl/algorithms/sorting.hpp |
Binary Search Operations | Search the elements of a view using binary search. Defined in stapl/algorithms/sorting.hpp |
Sorting Related Operations | Algorithms related to sorting elements in views. Defined in stapl/algorithms/sorting.hpp |
Generalized Numeric Algorithms | Algorithms for numeric operations on view elements. Defined in stapl/algorithms/numeric.hpp |
►Function Objects | A collection of element-wise operations commonly used to process view elements in a pAlgorithm. Defined in stapl/algorithms/functional.hpp |
Base Function Objects | Base classes used to simplify the development of new operators that will be used in pAlgorithms. Defined in stapl/algorithms/functional.hpp |
Comparator Function Objects | Function objects that implement element-wise comparison. Defined in stapl/algorithms/functional.hpp |
Mutating Function Objects | Function objects that mutate one or both or their arguments. Defined in stapl/algorithms/functional.hpp |
Numeric Function Objects | Function objects implement numeric operations. Defined in stapl/algorithms/functional.hpp |
Logical Function Objects | Function objects implement logic operations. Defined in stapl/algorithms/functional.hpp |
Bit-wise Function Objects | Function objects implement bit-wise operations on view elements. Defined in stapl/algorithms/functional.hpp |
Reference Function Objects | Function objects that manipulate references to view elements. Defined in stapl/algorithms/functional.hpp |
Binding Function Objects | Function objects that bind a value to one or more parameters of another function object. Defined in stapl/algorithms/functional.hpp |
▼The STAPL Skeletons Framework | The STAPL Skeletons Framework is a high-level skeletal approach for parallel programming |
►Spawning Environments | Environments define the representation of nodes and edges in the dataflow graphs generated from skeletons |
Spawning Environments Internal | |
►Skeleton Execution | Entities to facilitate the execution of skeletons in STAPL |
Skeleton Execution Internal | |
►Explicit Factories | The existing hand-written factories used prior to the existence of the Skeleton Framework |
Explicit Factories Internal | |
►Flows | Flows are used to customize skeleton compositional operators by modifying input and output dependencies between their underlying skeletons |
Flows Producer Classes | Helper classes to specify source of flows |
Customized Compose Operator Flows | |
Customized Repeat Operator Flows | |
Customized Elem Operator Flows | |
Customized Do-While Operator Flows | |
Inline Specified Flows | |
►Functional Definition of Skeletons | The functional definition of skeletons which can be composed and transformed in the Skeletons Framework |
Functional Definition of | |
Functional Definition of | |
Functional Definition of | |
Functional Definition of | |
Functional Definition of | |
►Compositional Operators | Compositional operators allow new skeletons to be defined from existing skeletons |
Producer-Consumer | |
Compositional Operators Internal | |
►Parametric Dependencies | Parametric dependencies define the finest-grain component of the Skeletons Framework. These entities are represented as nodes in the generated dataflow graphs in a given environment |
Parametric Dependencies Internal | |
Parametric Dependencies of | |
Algorithm Specific Parametric | |
Input Resizing Parametric | |
Elementary Operator Spans | Spans define the dimensions of the parametric dependencies in an elementary skeleton based on the given input sizes |
►Transformation Operators | Transform the skeletons to other skeletons for various reasons (e.g., faster execution, nested execution, etc.) |
Transformation Operators | |
Utility Methods | |
►Executable Skeletons | Executable skeletons change functional skeletons from higher-order functions to regular functions by providing access to the input data |
Executable Skeletons Internal | |
►Skeleton Tags | Tags are used to identify skeletons throughout the Skeletons Framework. Identifying skeletons using their tags allows transformations and optimizations to be simply defined over skeletons |
Repeat Operator Tags | Sequence tags are used in customizing repeat flows |
Do-While Operator Tags | Do-While tags are used in customizing do-while flows |
Composed Skeletons Tags | These tags are generally used in the spawning process to identify various skeletons and to apply optimizations/transformations on them |
Coarse Transformation | The coarsening operator transform skeletons which generate very fine-grained dataflow graphs to the skeletons which can handle data with larger granularity |
▼PARAGRAPH | The PARAGRAPH is the dependence graph representation of programs in STAPL |
►Edge Container | |
Edge Container Entry and Supporting Code | |
Edge Notifiers | |
Edge Container Views | |
Paragraph View Operations | |
Paragraph Task Classes | |
Paragraph View and Supporting Code | |
Paragraph Result View and Supporting Code | |
Paragraph Utility Files | |
▼Runtime System | The STAPL Runtime System (RTS) is the runtime system of STAPL that provides platform abstraction and portable performance for the rest of the components of STAPL |
►Adaptive Remote Method Invocation (ARMI) | Parallelism, communication and synchronization support |
ARMI Tags | ARMI primitives tags |
ARMI Type traits | Type traits related to ARMI |
Distributed objects | Distributed object creation, registration, retrieval and destruction |
ARMI One-sided primitives | One-sided (point-to-point or point-to-many) communication primitives |
ARMI Collective primitives | Collective communication primitives |
ARMI Synchronization primitives | Synchronization primitives |
ARMI Unordered primitives | Communication primitives with relaxed consistency |
Request aggregation control | Primitives that control aggregation |
ARMI Utilities | Utility classes and variables |
Serialization | Support for packing/unpacking of arbitrary types |
►Executors | stapl::paragraph_impl::paragraph task execution support |
Scheduling information | Scheduling information support |
Work Stealing | Work stealing support |
Counters | Hardware counters support |
Instrumentation | Runtime System and application instrumentation support |
►Runtime System implementation | Support functions and classes for the STAPL Runtime System (RTS) |
Runtime Configuration | Compile-time configuration components of the Runtime System |
Runtime Utilities | Support functions and classes for the Runtime System |
Runtime Metadata | Runtime System metadata managing functions and classes |
Distributed Memory Communication | Support functions and classes for communicating on distributed memory for the Runtime System |
Collective Operations support | Support functions and classes for collective operations of the Runtime System |
Threading Support | Support functions and classes for threads and mixed-mode for the Runtime System |
ARMI Requests Building Blocks | Support functions and class for Adaptive Remote Method Invocation (ARMI) |
ARMI Type traits implementation | Support functions and classes for ARMI Type traits |
Serialization implementation | Support functions and classes for Serialization |
Executors implementation | Support functions and classes for Executors |
Instrumentation implementation | Support functions and classes for Instrumentation |
▼Utilities | STAPL utility files shared by multiple components |
Directory | The directory used for message routing in the PARAGRAPH and pContainers |
Boost/C++11 Tuple Wrapper | |
Tags of Tree-type Skeletons | These tags are used in the Skeletons Framework to identify the various types of tree-based skeletons such as reduce, broadcast |
Coarsening Transformation Tags | These tags are used in the coarsening process in order to specify algorithm transformation on skeletons |
Tags specifying the execution | Tag type to identify a nest execution for wrapped_skeleton |
Explicit Factories Tags | These tags are used to tag explicit factories in order to specify customized termination detection for them |
Specializations for stand-alone begin. | The specializations for stand-alone iterator operations such as begin and end |
SGLReferenceGenerators | Generate a scale-free network based on the Barabasi-Albert preferential attachment model |