Architectural Tactics for Energy Efficiency: Review of the Literature and Research Roadmap

Status:: 🟩
Links:: 30_Knowledge/Green Architectural Tactics

Metadata

Authors:: Paradis, Carlos; Kazman, Rick; Tamburri, Damian Andrew; Kazman, Rick; Tamburri, Damian Andrew
Title:: Architectural Tactics for Energy Efficiency: Review of the Literature and Research Roadmap
Date:: 2021
URL:: http://hdl.handle.net/10125/71488
DOI::

Bibliography

Paradis, C., Kazman, R., Tamburri, D. A., Kazman, R., & Tamburri, D. A. (2021). Architectural Tactics for Energy Efficiency: Review of the Literature and Research Roadmap. http://hdl.handle.net/10125/71488

Zotero

Type:: #zotero/book
Zotero::

Keywords:: [📖, Architectural Tactics, Energy Efficiency, Software Architecture]

Relations

Related:: @Procaccianti.etal.2014.CatalogueGreenArchitectural

Related:: @Vos.etal.2022.ArchitecturalTacticsOptimize

Abstract

The energy consequences of software are rapidly growing: at the high-end, server farms consume enormous amounts of energy; at the low-end there is ever-increasing emphasis on battery-powered mobile and Internet-of-Things (IoT) devices with equally increasing complex usage scenarios. Conversely, there has been little attention to how software architectures can be designed for energy efficiency. While other software qualities—--think of performance or availability--—have been extensively studied, there is little research on how to reason about energy-consumption as a first-class citizen. We provide a basis for reasoning about design decisions for energy efficiency by deriving a kit of reusable architectural tactics derived from literature. We use the well-known open-search and snowballing methodologies to attain primary studies, and subsequently used thematic coding of such studies to identify recurrences and commonalities among the design strategies presented. The result of this process is a set of 10 architectural tactics for energy efficiency. These tactics provide a rational basis for architectural design and analysis for energy efficiency.

Notes & Annotations

