MintEDGE is a flexible edge computing simulation framework that allows the configuration of various aspects of the infrastructure and enables researchers to test novel energy optimization strategies. MintEDGE offers the following features:
- SUMO [2] integration for realistic mobility scenarios.
- Agnostic w.r.t. Radio Access Network
- Define your own resource allocation strategy, focused on energy, QoS or both.
- Use real maps for more realistic scenarios.
- Ability to import real infrastructures. We provide data for the Netherlands [4] and Luxembourg [5].
- Import realistic mobility traces such as TAPASCologne [6] or VehiLux [7], or generate yours with SUMO or any other user mobility simulator.
- You can use MintEDGE to evaluate workload predictors as part of your resource allocation strategy. By default, we provide an ideal predictor.
- We use the realistic and lightweight energy model from LEAF's [3].
The operation of the orchestrator is based on the control of 2 matrixes and a vector:
- Status vector: The status vector indicates whether a Base Station (BS) hosts an edge server or not and whether the server is active.
- Assignation matrix: The assignation matrix represents where the requests received at each BS are attended, i.e., to which server are assigned. For instance, if a BS i receives 4 requests for service k, and then 2 of them are processed at server j and other 2 are processed at server m, then the value of the components i,k,j and i,k,m of the assignation matrix will be 0.5 each (half of the requests are processed in each destination server).
- Allocation matrix: Represents the share of CPU operations assigned to each service.
Tuning these three parameters, the orchestrator controls the operation of the edge infrastructure. MintEDGE makes it easy to find new energy efficient strategies that also take QoS into account.
MintEDGE has been tested using Python 3.11. We recommend this version.
- Clone the repository
git clone https://github.com/blasf1/MintEDGE.git
- Go to the downloaded directory and install the requirements
cd MintEDGE
pip install -r requirements.txt
- Install SUMO and its dependencies:
sudo apt-get install sumo sumo-tools sumo-doc
You can install it in your conda environment with the following command:
conda install -c blasf1 sumo
You can run the simulator with the following command:
python MintEDGE.py --simulation-time 3600 --seed 1 --output results.csv
You can adjust the simulation time, the seed and the output file in the command line. This facilitates launching multiple simulations simultaneously in distributed environments, e.g. a cluster with SLURM scheduler. Other settings can be adjusted in the settings.py file
Test your own efficient resource allocation or energy efficiency strategy by replacing the allocation_strategy.py file in the mintedge directory with your own.
[1] Blas Gómez, Suzan Bayhan, Estefanía Coronado, José Villalón, Antonio Garrido, "MintEDGE: Multi-tier sImulator for eNergy-aware sTrategies in Edge Computing", In Proc. of ACM MobiCom '23, October, 2023. Madrid, Spain. DOI: 10.1145/3570361.3615727. (to appear)
[2] SUMO - Simulation of Urban MObility, https://www.eclipse.org/sumo/. Accessed: 24/07/2023.
[3] Philipp Wiesner and Lauritz Thamsen. "LEAF: Simulating Large Energy-Aware Fog Computing Environments" In the Proceedings of the 2021 5th IEEE International Conference on Fog and Edge Computing (ICFEC). 2021 [arXiv preprint] [video]
[4] Antennekaart, https://antennekaart.nl. Accessed: 15/04/2023.
[5] Etablissements classés - Cadastre GSM. (2023). [Data set]. Administration de l’environnement. http://data.europa.eu/88u/dataset/etablissements-classes-cadastre-gsm
[6] TAPASCologne project. Accessed: 24/07/2023.
[7] Yoann Pigné, Grégoire Danoy, Pascal Bouvry. A Vehicular Mobility Model based on Real Traffic Counting Data. In Thomas Strang et al., editors, Nets4Cars/Nets4Trains 2011, Volume 6596, Series Lecture Notes in Computer Science, Pages 131-142. ISBN: 978-3-642-19785-7. Springer, 2011. VehiLux