MetisFL - A primeira estrutura de aprendizagem federada aberta implementada em C++ e Python3.
Devido a algumas inconsistências de biblioteca que apareceram nos sistemas operacionais (por exemplo, Centos vs MacOS), concluímos que deveríamos construir uma imagem docker e executar todo o projeto dentro de um contêiner. Os Dockerfile(s) contêm todas as etapas necessárias.
Pré-requisitos do sistema:
Para compilar e executar o projeto através do docker, navegue até o diretório pai do projeto e então:
Execute chmod +x ./configure.sh && ./configure.sh
para configurar o projeto metis fl.
Nota: executamos o comando acima antes de construir a imagem do docker para configurar todas as dependências do projeto.
Crie uma imagem docker para todo o projeto.
docker build -t projectmetis_ubuntu_22_04 -f DockerfileUbuntu .
docker build -t projectmetis_dev -f DockerfileDev .
docker build -t projectmetis_rockylinux_8 -f DockerfileRockyLinux .
Tamanho aproximado para qualquer uma das seguintes imagens (usando docker): ~9GB (sem CUDA), ~12GB (com CUDA)Construir imagem CUDA do docker (aplicável apenas a imagens Ubuntu e 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
)Se os arquivos do projeto não forem identificáveis, você precisará sincronizar o Bazel. Para fazer isso:
https://trello.com/b/bYLUYqGK/metis-v01