A simulator for Large Energy-Aware Fog computing environments. LEAF enables energy consumption modeling of distributed, heterogeneous, and resource-constrained infrastructure that executes complex application graphs.
Features include:
- Power modeling: Model the power usage of individual compute nodes, network traffic and applications
- Energy-aware algorithms: Implement dynamically adapting task placement strategies, routing policies, and other energy-saving mechanisms
- Dynamic networks: Nodes can be mobile and can join or leave the network during the simulation
- Scalability: Simulate thousands of devices and applications in magnitudes faster than real time
- Exporting: Export power usage characteristics and other results as CSV files for further analysis
We created a new, lightweight implementation of LEAF in Python. Although the Python version is currently less performant, we hope the cleaner interface, improved usability, and bigger third party library support - especially for machine learning - will lead to a greater adoption of our model.
You can find the new implementation here and its documentation here.
The package org.leaf
contains the infrastructure and application model as well as related power models.
The current implementation is based on CloudSim Plus, a modern and fully documented simulation framework. Several features and improvements developed within LEAF were directly contributed to the CloudSim Plus core and released in version 6.
Infrastructure and application graphs are implemented through JGraphT.
The package org.examples.smart_city_traffic
implements an exemplary traffic management scenario in a smart city.
The example contains:
- multiple custom compute nodes, network links, and applications
- a mobility model for taxis modelled after a taxi traffic dataset from the
2015 DEBS Grand Challenge competition - two different application placement algorithms
- a live visualization to monitor experiments at runtime which contains
- a map of the city and the location of taxis
- the number of taxis on the map over time
- the power usage of infrastructure components over time
- the power usage of applications over time
Experiments can be configured via the Settings
class.
To improve simulation speed increase the LOG_LEVEL
and reduce the VISUALIZATION_REDRAW_INTERVAL
.
The directory analysis
contains the experiment analysis code written in Python.
For running the analysis yourself, install conda adapt settings.py
and run:
cd analysis
conda env create
conda activate leaf_analysis
python create_plots.py
- 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), IEEE, 2021. [arXiv preprint] [video]