Abstract
Adaptive, or self-aware, computing has been proposed to help application programmers confront the growing complexity of multicore software development. However, existing approaches to adaptive systems are largely ad hoc and often do not manage to incorporate the true performance goals of the applications they are designed to support. This paper presents an enabling technology for adaptive computing systems: Application Heartbeats. The Application Heartbeats framework provides a simple, standard programming interface that applications can use to indicate their performance and system software (and hardware) can use to query an application's performance. The PARSEC benchmark suite is instrumented with Application Heartbeats to show the broad applicability of the interface and an external resource scheduler demonstrates the use of the interface by assigning cores to an application to maintain a designated performance goal.
- J. Eastep, D. Wingate, M. D. Santambrogio, and A. Agarwal. Smartlocks: Self-aware synchronization through lock acquisition scheduling. Technical Report MIT CSAIL, MIT, Nov 2009.Google Scholar
- H. Hoffmann, J. Eastep, M. Santambrogio, J. Miller, and A. Agarwal. Application heartbeats for software performance and health. Technical Report MIT-CSAIL-TR-2009-035, MIT, Aug 2009.Google Scholar
- H. Hoffmann, S. Misailovic, S. Sidiroglou, A. Agarwal, and M. Rinard. Using Code Perforation to Improve Performance, Reduce Energy Consumption, and Respond to Failures. Technical Report MITCSAIL-TR-2009-042, MIT, Sept 2009.Google Scholar
- E. Ipek, O. Mutlu, J. F. Mart1nez, and R. Caruana. Self-optimizing memory controllers: A reinforcement learning approach. In ISCA '08: Proc of the 35th Intl. Symp. on Comp. Arch., pages 39--50, 2008. Google Scholar
Digital Library
- M. Salehie and L. Tahvildari. Self-adaptive software: Landscape and research challenges. ACM Trans. Auton. Adapt. Syst., 4(2):1--42, 2009. Google Scholar
Digital Library
Index Terms
Application heartbeats for software performance and health
Recommendations
Application heartbeats: a generic interface for specifying program performance and goals in autonomous computing environments
ICAC '10: Proceedings of the 7th international conference on Autonomic computingThe rise of multicore computing has greatly increased system complexity and created an additional burden for software developers. This burden is especially troublesome when it comes to optimizing software on modern computing systems. Autonomic or ...
Application heartbeats for software performance and health
PPoPP '10: Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel ProgrammingAdaptive, or self-aware, computing has been proposed to help application programmers confront the growing complexity of multicore software development. However, existing approaches to adaptive systems are largely ad hoc and often do not manage to ...
CollectionSwitch: a framework for efficient and dynamic collection selection
CGO 2018: Proceedings of the 2018 International Symposium on Code Generation and OptimizationSelecting collection data structures for a given application is a crucial aspect of the software development. Inefficient usage of collections has been credited as a major cause of performance bloat in applications written in Java, C++ and C#. ...







Comments