loading...
Accelerating Sequential Applications on CMPs Using Core Spilling
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TPDS.2007.1085August 2007 (vol. 18 no. 8) pp. 1094-1107
 This Article 
 
PDF
HTML
 
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Chip Multiprocessors 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 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%. 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% improvement in performance.
Citation:
Jason Congy, Guoling Hany, Ashok Jagannathan, Glenn Reinmany, Krzysztof Rutkowski, "Accelerating Sequential Applications on CMPs Using Core Spilling," IEEE Transactions on Parallel and Distributed Systems, vol. 18, no. 8, pp. 1094-1107, June 2007, doi:10.1109/TPDS.2007.1085
Usage of this product signifies your acceptance of the Terms of Use.