The Online Pause and Resume Problem: Optimal Algorithms and An Application to Carbon-Aware Load Shifting
We introduce and study the online pause and resume problem. In this problem, a player attempts to find the
Our experimental code has been written in Python3. We recommend using a tool to manage Python virtual environments, such as Miniconda. There are several required Python packages:
- NumPy
- pandas
- SymPy
- Matplotlib for creating plots
- Seaborn
- functions.py: Implements helper functions and algorithms.
- experiments.py: Main Python script for all experiments.
- alpha*.pickle: Caches a dictionary of precomputed alpha values for k-min search algorithm and online pause and resume algorithm
- carbon-traces/: directory, contains carbon traces in .csv format.
- "CA": "CA-ON.csv" (Ontario, Canada)
- "NZ": "NZ-NZN.csv" (New Zealand)
- "US": "US-NW-PACW.csv" (Pacific NW, USA)
Given a correctly configured Python environment, with all dependencies, one can reproduce our main results by cloning this repository, and running the following in a command line at the root directory:
python experiments.py {TRACE CODE} {AMOUNT OF SLACK}
Pass the abbreviation for the trace file and the desired amount of slack as command line arguments. For example, running the experiments on the Ontario trace with 48 hours of slack is accomplished by running python experiments.py CA 48
@article{lechowicz2023pauseresume, title={The Online Pause and Resume Problem: Optimal Algorithms and An Application to Carbon-Aware Load Shifting}, volume={7}, ISSN={2476-1249}, url={http://dx.doi.org/10.1145/3626776}, DOI={10.1145/3626776}, number={3}, journal={Proceedings of the ACM on Measurement and Analysis of Computing Systems}, publisher={Association for Computing Machinery (ACM)}, author={Lechowicz, Adam and Christianson, Nicolas and Zuo, Jinhang and Bashir, Noman and Hajiesmaili, Mohammad and Wierman, Adam and Shenoy, Prashant}, year={2023}, month={Dec}, pages={1–32} }