CPU Utilization Forecasting with Federated Learning
This project studies the effectiveness of resolving the resource management (e.g., CPU) problem using the Federated Learning.
Install Dependencies
The only package you need in your operating system are Python3 and PIP3. The experiment was run on Python v3.9.6
and virtualenv==20.26.2
Getting Started
#### Starting a container
docker run --shm-size=4gb -it python:3.9 /bin/bash
### Install git and pop
apt -y update
apt -y install git
wget https://bootstrap.pypa.io/get-pip.py
### Install virtual Env
python3.9 get-pip.py
pip3.9 install virtualenv
### Retrieve the code from figshare
### Alternatively, the code can be retrieved from github
git clone https://github.com/fcrlab-unime/fl-cpu-utilization-prediction.git
cd fl-cpu-utilization-prediction
git checkout 04f17e7
### Start a virtual environment
python3.9 -m virtualenv -p python3 venv
source venv/bin/activate
### Install all Python3 dependencies
pip3.9 install -r requirements.txt
Datasets
The datasets are extracted from the AzurePublicDataset repository, a public collection of Microsoft Azure traces for the benefit of the research and academic community. Specifically, this repository uses the AzurePublicDatasetV2, which contains a representative subset of the first-party Azure Virtual Machine (VM) workload in one geographical region. Considering the dataset is very large with more than 2.5 million of VMs involved, we extracted a sample of 7 VMs.