TERAFLUX – Exploiting dataflow parallelism in Terodivice computing
Duration: 48 months (2010 - 2013)
Project Website: http://www.teraflux.eu/
Principal Investigator: Παρασκευάς Ευριπίδου
Main Funding Source: European Commission, FP7
Total Cost: 909,920
Dataflow parallelism is key to reach power efficiency, reliability, efficient parallel programmability, scalability, data bandwidth. In this project we propose dataflow both at task level and inside the threads, to offload and manage accelerated codes, to localize the computation, for managing the fault information with appropriate protocols, to easily migrate code to the available/working components and to respect the power/performance/temperature/reliability envelope, to efficiently handle the parallelism and have an easy and powerful execution model, to produce a more predictable behavior. While parallel systems have been around for many years, they were usually programmed and tuned by experts.
In the future large scale systems will be widely available and therefore exploiting efficiently the available parallelism will have to be easy enough to be accessible by the common user. Traditional programming models are either not very efficient for every application (message passing) or difficult to scale (shared memory). In order to address the programmability challenge we propose the use of a compiler directive based model to support an underlying dataflow-based thread execution that is known to exploit well the available parallelism and to efficiently move around large amounts of data.
In particular we propose to use a model that offers dataflow scheduling of parallel execution threads. Combining multithreading with dataflow allows to exploit the available parallelism without the overheads of the original dataflow techniques. The multithreading dataflow model is expected to perform well for a number of classes of applications.