Due to power limitations and escalating cooling costs, high-performance computing systems can no longer rely on faster clock frequencies and more massive parallelism to meet increasing performance demands. As an alternative approach, high-performance systems are increasingly integrating multi-core processors and heterogeneous accelerators such as GPUs and FPGAs. However, usage of such multi-core heterogeneous systems has been limited largely to device experts due to significantly increased application design complexity. To enable more transparent usage of multi-core heterogeneous systems, we introduce Elastic Computing, which is an optimization framework where application designers invoke specialized elastic functions that contain a knowledge-base of implementation alternatives and parallelization strategies. For each elastic function, a collection of optimization tools analyze numerous possible implementations which enables dynamic and transparent optimization for different resources and run-time parameters. In this document, we present the enabling technologies of Elastic Computing, and evaluate those technologies on numerous systems, including the Novo-G FPGA supercomputer.
展开▼