📑 Annotations (imported on 2024-01-15#15:15:33)

paradis.etal.2021.architecturaltacticsenergy (pg. 1)

Tactics are fundamental design techniques that an architect can use to reason about and manage a quality attribute [4]. Tactics, like design patterns, are techniques that architects have been using for years.

[4] L. Bass, P. Clements, and R. Kazman, Software Architecture in Practice. Addison-Wesley, 3rd ed., 2012.
@Bass.etal.2021.SoftwareArchitecturePractice

paradis.etal.2021.architecturaltacticsenergy (pg. 2)

Tactics are simpler than, and more primitive than design patterns. Tactics focus on the control of a single quality attribute response (although they may, of course, trade off this response with other quality attribute goals). Patterns, in contrast, typically focus on resolving and balancing multiple forces—–multiple quality attribute goals.

paradis.etal.2021.architecturaltacticsenergy (pg. 4)

Energy efficiency is, at its heart, about optimally utilizing resources. We therefore grouped the tactics into three broad categories: Resource Monitoring, Resource Allocation, and Resource Adaptation.

|600

paradis.etal.2021.architecturaltacticsenergy (pg. 4)

in the context of energy efficiency, vertical scaling may be used to “scale down”, that is removing or deactivating resources when demands no longer require them. Scaling down may involve spinning down hard drives, turning off CPUs, running CPUs at a slower clock rate, or shutting down current to blocks of the processor that are not in use.

paradis.etal.2021.architecturaltacticsenergy (pg. 4)

For energy efficiency, horizontal scaling means the removal or idling of such resources. This may take the form of moving VMs onto the minimum number of physical servers (consolidation), combined with shutting down idle computational resources.

paradis.etal.2021.architecturaltacticsenergy (pg. 5)

The point of scheduling in the context of energy efficiency is to optimize energy usage, given task constraints and respecting task priorities. Scheduling provides the scaling decisions for either horizontal or vertical scaling, based on data collected (using one or more Resource Monitoring tactics) about the state of the system being scheduled.

paradis.etal.2021.architecturaltacticsenergy (pg. 5)

A broker matches service requests (from clients) with service providers, supporting the identification and remote invocation of those services. Traditionally brokers make these matches based on a description of the service request (typically an API). However in the context of energy efficiency this request could be annotated with energy information, allowing the requestor to choose a service provider based on its (possibly dynamic) energy characteristics.

paradis.etal.2021.architecturaltacticsenergy (pg. 5)

The use of intermediaries and abstractions (so important for modifiability) increases the resources consumed in processing an event stream. Hence removing these intermediaries typically improves latency and throughput. This is a classic modifiability/performance tradeoff.

paradis.etal.2021.architecturaltacticsenergy (pg. 5)

Separation of concerns, another foundation of modifiability, can also increase the overhead necessary to service an event if it leads to an event being serviced by an ensemble of components rather than a single component. The context switching and inter-component communication costs result in increased energy consumption, particularly when the components are on different nodes on a network. A strategy for reducing computational overhead and energy demands is therefore to co-locate resources and remove intermediaries and abstractions. Co-location may mean hosting cooperating components on the same processor to avoid the time delay of network communication or it may even mean putting the resources in the same execution container, to avoid even the expense of a method call and its context-switching costs.

paradis.etal.2021.architecturaltacticsenergy (pg. 5)

Design and review contexts are the most common and perhaps most obvious uses for a collection of tactics. For example, in Cervantes et al. [9], a practice of using tactics as design analysis questionnaires is promoted. In this case, each tactic is turned into a question. An interviewer uses these questions to ask the architect if they considered using the tactic, how it is implemented, and the rationale for the way in which it was implemented or, if it was not implemented, the rationale for its exclusion.

[9] H. Cervantes and R. Kazman, Designing Software Architectures: A Practical Approach. Addison-Wesley Professional, May 2016.

paradis.etal.2021.architecturaltacticsenergy (pg. 6)

Sets of design patterns for energy efficiency have only recently begun to emerge. For example two recent papers describe sets of energy efficiency patterns for mobile devices [15] and embedded systems [16].

[15] L. Cruz and R. Abreu, “Catalog of energy patterns for mobile applications,” Empirical Software Engineering, vol. 24, pp. 2209–2235, 2019.

[16] M. Schaarschmidt, M. Uelschen, E. Pulvermuellerm, and C. Westerkamp, “Framework of software design patterns for energy-aware embedded systems,” in Proceedings of the 15th International Conference on Evaluation of Novel Approaches to Software Engineering (ENASE 2020), 2020.

paradis.etal.2021.architecturaltacticsenergy (pg. 7)

In [9] the authors examined tradeoffs between latency, energy usage, and modifiability in mobile applications and showed that certain architectural choices in the implementation of the MVP pattern—bundling or dropping messages, realizing the Reduce Overhead tactic—can improve energy consumption by 30% without negatively impacting latency or modifiability.

[9] H. Cervantes and R. Kazman, Designing Software Architectures: A Practical Approach. Addison-Wesley Professional, May 2016.

paradis.etal.2021.architecturaltacticsenergy (pg. 7)

in [3] the authors demonstrated that, with some modest changes to communication protocols (realizations of the Reduce Overhead and Increase Efficiency tactics), an IoT application could reap 86% energy savings.

[3] R. Kazman, S. Haziyev, A. Yakuba, and D. A. Tamburri, “Managing energy consumption as an architectural quality attribute.,” IEEE Software, vol. 35, no. 5, pp. 102–107, 2018.
@Kazman.etal.2018.ManagingEnergyConsumption

paradis.etal.2021.architecturaltacticsenergy (pg. 7)

It is crucial to have a framework that enumerates the relevant contextual factors, and aids in reasoning about the consequences of modularization decisions and adoption of off-the-shelf components on energy efficiency. For example, we could study the effects of varying degrees of modularization, such as layering—and their effects on energy efficiency. But the tradeoff with modularity is just one dimension. We also want to know, for any level of modularity, the consequences on time-to-market and evolvability. In this way a project manager or architect could make reasoned decisions about such tradeoffs.

paradis.etal.2021.architecturaltacticsenergy (pg. 7)

Of these quality attributes, only the tradeoffs between performance and energy efficiency have been studied in any depth, as evidenced by our extensive search of the research literature. But energy efficiency additionally has implications for usability (if response times are slowed or screens are dimmed), for availability (if backups are taken off-line, resulting in longer recovery times after failures), and for modifiability.

paradis.etal.2021.architecturaltacticsenergy (pg. 7)

Amongst these quality tradeoffs, the greatest importance is to gain an understanding of the consequences of modularization (and buy versus build) decisions. This has received scant attention from the research community. Capra et al. [17] reported on a study where they concluded that the use of frameworks and external libraries is detrimental to the energy efficiency of large applications.

[17] E. Capra, C. Francalanci, and S. Slaughter, “Measuring application software energy efficiency.,” IT Prof., vol. 14, no. 2, pp. 54–61, 2012.