Simplifying self-adaptive and power-aware computing with Nornir

Abstract Self-adaptation is an emerging requirement in parallel computing. It enables the dynamic selection of resources toallocate to the application in order to meet performance and power consumption requirements. This is particularly relevant in Fog Applications, where data is generated by a number of devices at a varying rate, according to users’ activity. By dynamically selecting the appropriate number of resources it is possible, for example, to use at each time step the minimum amount of resources needed to process the incoming data. Implementing such kind of algorithms may be a complex task, due to low-level interactions with the underlying hardware and to non-intrusive and low-overhead monitoring of the applications. For these reasons, in this paper we propose Nornir , a C++-based framework, which can be used to enforce performance and power consumption constraints on parallel applications running on shared memory multicores. The framework can be easily customized by algorithm designers to implement new self-adaptive policies. By instrumenting the applications in the PARSEC benchmark, we provide to strategy designers a wide set of applications already interfaced to Nornir . In addition to this, to prove its flexibility, we implemented and compared several state-of-the-art existing policies, showing that Nornir can also be used to easily analyze different algorithms and to provide useful insights on them.

[1]  Eui-Nam Huh,et al.  Reward-to-Reduce: An Incentive Mechanism for Economic Demand Response of Colocation Datacenters , 2016, IEEE Journal on Selected Areas in Communications.

[2]  Tiziano De Matteis,et al.  Keep calm and react with foresight: strategies for low-latency and energy-efficient elastic data stream processing , 2016, PPoPP.

[3]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[4]  Marco Danelutto,et al.  Bringing Parallel Patterns Out of the Corner , 2017, ACM Trans. Archit. Code Optim..

[5]  Eduard Ayguadé,et al.  Runtime-Guided Mitigation of Manufacturing Variability in Power-Constrained Multi-Socket NUMA Nodes , 2016, ICS.

[6]  Kun-Lung Wu,et al.  Elastic Scaling for Data Stream Processing , 2014, IEEE Transactions on Parallel and Distributed Systems.

[7]  Henry Hoffmann,et al.  Portable Multicore Resource Management for Applications with Performance Constraints , 2016, 2016 IEEE 10th International Symposium on Embedded Multicore/Many-core Systems-on-Chip (MCSOC).

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

[9]  Marco D. Santambrogio,et al.  On self-adaptive resource allocation through reinforcement learning , 2013, 2013 NASA/ESA Conference on Adaptive Hardware and Systems (AHS-2013).

[10]  Calton Pu,et al.  SWiFT: a feedback control and dynamic reconfiguration toolkit , 1998 .

[11]  Henry Hoffmann,et al.  A Probabilistic Graphical Model-based Approach for Minimizing Energy Under Performance Constraints , 2015, ASPLOS.

[12]  Shaolei Ren,et al.  GreenColo: A novel incentive mechanism for minimizing carbon footprint in colocation data center , 2014, International Green Computing Conference.

[13]  Odej Kao,et al.  Elastic Stream Processing with Latency Guarantees , 2015, 2015 IEEE 35th International Conference on Distributed Computing Systems.

[14]  Henry Hoffmann,et al.  Controlling software applications via resource allocation within the heartbeats framework , 2010, 49th IEEE Conference on Decision and Control (CDC).

[15]  S. Peng,et al.  Energy Neutral Clustering for energy harvesting wireless sensors networks , 2013, 2013 19th IEEE International Conference on Networks (ICON).

[16]  Torquati Massimo,et al.  Towards Power-Aware Data Pipelining on Multicores , 2017 .

[17]  Kai Li,et al.  The PARSEC benchmark suite: Characterization and architectural implications , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[18]  Henry Hoffmann,et al.  A generalized software framework for accurate and efficient management of performance goals , 2013, 2013 Proceedings of the International Conference on Embedded Software (EMSOFT).

[19]  Klara Nahrstedt,et al.  A control-based middleware framework for quality-of-service adaptations , 1999, IEEE J. Sel. Areas Commun..

[20]  David Black-Schaffer,et al.  Phase behavior in serial and parallel applications , 2012, 2012 IEEE International Symposium on Workload Characterization (IISWC).

[21]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[22]  Marco Danelutto,et al.  Mammut: High-level management of system knobs and sensors , 2017, SoftwareX.

[23]  Daniele De Sensi Predicting Performance and Power Consumption of Parallel Applications , 2016, 2016 24th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP).

[24]  Peter Kilpatrick,et al.  Accelerating Code on Multi-cores with FastFlow , 2011, Euro-Par.

[25]  Srinivas Devadas,et al.  Seec: a framework for self-aware management of goals and constraints in computing systems (power-aware computing, accuracy-aware computing, adaptive computing, autonomic computing) , 2013 .

[26]  Chenyang Lu,et al.  ControlWare: a middleware architecture for feedback control of software performance , 2002, Proceedings 22nd International Conference on Distributed Computing Systems.

[27]  Mor Harchol-Balter,et al.  Power Capping Via Forced Idleness , 2009 .

[28]  Marwan Krunz,et al.  QoE and power efficiency tradeoff for fog computing networks with fog node cooperation , 2017, IEEE INFOCOM 2017 - IEEE Conference on Computer Communications.

[29]  Marco Danelutto,et al.  A Reconfiguration Algorithm for Power-Aware Parallel Applications , 2016, ACM Trans. Archit. Code Optim..

[30]  Henry Hoffmann,et al.  Bard: A unified framework for managing soft timing and power constraints , 2016, 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS).

[31]  Jesús Labarta,et al.  Automatic Phase Detection and Structure Extraction of MPI Applications , 2010, Int. J. High Perform. Comput. Appl..

[32]  Marco Danelutto,et al.  A Power-Aware, Self-Adaptive Macro Data Flow Framework , 2017, Parallel Process. Lett..

[33]  Laxmikant V. Kalé,et al.  Using an Adaptive HPC Runtime System to Reconfigure the Cache Hierarchy , 2014, SC14: International Conference for High Performance Computing, Networking, Storage and Analysis.

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

[35]  Martin Schulz,et al.  Beyond DVFS: A First Look at Performance under a Hardware-Enforced Power Bound , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum.

[36]  Purushottam Kulkarni,et al.  Energy Harvesting Sensor Nodes: Survey and Implications , 2011, IEEE Communications Surveys & Tutorials.