Skip to content

grayzing/green-gcn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

168 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GREEN-GCN Testbed

Open Radio Access Networks (O-RAN) significantly reduces operating costs, increases flexibility for network operators, and allow for more intelligent cellular networks. In the context of Ultra Dense Networks (UDNs), energy efficiency (EE) is a critical problem, especially due to the dense placement of Radio Units (O-RUs), which drives up energy costs for providers. O-RU sleep switching, where underutilized O-RUs are placed into sleep modes to conserve energy, is a practical and attractive solution. Hard-coded methods such as MILP solvers and heuristics struggle with the dynamic and asymmetrical traffic associated with UDNs. We propose GREEN-GCN: a deep reinforcement learning (DRL) approach to O-RU sleep switching, which leverages a graph convolutional network for intelligent advanced sleep mode (ASM) management of O-RUs. To train the model, we utilized Ape-X distributed prioritized experience replay, ensuring generalization of the model to different network scenarios, and reducing the training time required for convergence of the model.

Artefact Evaluation

First clone the repo

git clone https://github.com/grayzing/rasmo.git
cd rasmo

Then install dependencies (after setting up whatever venv)

pip install -r requirements.txt

Training

Change your hyperparameters in hyperparameters.yaml, then run

cd src
python3 distributed.py

unfortunately you can't read training logs in /logs in real-time, since they are .h5. To stop your training and read the training logs (which really only record mean loss per training pass), do a KeyboardInterrupt on the distributed.py training (usually Ctrl + C on UNIX-like systems), and then

cd ../logs
python3 plot_training.py

If you've been running the training for long enough, the updated Q model should've been saved anyway. So you can just spin the distributed.py back up as normal.

Quirks/Bugs

"CRITICAL ERROR in Learner Loop: high - low range exceeds valid bounds" This means that there is an NaN TD-error that was generated. If you were messing with the reward/state functions, that is why. Revert the reward/state functions and try again.

About

Advanced O-RU sleep control using Graph Convolutional Deep Q Network + Distributed PER

Topics

Resources

License

Stars

Watchers

Forks

Contributors