MetisFL: el primer marco de aprendizaje federado abierto implementado en C++ y Python3.
Debido a algunas inconsistencias de bibliotecas que aparecieron en todos los sistemas operativos (por ejemplo, Centos vs MacOS), llegamos a la conclusión de que deberíamos crear una imagen de Docker y ejecutar todo el proyecto dentro de un contenedor. Los Dockerfile(s) contienen todos los pasos necesarios.
Requisitos previos del sistema:
Para compilar y ejecutar el proyecto a través de la ventana acoplable, navegue hasta el directorio principal del proyecto y luego:
Ejecute chmod +x ./configure.sh && ./configure.sh
para configurar el proyecto metis fl.
Nota: ejecutamos el comando anterior antes de crear la imagen de la ventana acoplable para configurar todas las dependencias del proyecto.
Cree una imagen acoplable para todo el proyecto.
docker build -t projectmetis_ubuntu_22_04 -f DockerfileUbuntu .
docker build -t projectmetis_dev -f DockerfileDev .
docker build -t projectmetis_rockylinux_8 -f DockerfileRockyLinux .
Tamaño aproximado para cualquiera de las siguientes imágenes (usando la ventana acoplable): ~9 GB (sin CUDA), ~12 GB (con CUDA)Cree una imagen CUDA de Docker (solo aplicable a imágenes de Ubuntu y RockyLinux).
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
)Si los archivos del proyecto no son identificables, entonces deberá sincronizar Bazel. Para hacerlo:
https://trello.com/b/bYLUYqGK/metis-v01