pAlgorithms

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)