June 1, 2012
Conference Paper

Enhancing the Performance of Assisted Execution Runtime Systems through Hardware/Software Techniques

Abstract

To meet the expected performance, future exascale systems will require programmers to increase the level of parallelism of their applications. Novel programming models simplify parallel programming at the cost of increasing runtime overheard. Assisted execution models have the potential of reducing this overhead but they generally also reduce processor utilization. We propose an integrated hardware/software solution that automatically partition hardware resources between application and auxiliary threads. Each system level performs well-defined tasks efficiently: 1) the runtime system is enriched with a mechanism that automatically detects computing power requirements of running threads and drives the hardware actuators; 2) the hardware enforces dynamic resource partitioning; 3) the operating system provides an efficient interface between the runtime system and the hardware resource allocation mechanism. As a test case, we apply this adaptive approach to STM2, an software transactional memory system that implements the assisted execution model. We evaluate the proposed adaptive solution on an IBMPOWER7 system using Eigenbench and STAMP benchmark suite. Results show that our approach performs equal or better than the original STM2 and achieves up to 65% and 86% performance improvement for Eigenbench and STAMP applications, respectively.

Revised: December 27, 2013 | Published: June 1, 2012

Citation

Kestor G., R. Gioiosa, O. Unsal, A. Cristal, and M. Valero. 2012. Enhancing the Performance of Assisted Execution Runtime Systems through Hardware/Software Techniques. In Proceedings of the 26th ACM International Conference on Supercomputing (ICS 2012), June 25-29, 2012, Venice, Italy, 153-162. New York, New York:Association for Computing Machinery. PNNL-SA-90922. doi:10.1145/2304576.2304598