<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "https://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" article-type="research-article" dtd-version="1.2" xml:lang="en">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">IJCSER</journal-id>
<journal-title-group><journal-title>International Journal of Computer Science Engineering and Research</journal-title></journal-title-group>
<publisher><publisher-name>Thomson &amp; Ryberg Publications</publisher-name></publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.62715/ijcser.2026.v1.i1.pp1-6</article-id>
<article-id pub-id-type="publisher-id">6394bfbba1</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Methodology Article</subject></subj-group></article-categories>
<title-group><article-title>Energy-Aware Scheduling of Serverless Functions Across Heterogeneous Edge and Cloud Nodes: A Proposed Design and Evaluation Protocol</article-title></title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes"><name><surname>Yamamoto</surname><given-names>Mateo</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1">*</xref></contrib>
<contrib contrib-type="author"><name><surname>Le</surname><given-names>Madina</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib>
<contrib contrib-type="author"><name><surname>Ellery</surname><given-names>Suresh</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib>
<aff id="aff1"><label>1</label>Department of Computer Science, Sharavati Institute of Computer Science, Norway</aff>
<aff id="aff2"><label>2</label>Department of Computer Science, Netravati Institute of Computer Science, Georgia</aff>
<aff id="aff3"><label>3</label>Department of Computer Science, Mekong Research Institute of Computer Science, Chile</aff>
</contrib-group>
<author-notes><corresp id="cor1">* Correspondence: <email>mateo.yamamoto@sharavati.edu</email></corresp></author-notes>
<pub-date pub-type="epub" iso-8601-date="2026-01-21"><day>21</day><month>01</month><year>2026</year></pub-date>
<volume>1</volume>
<issue>1</issue>
<fpage>1</fpage>
<lpage>6</lpage>
<history>
<date date-type="received" iso-8601-date="2025-09-25"><day>25</day><month>09</month><year>2025</year></date>
<date date-type="accepted" iso-8601-date="2025-11-29"><day>29</day><month>11</month><year>2025</year></date>
</history>
<permissions><copyright-statement>© 2026 The Author(s)</copyright-statement><copyright-year>2026</copyright-year><license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"><license-p>This is an open access article distributed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).</license-p></license></permissions>
<self-uri xlink:href="https://trpub.org/article.php?id=6394bfbba1"/>
<abstract><p>Serverless platforms decide, for every invocation, where a function runs and whether a warm instance is kept ready for the next call. When the candidate hosts range from single-board edge devices to cloud servers, those two decisions fix most of the energy an application consumes, yet production schedulers make them on latency and utilisation alone. This article proposes a design for an energy-aware scheduler and a protocol for evaluating it. The design has four parts: a per-node power model that separates idle from dynamic power, a per-function profile of execution time and payload size on each class of hardware, a placement rule that picks the lowest estimated energy among the nodes able to meet the latency deadline, and a keep-alive policy that weighs the standby power of a warm instance against the cost of a cold start. The evaluation protocol specifies workloads, baselines, metering and the form in which results should be reported, so that independent groups can compare schedulers on equal terms. Both the design and the protocol are proposals assembled from the published literature. Neither has been implemented or measured here, and the article sets out what an implementation would have to demonstrate.</p></abstract>
<kwd-group kwd-group-type="author">
<kwd>Serverless computing</kwd>
<kwd>Function as a service</kwd>
<kwd>Energy-aware scheduling</kwd>
<kwd>Edge computing</kwd>
<kwd>Cold start</kwd>
<kwd>Energy proportionality</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="sec1"><title>1. Introduction</title>
<p>Function as a service hides servers from the programmer. Code is uploaded as small stateless functions, the platform starts instances when requests arrive, and the bill follows execution time (Baldini et al., 2017; Jonas et al., 2019). The same abstraction is now offered outside the data centre. Open-source frameworks that run on Kubernetes can be installed on gateways and micro data centres close to sensors and users, which is where the edge computing literature has long argued that latency-sensitive work belongs (Shi et al., 2016).</p>
<p>A deployment that spans edge and cloud is heterogeneous in every respect that matters for energy. An ARM single-board computer draws a few watts and executes a function slowly. A cloud server draws two orders of magnitude more, finishes sooner, and shares its idle power among many tenants. Between them lies a wireless or wide-area link whose use costs energy at both ends. A scheduler that ignores these differences can meet every latency target and still waste most of the energy it spends.</p>
<p>This article proposes a scheduler design that treats energy as the quantity to be minimised and latency as a constraint, together with a protocol for testing such a scheduler fairly. It is a methodological contribution. No prototype has been built and no measurements are reported; the claims made are about how the problem should be structured and what evidence would settle whether the design works.</p>
</sec>
<sec id="sec2"><title>2. Background</title>
<p>Three bodies of work supply the parts of the design: studies of how serverless platforms behave, the energy literature on servers and data centres, and research on offloading between devices, edge and cloud.</p>
<sec id="sec2-2"><title>2.1. Serverless execution and where its energy goes</title>
<p>A function invocation is served either by a warm instance that is already loaded or by a cold start, in which a sandbox is created, the runtime is initialised and the code is fetched. Measurement studies of commercial platforms found cold starts to be slow and variable and showed that providers keep idle instances alive for minutes to avoid them (Wang et al., 2018). Lightweight virtual machine monitors such as Firecracker shortened sandbox creation considerably (Agache et al., 2020), but runtime and dependency loading remain. A production trace analysis by Shahrad et al. (2020) showed that most functions are invoked rarely, so a fixed keep-alive window holds memory for instances that are seldom reused, and it proposed windows adapted to each function&#x27;s invocation pattern. Warm instances are not free in energy terms: they occupy memory and prevent the host from being consolidated or put into a low-power state.</p>
</sec>
<sec id="sec2-3"><title>2.2. Power behaviour of servers and small devices</title>
<p>Barroso and Hölzle (2007) observed that servers draw a large share of their peak power when idle and argued for energy-proportional machines. Fan et al. (2007) showed that a simple model, idle power plus a term that grows with processor utilisation, predicts the power of a server well enough for provisioning. These two results explain why consolidation saves energy in data centres and underlie the allocation heuristics of Beloglazov et al. (2012), which pack virtual machines onto few hosts and switch the others off. Frequency scaling, the other classical lever, yields less on recent hardware than it once did because static power has grown relative to dynamic power (Le Sueur and Heiser, 2010). Small edge boards behave differently: their idle power is low in absolute terms, but so is their throughput, and energy per request depends strongly on the workload.</p>
</sec>
<sec id="sec2-4"><title>2.3. Offloading and metering</title>
<p>The mobile edge computing literature frames offloading as a comparison between the energy of computing locally and the energy of transmitting the input and waiting for the answer, subject to a delay bound (Mao et al., 2017). The same comparison applies to a function that could run on the gateway where its trigger arrives or on a distant server. Applying it needs measurements. On Intel processors the running average power limit interface exposes energy counters for the package and memory (David et al., 2010), and models built on utilisation counters can apportion host power among co-located tenants (Kansal et al., 2010). Boards without such counters must be metered externally at the supply.</p>
</sec>
</sec>
<sec id="sec3"><title>3. The Proposed Scheduler</title>
<p>The scheduler is conceived as an extension of the placement component of a Kubernetes-based function platform, since Kubernetes is the common substrate of edge and cloud clusters (Burns et al., 2016). It consists of four components, summarised in Table 1, that operate in a loop around every invocation.</p>
<table-wrap id="tbl1"><label>Table 1</label><caption><p>Components of the proposed energy-aware scheduler, with their inputs, outputs and basis in prior work</p></caption><table frame="hsides" rules="groups"><thead><tr><th>Component</th><th>Input</th><th>Output</th><th>Basis</th></tr></thead><tbody><tr><td>Node power model</td><td>Idle power, peak power, current utilisation of each node</td><td>Marginal power of adding one invocation</td><td>Fan et al., 2007</td></tr><tr><td>Function profile</td><td>Past execution times and payload sizes per hardware class</td><td>Expected duration and transfer volume</td><td>Shahrad et al., 2020</td></tr><tr><td>Transfer cost estimate</td><td>Link type and payload size between trigger and node</td><td>Energy of moving input and result</td><td>Mao et al., 2017</td></tr><tr><td>Placement rule</td><td>Energy estimates and latency deadline</td><td>Chosen node for the invocation</td><td>Beloglazov et al., 2012</td></tr><tr><td>Keep-alive policy</td><td>Inter-arrival history, standby power, cold-start energy</td><td>Time to retain a warm instance</td><td>Shahrad et al., 2020</td></tr><tr><td>Metering feedback</td><td>Counter or supply readings after execution</td><td>Corrected profile and model parameters</td><td>Kansal et al., 2010</td></tr></tbody></table></table-wrap>
<sec id="sec3-2"><title>3.1. Node power model</title>
<p>Each node is described by its idle power, its power at full load and a utilisation-to-power curve fitted once during commissioning. The quantity the scheduler needs is marginal: the additional energy the node will draw if it accepts one more invocation. On a node that is already active this is the dynamic power attributable to the function multiplied by its expected duration. On a node that would otherwise be idle or asleep, the cost of waking it and keeping it awake must be added. Charging idle power only to the invocation that causes it is what steers work towards machines that are already busy, the serverless analogue of consolidation.</p>
</sec>
<sec id="sec3-3"><title>3.2. Function profiles</title>
<p>For every function the scheduler keeps, per class of hardware, a running summary of execution time, memory footprint, input and output size, and cold-start duration. New functions have no history, so their first invocations are spread across hardware classes deliberately to populate the profile. Profiles are keyed by function version, since a new deployment can change behaviour completely, and they are updated after each execution from the metering feedback described below.</p>
</sec>
<sec id="sec3-4"><title>3.3. Placement rule</title>
<p>When a request arrives, the scheduler lists the nodes that hold or can start an instance of the function. For each it estimates completion time as queueing delay plus cold-start time, if no warm instance exists, plus execution and transfer time. Nodes whose estimate exceeds the function&#x27;s deadline are discarded. For the remainder it estimates energy as the sum of marginal compute energy, cold-start energy where applicable, and transfer energy at both ends of the link. The request goes to the node with the lowest estimate. If no node meets the deadline, the fastest is chosen and the violation is logged. The rule is greedy and local by design: it runs on the request path and must cost far less than the function it places.</p>
<p>Figure 1 shows the loop formed by these steps. Its final arc matters as much as the decision itself, because the estimates are only as good as the profiles and power curves behind them.</p>
<fig id="fig1"><label>Figure 1</label><caption><p>The placement loop of the proposed scheduler, executed for each function invocation</p></caption><graphic xlink:href="IJCSER_V1I1_2026_01_Figure1.png" mimetype="image" mime-subtype="png"/></fig>
</sec>
<sec id="sec3-5"><title>3.4. Keep-alive policy</title>
<p>After an invocation completes, the instance may be retained. Retaining it costs standby energy, which is the memory it pins plus any share of idle power it prevents the node from shedding. Releasing it risks a cold start whose energy is known from the profile. The policy keeps the instance for as long as the expected cold-start energy avoided, given the function&#x27;s observed inter-arrival distribution, exceeds the standby energy spent. This is the histogram-based idea of Shahrad et al. (2020) with energy substituted for memory as the cost. On a battery or solar-powered edge node the standby term is weighted more heavily than on a mains-powered server.</p>
</sec>
</sec>
<sec id="sec4"><title>4. Evaluation Protocol</title>
<p>A scheduler of this kind is easy to make look good against a weak baseline or a favourable workload. The protocol below is intended to prevent that, and follows the general discipline of experimental design for computer systems set out by Jain (1991).</p>
<p>The testbed should contain at least three hardware classes, for example an ARM board, a small x86 edge server and a cloud-class server, joined by links whose bandwidth and delay are controlled. Workloads should combine a published function benchmark suite such as SeBS (Copik et al., 2021), which covers compute-bound, input-output-bound and multimedia functions, with invocation patterns replayed from a public production trace so that the mix of frequent and rare functions is realistic. Synthetic constant-rate load alone is not sufficient, since keep-alive policies are trivial under it.</p>
<p>Four baselines are needed: the platform&#x27;s default scheduler; a latency-greedy policy that always picks the fastest node; a cloud-only and an edge-only placement; and the proposed placement rule with a fixed keep-alive window, which isolates the contribution of the adaptive policy. Energy should be metered for whole nodes at the supply, with on-chip counters used as a cross-check where available, and the energy of network equipment should be either measured or declared out of scope.</p>
<p>Results should be reported as energy per successful invocation alongside the tail of the latency distribution and the fraction of deadlines missed, never as energy alone. Each configuration should be repeated enough times to give confidence intervals, and the trace, function code, power curves and scheduler configuration should be published with the results. Where the carbon intensity of the supply differs between sites or over time, a second analysis may weight energy by carbon, in the manner explored for delay-tolerant cloud workloads by Wiesner et al. (2021).</p>
</sec>
<sec id="sec5"><title>5. Limitations and What Remains to Be Shown</title>
<p>The design has not been implemented, and several of its assumptions could fail in practice. The power model assumes that the energy of co-located functions adds up, which interference in caches and memory bandwidth can violate. The profiles assume that past executions predict future ones, which holds poorly for functions whose running time depends on their input. The greedy rule ignores the effect of one placement on later ones and may fragment load across nodes that a global optimiser would have emptied. Whether these simplifications cost much energy is exactly what the evaluation protocol is meant to reveal.</p>
<p>The serverless model also limits what any scheduler can do. Functions that exchange large state through remote storage spend their energy on data movement however well they are placed, a structural weakness of the model identified by Hellerstein et al. (2019). Finally, the protocol measures operational energy only. Manufacturing energy of edge hardware, cooling overheads and the energy of the wider network fall outside it and should be acknowledged as such in any report that uses it.</p>
</sec>
<sec id="sec6"><title>6. Conclusion</title>
<p>Energy-aware scheduling of serverless functions across edge and cloud can be built from results that are individually well established: additive power models, per-function profiles, the offloading comparison and adaptive keep-alive. This article has combined them into a scheduler design that minimises estimated energy under a latency deadline and has specified how such a design should be tested. The design remains a proposal until it is implemented and measured, and the protocol is offered so that this can be done in a form others can check.</p>
</sec>
<sec id="sec7"><title>Conflict of interest</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
<sec id="sec8"><title>Funding</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
</body>
<back>
<ref-list><title>References</title>
<ref id="ref1"><label>1</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Agache, A., Brooker, M., Iordache, A., Liguori, A., Neugebauer, R., Piwonka, P. and Popa, D.-M.</string-name></person-group> (<year>2020</year>). <article-title>Firecracker: Lightweight virtualization for serverless applications</article-title>. <source>Proceedings of the 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI 20)</source>, <fpage>419-434</fpage></mixed-citation></ref>
<ref id="ref2"><label>2</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Baldini, I., Castro, P., Chang, K., Cheng, P., Fink, S., Ishakian, V., Mitchell, N., Muthusamy, V., Rabbah, R., Slominski, A. and Suter, P.</string-name></person-group> (<year>2017</year>). <article-title>Serverless computing: Current trends and open problems</article-title>. <source>In: Chaudhary, S., Somani, G. and Buyya, R. (eds), Research Advances in Cloud Computing. Springer, Singapore, 1-20</source></mixed-citation></ref>
<ref id="ref3"><label>3</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Barroso, L.A. and Hölzle, U.</string-name></person-group> (<year>2007</year>). <article-title>The case for energy-proportional computing</article-title>. <source>Computer</source>, <volume>40(12)</volume>, <fpage>33-37</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/MC.2007.443">https://doi.org/10.1109/MC.2007.443</ext-link></mixed-citation></ref>
<ref id="ref4"><label>4</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Beloglazov, A., Abawajy, J. and Buyya, R.</string-name></person-group> (<year>2012</year>). <article-title>Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing</article-title>. <source>Future Generation Computer Systems</source>, <volume>28(5)</volume>, <fpage>755-768</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.future.2011.04.017">https://doi.org/10.1016/j.future.2011.04.017</ext-link></mixed-citation></ref>
<ref id="ref5"><label>5</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Burns, B., Grant, B., Oppenheimer, D., Brewer, E. and Wilkes, J.</string-name></person-group> (<year>2016</year>). <article-title>Borg, Omega, and Kubernetes</article-title>. <source>Communications of the ACM</source>, <volume>59(5)</volume>, <fpage>50-57</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/2890784">https://doi.org/10.1145/2890784</ext-link></mixed-citation></ref>
<ref id="ref6"><label>6</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Copik, M., Kwasniewski, G., Besta, M., Podstawski, M. and Hoefler, T.</string-name></person-group> (<year>2021</year>). <article-title>SeBS: A serverless benchmark suite for function-as-a-service computing</article-title>. <source>Proceedings of the 22nd International Middleware Conference</source></mixed-citation></ref>
<ref id="ref7"><label>7</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>David, H., Gorbatov, E., Hanebutte, U.R., Khanna, R. and Le, C.</string-name></person-group> (<year>2010</year>). <article-title>RAPL: Memory power estimation and capping</article-title>. <source>Proceedings of the 16th ACM/IEEE International Symposium on Low Power Electronics and Design</source>, <fpage>189-194</fpage></mixed-citation></ref>
<ref id="ref8"><label>8</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Fan, X., Weber, W.-D. and Barroso, L.A.</string-name></person-group> (<year>2007</year>). <article-title>Power provisioning for a warehouse-sized computer</article-title>. <source>Proceedings of the 34th Annual International Symposium on Computer Architecture</source>, <fpage>13-23</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/1250662.1250665">https://doi.org/10.1145/1250662.1250665</ext-link></mixed-citation></ref>
<ref id="ref9"><label>9</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Hellerstein, J.M., Faleiro, J., Gonzalez, J.E., Schleier-Smith, J., Sreekanti, V., Tumanov, A. and Wu, C.</string-name></person-group> (<year>2019</year>). <article-title>Serverless computing: One step forward, two steps back</article-title>. <source>Proceedings of the 9th Biennial Conference on Innovative Data Systems Research (CIDR 2019)</source></mixed-citation></ref>
<ref id="ref10"><label>10</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Jain, R.</string-name></person-group> (<year>1991</year>). <article-title>The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling</article-title>. <source>John Wiley &amp; Sons, New York</source></mixed-citation></ref>
<ref id="ref11"><label>11</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Jonas, E., Schleier-Smith, J., Sreekanti, V., Tsai, C.-C., Khandelwal, A., Pu, Q., Shankar, V., Carreira, J., Krauth, K., Yadwadkar, N., Gonzalez, J.E., Popa, R.A., Stoica, I. and Patterson, D.A.</string-name></person-group> (<year>2019</year>). <article-title>Cloud programming simplified: A Berkeley view on serverless computing</article-title>. <source>arXiv preprint arXiv:1902.03383</source></mixed-citation></ref>
<ref id="ref12"><label>12</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Kansal, A., Zhao, F., Liu, J., Kothari, N. and Bhattacharya, A.A.</string-name></person-group> (<year>2010</year>). <article-title>Virtual machine power metering and provisioning</article-title>. <source>Proceedings of the 1st ACM Symposium on Cloud Computing</source>, <fpage>39-50</fpage></mixed-citation></ref>
<ref id="ref13"><label>13</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Le Sueur, E. and Heiser, G.</string-name></person-group> (<year>2010</year>). <article-title>Dynamic voltage and frequency scaling: The laws of diminishing returns</article-title>. <source>Proceedings of the 2010 Workshop on Power Aware Computing and Systems (HotPower 10)</source></mixed-citation></ref>
<ref id="ref14"><label>14</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Mao, Y., You, C., Zhang, J., Huang, K. and Letaief, K.B.</string-name></person-group> (<year>2017</year>). <article-title>A survey on mobile edge computing: The communication perspective</article-title>. <source>IEEE Communications Surveys &amp; Tutorials</source>, <volume>19(4)</volume>, <fpage>2322-2358</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/COMST.2017.2745201">https://doi.org/10.1109/COMST.2017.2745201</ext-link></mixed-citation></ref>
<ref id="ref15"><label>15</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Shahrad, M., Fonseca, R., Goiri, Í., Chaudhry, G., Batum, P., Cooke, J., Laureano, E., Tresness, C., Russinovich, M. and Bianchini, R.</string-name></person-group> (<year>2020</year>). <article-title>Serverless in the wild: Characterizing and optimizing the serverless workload at a large cloud provider</article-title>. <source>Proceedings of the 2020 USENIX Annual Technical Conference</source>, <fpage>205-218</fpage></mixed-citation></ref>
<ref id="ref16"><label>16</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Shi, W., Cao, J., Zhang, Q., Li, Y. and Xu, L.</string-name></person-group> (<year>2016</year>). <article-title>Edge computing: Vision and challenges</article-title>. <source>IEEE Internet of Things Journal</source>, <volume>3(5)</volume>, <fpage>637-646</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/JIOT.2016.2579198">https://doi.org/10.1109/JIOT.2016.2579198</ext-link></mixed-citation></ref>
<ref id="ref17"><label>17</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Wang, L., Li, M., Zhang, Y., Ristenpart, T. and Swift, M.</string-name></person-group> (<year>2018</year>). <article-title>Peeking behind the curtains of serverless platforms</article-title>. <source>Proceedings of the 2018 USENIX Annual Technical Conference</source>, <fpage>133-146</fpage></mixed-citation></ref>
<ref id="ref18"><label>18</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Wiesner, P., Behnke, I., Scheinert, D., Gontarska, K. and Thamsen, L.</string-name></person-group> (<year>2021</year>). <article-title>Let&#x27;s wait awhile: How temporal workload shifting can reduce carbon emissions in the cloud</article-title>. <source>Proceedings of the 22nd International Middleware Conference</source></mixed-citation></ref>
</ref-list>
</back>
</article>