Skip to content

zhouyou-gu/ac-grl-wi-fi

Repository files navigation

AC-GRL-WI-FI

Codes for paper, "Graph Representation Learning for Contention and Interference Management in Wireless Networks." The manuscript is available at IEEE Xplore and arXiv.

Author: Zhouyou Gu (zhouyou.gu@sydney.edu.au);

Supervisors: Wibowo Hardjawana (wibowo.hardjawana@sydney.edu.au); Branka Vucetic (branka.vucetic@sydney.edu.au);

Collaborators: Kishore Chikkam and Pasquale Aliberti from Morse Micro, Sydney.

This project is developed at Centre for IoT and Telecommunications at The University of Sydney, supported in part by The University of Sydney’s External Research Collaboration Seed Funding (Morse Micro), Deputy-Vice Chancellor (DVC) Research, in 2022. The reference to our paper:

@ARTICLE{gu2024graph,
author={Gu, Zhouyou and Vucetic, Branka and Chikkam, Kishore and Aliberti, Pasquale and Hardjawana, Wibowo},
journal={Early access in IEEE/ACM Transactions on Networking}, 
title={Graph Representation Learning for Contention and Interference Management in Wireless Networks}, 
year={2024},
volume={},
number={},
pages={1-16},
doi={10.1109/TNET.2024.3355935}}

Package Dependency

The following is a table of packages used in this project. Note that packages with different versions may not be compatible in this project. Please install the right version based on instructions on their corresponding websites.

*This project needs a modified version of NS-3 and ns3gym here. Please install their prerequisites according to their original websites.

(It is recommended to have a GPU for this project, but it can also run on CPU-only PCs.)

Packages Version
Ubuntu 20.04.1
Python 3.8.10
CMAKE 3.16.3
CVXPY (SCS backend) 1.14.1
PyTorch 1.12.0+cu116
PyTorch Geometric 2.1.0
nvidia-driver (CUDA) 520.61.05 (11.8)

Overall Code Structure

code

Installation

In your home directory, git clone this repository as (if you clone the repository in a different place, you may need to change the path configuration in this project)

git clone https://github.com/zhouyou-gu/ac-grl-wi-fi.git

Change the working directory to the cloned ac-grl-wi-fi folder.

cd ac-grl-wi-fi

Run the following to fetch the NS-3 codes for this project.

git submodule update --init --recursive

Change the working directory to controller

cd controller

(Optional) Now, you can have a test on whether the codes are correctly connected to the torch installation as

PYTHONPATH=./ python3 sim_script/cuda_test.py

(Optional) for example, on the computer that we used to generate the simulation results, the above command returns the versions of torch as

torch.version 1.12.0+cu116
torch.cuda.is_available() True
torch.cuda.current_device() 0
torch_geometric.__version__ 2.1.0

Next, configure and compile NS-3

PYTHONPATH=./ python3 sim_script/configure_ns3.py
PYTHONPATH=./ python3 sim_script/build_ns3.py

To install ns3gym in Python, change the directory back to the repository root and then to ns-3-dev/contrib/opengym, run

sudo pip3 install ./model/ns3gym    

Simulations

Set the working directory as controller.

Run the pre-training of the inference NN in AC-GRL as

PYTHONPATH=./ python3 sim_src/algorithms/test_model/test_infer.py

Run the main training process of AC-GRL as

PYTHONPATH=./ python3 sim_src/algorithms/test_model/test_itl_mmf_bidirection_interference.py

Alternatively, the trained NN in the paper can be evaluated (alone with other compared schemes) as

PYTHONPATH=./ python3 sim_src/algorithms/eval_model/do_run_test_parallel.py

The evaluation of the online fine-tuning architecture is

PYTHONPATH=./ python3 sim_src/algorithms/online_finetune/do_run_test_parallel.py

About

Codes for paper "Graph Representation Learning for Contention and Interference Management in Wireless Networks"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages