The ParaPhrase approach to sustainable parallel computing will build on a two-level (or ultimately multi-level) model of parallelism, where the implementations of parallel programs are expressed in terms of interacting components, and where components from different applications are collectively mapped to the available system resources.
By expressing parallelism in terms of high-level parallel patterns that have alternative parallel implementations, we will be able to redeploy/refactor parallel components to dynamically match the available hardware resources. We will do this both at the applications level, and at a complete systems level, involving multiple parallel workflows running on a (heterogeneous) collection of CPU/GPU execution units. Moreover, by using a strong component basis for parallelism, we can achieve potentially significant gains in terms of reducing sharing at a high level of abstraction, and so in reducing or even eliminating the programming and implementation costs that are usually associated with cache management, threading, locking, and synchronisation.
The project thus combines automatic approaches to task placement and re-mapping with an assisted approach to the initial identification of the parallel program structure. The use of a component-based approach, with strong behavioural interfaces forming a virtual parallel task structure, is fundamental in allowing the ParaPhrase project to achieve its goals.