MetisFL – Das erste Open Federated Learning Framework, implementiert in C++ und Python3.
Aufgrund einiger Bibliotheksinkonsistenzen, die auf verschiedenen Betriebssystemen auftraten (z. B. Centos vs. MacOS), kamen wir zu dem Schluss, dass wir ein Docker-Image erstellen und das gesamte Projekt in einem Container ausführen sollten. Die Docker-Datei(en) enthalten alle erforderlichen Schritte.
Systemvoraussetzungen:
Um das Projekt über Docker zu kompilieren und auszuführen, navigieren Sie zum übergeordneten Verzeichnis des Projekts und gehen Sie dann wie folgt vor:
Führen Sie chmod +x ./configure.sh && ./configure.sh
aus, um das metis fl-Projekt zu konfigurieren.
Hinweis: Wir führen den obigen Befehl aus, bevor wir das Docker-Image erstellen, um alle Projektabhängigkeiten zu konfigurieren.
Erstellen Sie ein Docker-Image für das gesamte Projekt.
docker build -t projectmetis_ubuntu_22_04 -f DockerfileUbuntu .
docker build -t projectmetis_dev -f DockerfileDev .
docker build -t projectmetis_rockylinux_8 -f DockerfileRockyLinux .
Ungefähre Größe für eines der folgenden Bilder (mit Docker): ~9 GB (ohne CUDA), ~12 GB (mit CUDA)Erstellen Sie ein Docker-CUDA-Image (gilt nur für Ubuntu- und RockyLinux-Images).
cd docker_images/cuda/ubuntu/11.7 && docker build -t projectmetis_ubuntu_22_04_cuda -f Dockerfile .
cd docker_images/cuda/rockylinux/11.3 && docker build -t projectmetis_rockylinux_8_cuda -f Dockerfile .
nvidia-docker run --rm --gpus all projectmetis_ubuntu_22_04_cuda nvidia-smi
brew install googletest
)brew install protobuf
)Wenn Projektdateien nicht identifizierbar sind, müssen Sie Bazel synchronisieren. Gehen Sie dazu wie folgt vor:
https://trello.com/b/bYLUYqGK/metis-v01