October 22, 2014
Conference Paper

Cross-Layer Self-Adaptive/Self-Aware System Software for Exascale Systems

Abstract

The extreme level of parallelism coupled with the limited available power budget expected in the exascale era brings unprecedented challenges that demand optimization of performance, power and resiliency in unison. Scalability on such systems is of paramount importance, while power and reliability issues may change the execution environment in which a parallel application runs. To solve these challenges exascale systems will require an introspective system software that combines system and application observations across all system stack layers with online feedback and adaptation mechanisms. In this paper we propose the design of a novel self-aware, self-adaptive system software in which a kernel-level Monitor, which continuously inspects the evolution of the target system through observation of Sensors, is combined with a user-level Controller, which reacts to changes in the execution environment, explores opportunities to increase performance, save power and adapts applications to new execution scenarios. We show that the monitoring system accurately monitors the evolution of parallel applications with a runtime overhead below 1-2%. As a test case, we design and implement a user-runtime system that aims at optimizing application’s performance and system power consumption on complex hierarchical architectures. Our results show that our adaptive system reaches 98% of performance efficiency of manually-tuned applications.

Revised: February 1, 2016 | Published: October 22, 2014

Citation

Gioiosa R., G. Kestor, D.J. Kerbyson, and A. Hoisie. 2014. Cross-Layer Self-Adaptive/Self-Aware System Software for Exascale Systems. In IEEE 26th International Symposium on Computer Architecture and High Performance Computing (SBAC PAD 2014), October 22-24, 2014, Paris, France, 326-333. Piscataway, New Jersey:IEEE. PNNL-SA-104751. doi:10.1109/SBAC-PAD.2014.29