How to Install and Set Up MetisFL: Your Guide to Open Federated Learning Frameworks

Dec 14, 2020 | Data Science

Are you ready to dive into the world of federated learning with MetisFL? Not only is it the first open federated learning framework implemented in C++ and Python 3, but it’s also recognized for its scalability, efficiency, and security. In this guide, we will walk you through the installation steps, whether you prefer using Docker or going for a standalone setup. Buckle up, and let’s get started!

System Prerequisites

  • Python 2.x
  • Docker

Installation Steps Using Docker

Docker simplifies dependencies by allowing you to run the entire project within a container. Here’s how you can set it up:

1. Configure the MetisFL Project

  • Navigate to the parent directory of the MetisFL project.
  • Run the command to configure the project:
    chmod +x .configure.sh && ./configure.sh
  • This step ensures all project dependencies are configured before building the Docker image.

2. Build the Docker Image

There are several Docker images you can create, depending on your requirements:

  • For the stable Ubuntu image:
    docker build -t projectmetis_ubuntu_22_04 -f DockerfileUbuntu .
  • For the Ubuntu Dev image (for development purposes):
    docker build -t projectmetis_dev -f DockerfileDev .
  • For an unstable RockyLinux image:
    docker build -t projectmetis_rockylinux_8 -f DockerfileRockyLinux .

Note: The approximate sizes for these images are ~9GB (without CUDA) and ~12GB (with CUDA).

3. Build the Docker CUDA Image (if applicable)

If you are using Ubuntu or RockyLinux and wish to include CUDA, follow these steps:

  • For Ubuntu + CUDA:
    cd docker_images/cuda/ubuntu11.7 && docker build -t projectmetis_ubuntu_22_04_cuda -f Dockerfile .
  • For RockyLinux + CUDA:
    cd docker_images/cuda/rockylinux11.3 && docker build -t projectmetis_rockylinux_8_cuda -f Dockerfile .

To verify the CUDA driver installation, run:

nvidia-docker run --rm --gpus all projectmetis_ubuntu_22_04_cuda nvidia-smi

Standalone (Docker-Free) Setup

If you prefer not to use Docker, here are the prerequisites:

  • Install GoogleTest (for MacOS, use: brew install googletest)
  • Install Protobuf (for MacOS, use: brew install protobuf)
  • Run the .configure script:
  • ./configure.sh

Using Bazel with CLion

If you find that project files are not identifiable, you’ll need to sync Bazel.

  • Select the Bazel tab and click on the Sync subtab.
  • Sync Project with BUILD Files.

Troubleshooting

If you encounter issues during the installation or setup, here are some helpful troubleshooting ideas:

  • Make sure your Docker installation is up to date.
  • Verify that all commands are executed in the correct directory.
  • Check for any dependency warnings during the configuration process.
  • Refer to the official documentation for any specific error messages: Documentation.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

With MetisFL, you can leverage the power of federated learning in a manageable and efficient way. Whether you choose Docker or a standalone setup, you’ll be well-equipped to navigate through its features and functionalities.

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox