This award is funded under the American Recovery and Reinvestment Act of 2009 (Public Law 111-5).
Computing architectures are increasingly parallel, most relying on multi-core microprocessors. Trends are also towards increased heterogeneity, with systems combining diverse components ranging from multiple microprocessors, field-programmable gate arrays (FPGAs), graphics processing units (GPUs), among others, often resulting in speedups of 10x to 100x.
A number of research thrusts have focused on the challenges associated with utilizing parallelism and heterogenity in computing architectures, including languages aimed at simplifying parallel programming. Despite numerous compiler and synthesis studies, usage of such systems has largely been limited to device experts due to significantly increased application design complexity.
To reduce design complexity, this project will investigate elastic computing, which is a framework to automatically parallelize an application across numerous heterogeneous resources while dynamically optimizing for different runtime parameters such as input size, battery life, etc. Elastic computing overcomes limitations of compilers and synthesis tools by providing the optimization framework with extra knowledge of functions, thus enabling automatic exploration of thousands of possible implementations, even ones using different algorithms. This project establishes an underlying theory for elastic computing, validated for numerous architectures and application domains, thus laying the foundation for much future research. In addition, the project will enable scientists without programming expertise to more easily develop applications for powerful multi-core heterogeneous systems, thus enabling new simulations that may advance the state of science. The project will also integrate elastic computing into graduate curriculum and will involve collaboration with the South East Alliance for Graduate Education and the Professoriate (SEAGEP) to recruit underrepresented students for undergraduate research.