Intellectual Merit: This EAGER project addresses distribution issues for systems executing on heterogeneous computing architectures, that is, architectures that have been configured with graphics processing units (GPUs) and field-programmable gate array (FPGAs).
Heterogeneous architectures may offer considerable increase in throughput when compared to simple multi-processor architectures. But, to achieve maximum gain and resource utilization in heterogeneous architectures, an application?s workload needs to be distributed among accelerators and CPUs according to the computational capabilities of those components. The optimal distribution of tasks and data among processing units is an important concern for such platforms.
Dynamic partitioning can better utilize all computational units during execution. However, even though this type of partitioning is addressed in a few published studies, full utilization gains have not been reported. This team will attempt to develop ?near ideal? partitioning schemes which require:
? devising monitoring mechanisms for each type of accelerator, ? quantifying tasks and data as computational blocks, and ? estimating performance throughout execution.
These load balancing schemes will be application and device independent and fully automated without the need for prior training runs before the actual run. The goal is to integrate these schemes with programming models to seamlessly expose near optimal utilization of heterogeneous multiprocessor architectures.
Broader Impact: The software and hardware platforms developed in this research will be publicly released as open source so that others may experiment with them. The research will be conducted with cooperation of Intel researchers enabling possible future transfer of technology to industry. Funding of this project will provide support for recruiting underrepresented minority and female students for the project. In addition, the research content will be integrated to graduate courses to provide training to students for designing and programming future heterogeneous systems.