Accelerating Sequential Applications on CMPs Using Core Spilling
Accelerating Sequential Applications on CMPs Using Core Spilling
复制标题
使用核心溢出加速 CMP 上的顺序应用
DOI:
10.1109/tpds.2007.1085
复制
发表时间:
2007
影响因子:
5.3
通讯作者:
Krzysztof Rutkowski
中科院分区:
文献类型:
--
作者:
J. Cong;Guoling Han;Ashok Jagannathan;G. Reinman;Krzysztof Rutkowski
Chip multiprocessors (CMPs) provide a scalable means of exploiting thread-level parallelism for multitasking or multithreaded applications. However, single-threaded applications will have difficulty dynamically leveraging the statically partitioned resources in a CMP. Such sequential applications may be difficult to statically decompose into threads or may simply be-a legacy code where recompilation is not possible or cost-effective. We present a novel approach to dynamically accelerate the performance of sequential application(s) on multiple cores. Execution is allowed to spill from one core to another when resources on one core have been exhausted. We propose two techniques to enable low-overhead migration between cores: prespilling and locality-based filtering. We develop and analyze an arbitration mechanism to intelligently allocate cores among a set of sequential applications on a CMP. On average, core spilling on an eight-core CMP can accelerate single-threaded performance by 35 percent. We further explore an eight-core CMP running a multiple application workload composed of the entire SPEC 2000 benchmark suite in various combinations and arrival times. Using core spilling to accelerate the current set of running applications in cases where there are idle cores, we achieve up to a 40 percent improvement in performance.