MetisFL — первая открытая платформа федеративного обучения, реализованная на C++ и Python3.
Из-за некоторых несоответствий библиотек, возникших в разных операционных системах (например, Centos и MacOS), мы пришли к выводу, что нам следует создать образ докера и запустить весь проект в контейнере. Dockerfile(ы) содержат все необходимые шаги.
Предварительные требования к системе:
Чтобы скомпилировать и запустить проект через Docker, перейдите в родительский каталог проекта, а затем:
Запустите chmod +x ./configure.sh && ./configure.sh
чтобы настроить проект metis fl.
Примечание. Мы запускаем приведенную выше команду перед созданием образа Docker, чтобы настроить все зависимости проекта.
Создайте образ Docker для всего проекта.
docker build -t projectmetis_ubuntu_22_04 -f DockerfileUbuntu .
docker build -t projectmetis_dev -f DockerfileDev .
docker build -t projectmetis_rockylinux_8 -f DockerfileRockyLinux .
Приблизительный размер любого из следующих образов (с использованием Docker): ~9 ГБ (без CUDA), ~12 ГБ (с CUDA).Создайте образ Docker CUDA (применимо только к образам Ubuntu и 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
)Если файлы проекта не идентифицируются, вам необходимо синхронизировать Bazel. Для этого:
https://trello.com/b/bYLUYqGK/metis-v01