Placement algorithms, simulation environment, and analysis tools for QoS-aware resource placement on LEO satellite constellations.
If you use this software in a publication, please cite it as:
T. Pfandzelter and D. Bermbach, QoS-Aware Resource Placement for LEO Satellite Edge Computing, 6th IEEE International Conference on Fog and Edge Computing (ICFEC 2022), Taormina, Italy, 2022
@inproceedings{pfandzelter_optimal:_2022,
title = "QoS-Aware Resource Placement for LEO Satellite Edge Computing",
booktitle = "6th IEEE International Conference on Fog and Edge Computing (ICFEC 2022)",
author = "Pfandzelter, Tobias and Bermbach, David",
year = 2022,
publisher = "IEEE",
}
A preprint is available on arXiv. For a full list of publications, please see our website.
The code in this repository is licensed under the terms of the MIT license.
All code in the simulation
folder is based on the SILLEO-SCNS project and licensed under the GNU General Public License Version 3.
This project requires Python 3.9 or later.
Install the required packages with pip install -r requirements.txt
, a virtual environment is recommended.
Alternatively, use the provided Dockerfile and run all subsequent commands inside the container:
docker build -t py .
docker run --rm -it -v "$(pwd)":/run py
cd /run
Please bear in mind that the code in this repository is not optimized for performance.
Memory, disk, and CPU usage can be high, especially for larger constellations and with increased simulation granularity.
The simulations in our paper were performed on an r6g.16xlarge
EC2 instance with a 200GB SSD in the AWS Frankfurt region.
Configure simulation parameters in config.py
.
This includes parameters for the shells as well as service level objectives (SLO).
The placement algorithm can be found in placement.py
.
To run the algorithm for the configured shells and SLOs, run python3 shells.py
.
The constellation simulation yields ISL distances for the configured shells.
Run python3 distances.py
to generate these distances.
Analyze results with python3 placement-distances.py
.
To summarize the results, run python3 summarize.py
.
Results are then available in results.csv
(depending on your configuration in config.py
).
To generate graphs for this information, run python3 graphs.py
.