Proyek ini menggunakan simulator YAFS (Yet Another Fog Simulator) untuk simulasi fog computing dengan algoritma service placement yang membandingkan pendekatan ILP (Integer Linear Programming) dan graph-partition (Partition) optimization.
- Python 3.9 (telah diuji dan direkomendasikan)
- Dependencies akan diinstall otomatis melalui pip
-
Clone repository
git clone https://github.com/hafidnrzs/yafs-fog-computing.git
-
Navigasi ke folder
cd yafs-fog-computing -
Install dependencies
pip install -e .
Sebelum menjalankan simulasi, Anda dapat mengkonfigurasi parameter eksperimen dengan mengedit file experiments/rev/experimentConfiguration.py.
Beberapa parameter penting yang dapat disesuaikan:
TOTALNUMBEROFAPPS: Jumlah aplikasi yang akan di-deployfunc_NETWORKGENERATION: Algoritma untuk generate topologi jaringanfunc_APPGENERATION: Algoritma untuk generate aplikasi random- Dan parameter lainnya untuk konfigurasi cloud, fog devices, dll.
Jalankan file berikut untuk membuat file-file konfigurasi yang dibutuhkan:
cd experiments/rev
python placementMain.pyScript ini akan menggenerate file-file berikut di folder data/:
networkDefinition.json- Topologi jaringan yang terbentukappDefinition.json- Definisi aplikasi yang akan di-deployusersDefinition.json- Definisi user/workload untuk populationallocDefinition.json- Hasil algoritma service placement (Graph Partition)allocDefinitionILP.json- Hasil algoritma service placement (ILP)
Setelah file konfigurasi berhasil dibuat, jalankan simulasi utama:
python main_nf.pySimulasi akan menjalankan dua algoritma:
- Graph Partition optimization - Menggunakan algoritma community detection
- ILP optimization - Menggunakan Integer Linear Programming
Hasil simulasi akan tersimpan dalam format CSV di folder results/:
results__1000000.csv- Hasil Graph Partition algorithmresults_ILP_1000000.csv- Hasil ILP algorithm- File-file link results untuk analisis network traffic
Project ini menggunakan GNU General Public License v3.0 untuk menjaga konsistensi dengan komponen-komponen yang diadaptasi dari proyek lain:
- YAFS Simulator: GitHub Repository
- Service Placement Algorithms: Diadaptasi dari FogServicePlacement-ILPvsCN yang menggunakan GNU General Public License v3.0
Jika Anda menggunakan project ini dalam penelitian, mohon cite:
- YAFS (Yet Another Fog Simulator)
- "Availability-aware Service Placement Policy in Fog Computing Based on Graph Partitions" research implementation