Code Monkey home page Code Monkey logo

mintedge's Introduction

MintEDGE

Python Linux GitHub GitHub repo size

What is MintEDGE?

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].

Orchestrator Operation and System Model

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.


Installation

MintEDGE has been tested using Python 3.11. We recommend this version.

  1. Clone the repository
git clone https://github.com/blasf1/MintEDGE.git
  1. Go to the downloaded directory and install the requirements
cd MintEDGE
pip install -r requirements.txt
  1. 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

Usage

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.


References

[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

mintedge's People

Contributors

blasf1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.