This is the GitHub Repo for paper "GREEN: Towards Scalable Energy-Efficient Workload Scheduling and Placement in the Cloud".
GREEN is a graph neural network + reinforcement learning (GNN-RL) solution for energy-efficient cloud workload scheduling and placement that performs datacenter resource management as graph optimizations. GREEN generalizes from small training datacenters to 10× larger datacenters, and GREEN is better than previous state-of-the-art energy-aware cloud resource managers by >2x in datacenter total energy and deadline-driven SLO metrics. GREEN is scale-up generalizable due to its scale-invariant RL formulation and scalable GNN architecture.
GREEN's GNN-RL solver is implemented based on DGL, NetworkX, PyTorch, and Numpy. The cloud simulation is implemented using a modified COSCO Cloud Simulator (pre-modification implementations at https://github.com/imperial-qore/COSCO). The real-world testbed is implemented on top of Docker Swarm (https://docs.docker.com/engine/swarm/) and a modified COSCO Real-World Framework (pre-modification implementations at https://github.com/imperial-qore/COSCO/tree/master/framework).
GREEN/
├── COSCO_exp/ # experimental testbed implementations
├── COSCO_ggcn # testbed implementations for the COSCO Cloud Simulator
└── COSCO_cloudlab # testbed implementations for real-world experiments using customized Docker Swarm + COSCO Real-World Framework
├── dqgnn/ # GREEN's GNN-RL solver implementation (RL agent + graph environment + GNN neural network architecture)
├── env_setup/ # GREEN GNN-RL implementation's software dependency
├── LICENSE
└── README.md
To run GREEN's GNN-RL solver, a machine with Conda is needed. Linux + Miniconda is highly recommended.
To install GNN-RL solver's default conda environment (Python 3.9) with DGL (1.0.1) using CUDA GPUs (CUDA 11.6), run:
cd env_setup/conda_env_yml_files
conda create -f eehc_env_2025-04-28.yml
This would create a Conda environment named gnnrl.
Note: if GNN-RL solver only needs to run on CPU (e.g., installing on a machine without CUDA GPU), then the CUDA-related conda packages can be removed from eehc_env_2025-04-28.yml.
To install COSCO Cloud Simulator's software dependencies, run:
cd COSCO_exp/COSCO_ggcn
conda activate gnnrl
pip install -r requirements.txt
Note: You may need to download additional workload-trace-related dataset(s) required by COSCO Simulator (e.g., BitBrains, AzurePublicDataset, etc.)
In this setup, a testbed with at least two linux machines (a master node + at least one worker node) is needed. Root on all linux machines are required. The root account on master node should have already configured SSH-key based password-less login to each worker node.
The IP addresses of all worker nodes should be written in COSCO_exp/COSCO_cloudlab/framework/install_scripts/cloudlab_install/all_worker_ips.
The following commands should be executed on the master node using root account:
cd COSCO_exp/COSCO_cloudlab/framework/install_scripts/cloudlab_install
chmod +x install_testbed.sh
chmod +x install_testbed_docker_swarm.sh
./install_testbed.sh
./install_testbed_docker_swarm.sh
Example 1: training GREEN using our customized COSCO Cloud Simulator, with server-sleep disabled.
cd dqgnn/gnnrl_examples/cloud-simulator/disable_host_suspend
conda activate gnnrl
python -u train.py
Example 2: training GREEN using our customized COSCO Cloud Simulator, with server-sleep enabled (GREEN puts active idle servers to sleep).
cd dqgnn/gnnrl_examples/cloud-simulator/enable_host_suspend
conda activate gnnrl
python -u train.py
Example: run LR-MMT scheduler on Docker Swarm real-world testbed.
cd COSCO_exp/COSCO_cloudlab
conda activate gnnrl
python -u main.py
Note: To run GREEN on Docker Swarm testbed, change LRMMTRScheduler in COSCO_exp/COSCO_cloudlab/main.py to DQGNNScheduler (ref: Z:\GREEN\dqgnn\dqgnn-src\src\dqgnn_scheduler.py).
Please cite our work if you find our code/paper is useful to your work:
@inproceedings{wang2026green,
title = {GREEN: Towards Scalable Energy-Efficient Workload Scheduling and Placement in the Cloud},
author = {Wang, Jinghua and Tantawi, Asser and Tardieu, Olivier and Youssef, Alaa S. and Eilam, Tamar and Wang, Chen and Bose, Pradip and Wan, Lily (Jiaxin) and Nahrstedt, Klara and Chen, Deming},
booktitle = {Proceedings of the 63rd ACM/IEEE Design Automation Conference (DAC '26)},
year = {2026},
address = {Long Beach, California, USA},
month = jul,
isbn = {979-8-4007-2254-7},
publisher = {Association for Computing Machinery (ACM)}
}