xffl

Cross-Facility Federated Learning

https://github.com/alpha-unito/xffl

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Cross-Facility Federated Learning

Basic Info
  • Host: GitHub
  • Owner: alpha-unito
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 15.4 MB
Statistics
  • Stars: 7
  • Watchers: 4
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

Cross-Facility Federated Learning (xFFL)

Cross-Facility Federated Learning (xFFL) is a federated learning (FL) framework based on the StreamFlow workflow management system (WMS) developed in the Parallel Computing [Alpha] research group at the University of Turin, Italy.

xFFL is designed to be a research-oriented software, enabling FL workloads deployment on geographically distributed computing infrastructures including, but not limited to, high-performance computers (HPCs).

We aim to democratize extensive ML workload development, allowing researchers and SMEs to be competitive with big tech companies by exploiting sparse computing power.

University of Turin logo

Get started

Setup

Clone this repository on the computing infrastructure that will act as the federation orchestrator: bash git clone --depth 1 --branch main https://github.com/alpha-unito/xffl.git Note that this machine should have internet access and be capable of reaching the federation clients through SSH.

Create and activate a Python virtual environment (both venv and conda are valid options): bash python3 -m venv xFFL source xFFL/bin/activate

Install xFFL and its requirements: bash cd xffl/ python3 -m pip install .

Configuration creation

Create an xFFL configuration file in a guided way through the xFFL CLI: bash xffl config --w [workdir] --p [project] Where workdir is the name of the working directory to create (defaults to the local directory), and project is the name of the created deployment. This process will produce a directory containing the necessary StreamFlow and xFFL configuration files and the chosen model.

System requirements

Python>=3.9
Singularity/Docker
NodeJS

Architecture

xFFL implements a centralized FL schema in which a central server coordinates, distributes, and aggregates the learning tasks deployed on the clients. Such a process is orchestrated by StreamFlow, which handles the data movement between the computing infrastructures and the deployment of workloads.

xFFL

Contributors

| Name | Email | Role | | :----------------------------------------------------------------- | :--------------------------- | :----------------------- | | Gianluca Mittone | gianluca.mittone@unito.it | Creator and maintainer | | Alberto Mulone | alberto.mulone@unito.it | Developer and maintainer |
| Iacopo Colonnelli | iacopo.colonnelli@unito.it | Investigator | | Robert Birke | robert.birke@unito.it | Investigator |
| Marco Aldinucci | marco.aldinucci@unito.it | Principal investigator |

Owner

  • Name: Parallel programming: Alpha group
  • Login: alpha-unito
  • Kind: organization
  • Location: Torino, IT

Parallel Computing research cluster, Department of Computer Science, University of Torino

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you want to cite xFFL, please refer to the article below."
authors:
  - family-names: "Mittone"
    given-names: "Gianluca"
    orcid: "https://orcid.org/0000-0002-1887-6911"
  - family-names: "Mulone"
    given-names: "Alberto"
    orcid: "https://orcid.org/0009-0009-2600-613X"
  - family-names: "Colonnelli"
    given-names: "Iacopo"
    orcid: "https://orcid.org/0000-0001-9290-2017"
title: "Cross-Facility Federated Learning"
version: 0.1
url: "https://github.com/alpha-unito/xffl"
preferred-citation:
  type: article
  authors:
    - family-names: "Colonnelli"
      given-names: "Iacopo"
      orcid: "https://orcid.org/0000-0001-9290-2017"
    - family-names: "Birke"
      given-names: "Robert"
      orcid: "https://orcid.org/0000-0003-1144-3707"
    - family-names: "Malenza"
      given-names: "Giulio"
      orcid: "https://orcid.org/0009-0006-4862-7429"
    - family-names: "Mittone"
      given-names: "Gianluca"
      orcid: "https://orcid.org/0000-0002-1887-6911"
    - family-names: "Mulone"
      given-names: "Alberto"
      orcid: "https://orcid.org/0009-0009-2600-613X"
    - family-names: "Galjaard"
      given-names: "Jeroen"
      orcid: "https://orcid.org/0000-0003-3681-7226"
    - family-names: "Chen"
      given-names: "Lydia Y."
      orcid: "https://orcid.org/0000-0002-4228-6735"
    - family-names: "Bassini"
      given-names: "Sanzio"
    - family-names: "Scipione"
      given-names: "Gabriella"
      orcid: "https://orcid.org/0000-0001-7202-9994"
    - family-names: "Martinovič"
      given-names: "Jan"
      orcid: "https://orcid.org/0000-0001-7944-8956"
    - family-names: "Vondrák"
      given-names: "Vit"
      orcid: "https://orcid.org/0000-0002-7940-6323"
    - family-names: "Aldinucci"
      given-names: "Marco"
      orcid: "https://orcid.org/0000-0001-8788-0829"
  doi: 10.1016/j.procs.2024.07.003
  issn: 1877-0509
  journal: "Procedia Computer Science"
  publisher:
    name: Elsevier
    city: Amsterdam
    country: NL
  start: 3
  end: 12
  title: "Cross-Facility Federated Learning"
  volume: 240
  year: 2024

GitHub Events

Total
  • Watch event: 10
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 162
  • Pull request review comment event: 11
  • Pull request review event: 18
  • Pull request event: 15
  • Fork event: 1
  • Create event: 7
Last Year
  • Watch event: 10
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 162
  • Pull request review comment event: 11
  • Pull request review event: 18
  • Pull request event: 15
  • Fork event: 1
  • Create event: 7

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 0
  • Total pull requests: 9
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Total issue authors: 0
  • Total pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.11
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 9
  • Average time to close issues: N/A
  • Average time to close pull requests: 9 days
  • Issue authors: 0
  • Pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.11
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • Giemp95 (4)
  • JohnClema (2)
  • LanderOtto (2)
  • GlassOfWhiskey (1)
Top Labels
Issue Labels
Pull Request Labels