MetisFL
The first open Federated Learning framework implemented in C++ and Python.
Install / Use
/learn @bioint/MetisFLREADME
<div align="center">
MetisFL: The Open Federated Learning Framework for Scalable, Efficient, and Secure Federated Learning Workflows
MetisFL - The First Open Federated Learning Framework implemented in C++ and Python3.
<!-- [](https://docs.metisfl.ai) [](https://blog.metisfl.ai) [](https://join.slack.com/t/metisfl/shared_invite/zt-233d3rg4x-9HNnRloTkyEh8_XPch9mfQ) --> </div> Project Installation Steps - Docker
Due to some library inconsistencies that appeared across operating systems (e.g., Centos vs MacOS) we concluded that we should build a docker image and run the entire project within a container. The Dockerfile(s) contain all required steps.
System prerequisites:
- python
- docker
To compile and run the project through docker, navigate to the parent directory of the project and then:
-
Run
chmod +x ./configure.sh && ./configure.shto configure metis fl project.Note: we run the above command before building the docker image because to configure all project dependencies.
-
Build docker image for the entire project.
- Ubuntu image (stable, preferable):
docker build -t projectmetis_ubuntu_22_04 -f DockerfileUbuntu . - Ubuntu Dev image (development purposes):
docker build -t projectmetis_dev -f DockerfileDev . - RockyLinux image (not stable):
docker build -t projectmetis_rockylinux_8 -f DockerfileRockyLinux .Approximate size for any of the following images (using docker): ~9GB (without CUDA), ~12GB (with CUDA)
- Ubuntu image (stable, preferable):
-
Build docker CUDA image (only applicable to Ubuntu and RockyLinux images).
- Ubuntu + CUDA
cd docker_images/cuda/ubuntu/11.7 && docker build -t projectmetis_ubuntu_22_04_cuda -f Dockerfile . - RockyLinux + CUDA
cd docker_images/cuda/rockylinux/11.3 && docker build -t projectmetis_rockylinux_8_cuda -f Dockerfile . - Verify docker cuda driver installation as:
nvidia-docker run --rm --gpus all projectmetis_ubuntu_22_04_cuda nvidia-smi
- Ubuntu + CUDA
Standalone (Docker-Free) Prerequisites
- Install googletest (MacOS as
brew install googletest) - Install protobuf (MacOS as
brew install protobuf) - Run ./configure script
Bazel CLion comments
If project files are not identifiable then you need to sync Bazel. To do so:
- select the Bazel tab above
- select the Sync subtab
- and then Sync Project with BUILD Files
Trello UI
https://trello.com/b/bYLUYqGK/metis-v01
Related Skills
feishu-drive
341.6k|
things-mac
341.6kManage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database)
clawhub
341.6kUse the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com
postkit
PostgreSQL-native identity, configuration, metering, and job queues. SQL functions that work with any language or driver
