This page reviews the source codes found, during my research works, of Fog/Edge management solutions published in the literature. It also reports some Fog-Edge Computing simulators/frameworks, often-used data traces, Fog/Edge topologies, IoT applications, and Fog/Edge Computing Projects.
This repo aims to:
Simplify access to references for users and facilitate the comparison of their proposals with the existing approaches.
Serve as a guideline for future research.
Help researchers learn and build Awesome Fog management strategies.
Do not hesitate to contribute to this page by providing source codes that I have not reported and thus enriching this repo. Any idea, you can create an issue or PR here.
I classify the identified source codes according to the addressed Fog-Edge Computing issue, i.e., Resource allocation, Service placement, and Computation Offloading; the type of the resolution approach; and the programming languages.
+ Mathematical Programming/Constraint Programming
+ Deep Reinforcement Learning
- [Python] Santos, J., Wauters, T., Volckaert, B., & De Turck, F. (2021). “Resource provisioning in fog computing through deep reinforcement learning.” [Source Code]
- [Python] Towers, M (2020). “Reinforcement learning agents for online flexible resource allocation in mobile Edge Computing”. [Source Code]
+ PSO (Particle Swarm Optimization)
+ Heuristics
- [Go] Agrawal, N., Rellermeyer, J., & Ding, A. Y. (2019). “IoT resource-aware orchestration framework for edge computing”. In Proceedings of the 15th International Conference on emerging Networking EXperiments and Technologies (pp. 62-64). [Source Code]
- [Java] Li, C., Zhuang, H., Wang, Q., & Zhou, X. (2018). “SSLB: Self-Similarity-Based Load Balancing for Large-Scale Fog Computing”. Arabian Journal for Science & Engineering (Springer Science & Business Media BV), 43(12). [Source Code]
- [Java] Vieira, J. C. R (2019). “Fog and Cloud Computing Optimization in Mobile IoT Environments”. [Source Code]
- [Java] Sharma, S., & Saini, H. (2019). “A novel four-tier architecture for delay aware scheduling and load balancing in fog environment”. Sustainable Computing: Informatics and Systems, 24, 100355. [Source Code]
+ Mathematical Programming/Constraint Programming
+ Reinforcement Learning / Deep Reinforcement Learning
- [Python] Tuli, S., Casale, G., & Jennings, N. R. (2021). “GOSH: Task Scheduling Using Deep Surrogate Models in Fog Computing Environments”. arXiv preprint arXiv:2112.08916. [Source code]
- [Java] Tuli, S., Ilager, S., Ramamohanarao, K., & Buyya, R. (2020). “Dynamic scheduling for stochastic edge-cloud computing environments using a3c learning and residual recurrent neural networks”. IEEE Transactions on Mobile Computing. [Source code]
+ Partition-based optimization
+ Genetic-based Algorithms
- [Python] Guerrero, C., Lera, I., & Juiz, C. (2019). “Evaluation and efficiency comparison of evolutionary algorithms for service placement optimization in fog architectures”. Future Generation Computer Systems, 97, 131-144. [Source code]
- [Matlab] Hoseiny, F., Azizi, S., Shojafar, M., Ahmadiazar, F., & Tafazolli, R. (2021, May). “PGA: a priority-aware genetic algorithm for task scheduling in heterogeneous fog-cloud computing”. In IEEE INFOCOM 2021-IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS) (pp. 1-6). IEEE. [Source Code]
- [Matlab] Hu, S., & Li, G. (2019). “Dynamic request scheduling optimization in mobile edge computing for IoT applications”. IEEE Internet of Things Journal, 7(2), 1426-1437. [Source Code]
+ Honey Bee Algorithm
+ Heuristics
- [Java] Sarkar, S., Chatterjee, S., & Misra, S. (2015). “Assessment of the Suitability of Fog Computing in the Context of Internet of Things”. IEEE Transactions on Cloud Computing, 6(1), 46-59. [Source code]
- [Java] Cardellini, V., Grassi, V., Lo Presti, F., & Nardelli, M. (2016, June). “Optimal operator placement for distributed stream processing applications”. In ACM International Conference on Distributed and Event-based Systems (pp. 69-80). [Source code]
- [Java] Guerrero, C., Lera, I., & Juiz, C. (2019). “A lightweight decentralized service placement policy for performance optimization in fog computing”. Journal of Ambient Intelligence and Humanized Computing, 10(6), 2435-2452. [Source Code]
- [Python] Brogi, A., Forti, S., Guerrero, C., & Lera, I. (2020, October). “Towards declarative decentralised application management in the fog”. In 2020 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW) (pp. 223-230). IEEE. [Source code]
- [Java] Yousefpour, A. et al. (2019). “FOGPLAN: A lightweight QoS-aware dynamic fog service provisioning framework”. IEEE Internet of Things Journal, 6(3), 5080-5096. [Source code]
- [Java] Naas, M. I., Parvedy, P. R., Boukhobza, J., & Lemarchand, L. (2017). “iFogStor: an IoT data placement strategy for fog infrastructure”. In IEEE ICFEC. pp. 97-104. [Source code]
- [Python] Avasalcai, C., Tsigkanos, C., & Dustdar, S. (2021). “Resource Management for Latency-Sensitive IoT Applications with Satisfiability”. IEEE Transactions on Services Computing. [Source Code]
- [Java] Abdullaha, M., Khana, S. A., Alenezib, M., Almustafab, K., & Iqbala, W. (2020). “Application Centric Virtual Machine Placements to Minimize Bandwidth Utilization in Datacenters”. Intell. Autom. Soft Comput., 26(1), 13-25. [Source code]
- [Matlab] Cong, R., Zhao, Z., Min, G., Feng, C., & Jiang, Y. (2021). “EdgeGO: A Mobile Resource-sharing Framework for 6G Edge Computing in Massive IoT Systems”. IEEE Internet of Things Journal. [Source code]
- [Matlab] Shu, C., Zhao, Z., Han, Y., Min, G., & Duan, H. (2019). “Multi-user offloading for edge computing networks: A dependency-aware and latency-optimal approach”. IEEE Internet of Things Journal, 7(3), 1678-1689. [Source code]
+ Reinforcement Learning
- [Python] Wu, D., Ullah, R., Harvey, P., Kilpatrick, P., Spence, I., & Varghese, B. (2021). “Fedadapt: Adaptive offloading for iot devices in federated learning”. arXiv preprint arXiv:2107.04271.[Source code]
- [Python] Wang, J., Hu, J., Min, G., Zomaya, A. Y., & Georgalas, N. (2020). “Fast adaptive task offloading in edge computing based on meta reinforcement learning”. IEEE Transactions on Parallel and Distributed Systems, 32(1), 242-253. Source code
+ Deep Reinforcement Learning
- [Python] Huang, L., Bi, S., & Zhang, Y. J. A. (2019). “Deep reinforcement learning for online computation offloading in wireless powered mobile-edge computing networks”. IEEE Transactions on Mobile Computing, 19(11), 2581-2593. [Source code]
- [Python] Wang, Yunpeng, et al. “Computation offloading optimization for UAV-assisted mobile edge computing: a deep deterministic policy gradient approach.” Wireless Networks 27.4 (2021): 2991-3006. [Source code]
- [Python] Bi, Suzhi, et al. “Lyapunov-guided deep reinforcement learning for stable online computation offloading in mobile-edge computing networks.” IEEE Transactions on Wireless Communications (2021). [Source code]
- [Python] Huang, L., Feng, X., Feng, A., Huang, Y., & Qian, L. P. (2018). “Distributed deep learning-based offloading for mobile edge computing networks”. Mobile networks and applications, 1-8. [Source Code]
- [Python] Huang, L., Bi, S., & Zhang, Y. J. A. (2019). “Deep reinforcement learning for online computation offloading in wireless powered mobile-edge computing networks”. IEEE Transactions on Mobile Computing, 19(11), 2581-2593. [Source Code]
- [Python] Tang, M., & Wong, V. W. (2020). “Deep reinforcement learning for task offloading in mobile edge computing systems”. IEEE Transactions on Mobile Computing. [Source Code]
- [Python] Wang, J., Hu, J., Min, G., Zhan, W., Zomaya, A., & Georgalas, N. (2021). “Dependent task offloading for edge computing based on deep reinforcement learning”. IEEE Transactions on Computers. [Source Code]
+ Fuzzy Logic
+ Heuristics
- [Matlab] Tran, T. X., & Pompili, D. (2018). “Joint task offloading and resource allocation for multi-server mobile-edge computing networks”. IEEE Transactions on Vehicular Technology, 68(1), 856-868. [Source Code]
- [Python] Yan, Jia, Suzhi Bi, and Ying-Jun Angela Zhang (2018). “Optimal offloading and resource allocation in mobile-edge computing with inter-user task dependency.” IEEE GLOBECOM. [Source Code]
- [Java] De Maio, V., & Brandic, I. (2018, May). “First hop mobile offloading of dag computations”. In 2018 18th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGRID) (pp. 83-92). IEEE. [Source code 1] [Source code 2]
- [Python] Mitsis, Giorgos, et al. “Intelligent dynamic data offloading in a competitive mobile edge computing market.” Future Internet 11.5 (2019): 118. [Source Code]
- [Python] Chen, Y. T., & Liao, W. (2019, May). “Mobility-aware service function chaining in 5G wireless networks with mobile edge computing”. In ICC. pp. 1-6. [Source code]
CloudSim
. [Java] Calheiros, R. N., Ranjan, R., Beloglazov, A., De Rose, C. A., & Buyya, R. (2011). “CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms”. Software: Practice and experience, 41(1), 23-50. [Source code]
iFogSim
. [Java] Gupta, H., Vahid Dastjerdi, A., Ghosh, S. K., & Buyya, R. (2017). “iFogSim: A toolkit for modeling and simulation of resource management techniques in the Internet of Things, Edge and Fog computing environments”. Software: Practice and Experience, 47(9), 1275-1296. [Source code]
Dynamic ifogsim
. [Python] Seo, D., Shahhosseini, S., Mehrabadi, M. A., Donyanavard, B., Lim, S. S., Rahmani, A. M., & Dutt, N. (2020). “Dynamic ifogsim: A framework for full-stack simulation of dynamic resource management in iot systems”. In COINS. pp. 1-6. [Source Code]
Edgecloudsim
. [Java] Sonmez, C., Ozgovde, A., & Ersoy, C. (2018). “Edgecloudsim: An environment for performance evaluation of edge computing systems”. Transactions on Emerging Telecommunications Technologies, 29(11), e3493. [Source code]
YAFS
. [Python] Lera, I., Guerrero, C., & Juiz, C. (2019). “YAFS: A simulator for IoT scenarios in fog computing”. IEEE Access, 7, 91745-91758. [Source code]
FogTorch
. [Java] Brogi, A., & Forti, S. (2017). “QoS-aware deployment of IoT applications through the fog”. IEEE Internet of Things Journal, 4(5), 1185-1192. [Source code]
FogTorchPI
. [Java] Brogi, A., Forti, S., & Ibrahim, A. (2019). “Predictive analysis to support fog application deployment”. Fog and edge computing: principles and paradigms, 191-222. [Source code]
MobFogSim
. [Java] Puliafito, C., Gonçalves, D. M., Lopes, M. M., Martins, L. L., Madeira, E., Mingozzi, E., … & Bittencourt, L. F. (2020). “MobFogSim: Simulation of mobility and migration for fog computing”. Simulation Modelling Practice and Theory, 101, 102062. [Source code]
Emufog
. [Kotlin] Mayer, R., Graser, L., Gupta, H., Saurez, E., & Ramachandran, U. (2017, October). “Emufog: Extensible and scalable emulation of large-scale fog computing infrastructures”. In IEEE FWC. pp. 1-6. [Source code]
VirtFogSim
. [Matlab] Scarpiniti, M., Baccarelli, E., & Momenzadeh, A. (2019). “VirtFogSim: A parallel toolbox for dynamic energy-delay performance testing and optimization of 5G mobile-fog-cloud virtualized platforms”. Applied Sciences, 9(6), 1160. [Source code]
FogNetSim++
. [OMNeT++] Qayyum, T., Malik, A. W., Khattak, M. A. K., Khalid, O., & Khan, S. U. (2018). “FogNetSim++: A toolkit for modeling and simulation of distributed fog environment”. IEEE Access, 6, 63570-63583. [Source code]
FogDirMime
. [Python] Forti, S., Ibrahim, A., & Brogi, A. (2019). “Mimicking FogDirector application management”. SICS Software-Intensive Cyber-Physical Systems, 34(2), 151-161. [Source Code]
FogDirSim
. [Python] Forti, S., Pagiaro, A., & Brogi, A. (2020). Simulating fogdirector application management. Simulation Modelling Practice and Theory, 101, 102021. [Source code]
LocPrivFogSim
. [Java] LocPrivFogSim: A simulator to analyze threats of computation offloading strategies to location privacy in fog computing with real-world trajectory data.
FogAtlas
. [Go] FogAtlas – A platform for operating Fog Computing infrastructures.
KubeEdge
. [Go] Kubernetes Native Edge Computing Framework.
Fogbed
. [Python] Fog emulation platform.
ENORM
. [Python] Wang, N., Varghese, B., Matthaiou, M., & Nikolopoulos, D. S. (2017). “ENORM: A framework for edge node resource management. IEEE transactions on services computing”. [Source code]
ECHO
. [Java] Ravindra, P., Khochare, A., Reddy, S. P., Sharma, S., Varshney, P., & Simmhan, Y. (2017). “ECHO: An Adaptive Orchestration Platform for Hybrid Dataflows across Cloud and Edge”. In International Conference on Service-Oriented Computing (pp. 395-410). [Source code]
FogFlow
. [Go] FogFlow: an IoT Edge Computing framework.EdgeSim
. [Java] EdgeSim: An open-source simulator of edge computing and cachingIoTSim-Edge
. [Java] Jha, D. N. et al. (2020). “IoTSim‐Edge: A simulation framework for modeling the behavior of Internet of Things and edge computing environments”. Software: Practice and Experience, 50(6), 844-867. [Source code]IoTSim-Osmosis
. [Java] Alwasel, K. et al. (2021). “IoTSim-Osmosis: A framework for modeling and simulating IoT applications over an edge-cloud continuum”. Journal of Systems Architecture, 116, 101956. [Source code]
PureEdgeSim
. [Java] Mechalikh, C., Taktak, H., & Moussa, F. (2019, July). PureEdgeSim: A simulation toolkit for performance evaluation of cloud, fog, and pure edge computing environments. In 2019 International Conference on High Performance Computing & Simulation (HPCS) (pp. 700-707). IEEE. [Source code]
Pfogsim
. [Java] Wang, Q. (2019). “Pfogsim: A simulator for evaluating dynamic and layered fog computing environments” [Source code]
LighMANO
. [Python] Riggio, R., Khan, S. N., Subramanya, T., Yahia, I. G. B., & Lopez, D. (2018, April). “LightMANO: Converging NFV and SDN at the Edges of the Network”. In NOMS 2018-2018 IEEE/IFIP Network Operations and Management Symposium (pp. 1-9). IEEE. [Source code]
SimpleIoTSimulator
. [Python] The InternetOfThings SimulatorSLEIPNIR
. [Java] SLEIPNIR is a DAG scheduling simulator focused on mobile cloud/edge/iot infrastructuresSTEP-ONE
. [Java] Mass, J., Srirama, S. N., & Chang, C. (2020). “STEP-ONE: simulated testbed for edge-fog processes based on the opportunistic network environment simulator”. Journal of Systems and Software, 166, 110587. [Source code]Veins
. [OMNeT++] Veins: The open source vehicular network simulation framework.
Amazon, Azure IoT Edge
. [NodeJS, C# or Java] Amazon, Azure IoT Edge
SniperSim
. [Python] Multi-core simulator.Gem5
. [C++] Gem5: Modular platform for computer-system architecture research, encompassing system-level architecture as well as processor microarchitecture.OMNeT++
. OMNeT++ Discrete Event Simulator