Combining Task and Data Parallelism within Skeleton-based Models
Susanna Pelagatti
This talk approaches the problem of providing both task and data
parallel abstractions within a system which is easy to use, portable
and reaches high levels of performance on different architectures. To
achieve all this, an automatic and efficient solution of mapping,
scheduling, data distribution and grain size determination must be
found. These problems are proved intractable for models allowing
parallel computations with arbitrary structure to be
expressed. Moreover, parallel applications appear to use a restricted
set of recurring structures, possibly nested, for both data and task
parallel parts. The talk analyzes the most common paradigms of task
and data parallelism (task queue, pipeline, independent and composed
data parallelism) and shows how they can be provided within a skeleton
based language (P3L). The P3L support is organized according to a template
based methodology and embeds in a transparent way good implementation
strategies for each skeleton.