Runtime Resource Management in Heterogeneous System Architectures: The SAVE Approach

Modern computing systems featuring different kinds of processing elements have proven to be efficient in terms of performance/energy trade-offs. Furthermore these systems usually have to execute multiple concurrent tasks without any apriori knowledge on expected arrival times, in an unpredictable and very dynamic environment. This scenario has propelled an interest towards self-adaptive systems that dynamically reorganize the use of system resources to optimize for a given goal. The SAVE project will develop a Heterogeneous System Architecture that will decide at runtime to execute task on the appropriate kind of resources, based on the current requirements. This paper presents a first implementation of a resource allocation policy that dynamically shares heterogeneous resources between multiple running applications. Resource allocation mechanisms are discussed and evaluated in an experimental campaign, showing how the policy helps in attaining users' applications goals.

[1]  Frank Vahid,et al.  Binary synthesis , 2007, TODE.

[2]  David Sinreich,et al.  An architectural blueprint for autonomic computing , 2006 .

[3]  Mark Silberstein,et al.  PTask: operating system abstractions to manage GPUs as compute devices , 2011, SOSP.

[4]  Dilma Da Silva,et al.  K42: building a complete operating system , 2006, EuroSys.

[5]  Henry Hoffmann,et al.  Metronome: Operating system level performance management via self-adaptive computing , 2012, DAC Design Automation Conference 2012.

[6]  Jeffrey O. Kephart,et al.  The Vision of Autonomic Computing , 2003, Computer.

[7]  João M. P. Cardoso,et al.  Automatic generation of FPGA hardware accelerators using a domain specific language , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[8]  Stephen A. Edwards,et al.  The Challenges of Synthesizing Hardware from C-Like Languages , 2006, IEEE Design & Test of Computers.

[9]  Ra Inta,et al.  The "Chimera": An Off-The-Shelf CPU/GPGPU/FPGA Hybrid Computing Platform , 2012, Int. J. Reconfigurable Comput..

[10]  John Wawrzynek,et al.  BEE2: a high-end reconfigurable computing system , 2005, IEEE Design & Test of Computers.

[11]  Henry Hoffmann,et al.  SEEC: A Framework for Self-aware Computing , 2010 .

[12]  Michael J. Flynn,et al.  Beyond Traditional Microprocessors for Geoscience High-Performance Computing Applications , 2011, IEEE Micro.

[13]  Marco Platzner,et al.  ReconOS: An Operating System Approach for Reconfigurable Computing , 2014, IEEE Micro.

[14]  Rajeev Barua,et al.  A compiler-level intermediate representation based binary analysis and rewriting system , 2013, EuroSys '13.

[15]  Robert W. Brodersen,et al.  A unified hardware/software runtime environment for FPGA-based reconfigurable computers using BORPH , 2006, Proceedings of the 4th International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS '06).

[16]  Giuseppe Massari,et al.  A RTRM proposal for multi/many-core platforms and reconfigurable applications , 2012, 7th International Workshop on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC).

[17]  Prithviraj Banerjee,et al.  An Overview of a Compiler for Mapping Software Binaries to Hardware , 2007, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[18]  Salim Hariri,et al.  The Autonomic Computing Paradigm , 2006, Cluster Computing.

[19]  Marco Platzner,et al.  Self-Awareness as a Model for Designing and Operating Heterogeneous Multicores , 2014, TRETS.