whatisgithub

What is gloo?

fanshiqing/gloo — explained in plain English

Analysis updated 2026-07-18 · repo last pushed 2019-01-25

C++Audience · researcherComplexity · 5/5DormantSetup · hard

In one sentence

A communications library that lets many machines share data efficiently during distributed machine learning training, handling the syncing so engineers don't build it themselves.

Mindmap

mindmap
  root((repo))
    What it does
      Syncs data across machines
      Collective operations
      Barrier broadcast allreduce
    Tech stack
      C++
      TCP IP
      InfiniBand
    Use cases
      Distributed model training
      Multi GPU synchronization
      Cluster coordination
    Audience
      ML engineers
      Researchers
    Features
      GPUDirect support
      Redis or MPI discovery
      Battle tested at Meta

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Synchronize gradients across 100 GPUs spread over multiple machines during large model training.

USE CASE 2

Use allreduce to combine results from all machines and send the combined result back to everyone.

USE CASE 3

Move data directly GPU-to-GPU across machines using GPUDirect for faster training.

USE CASE 4

Embed Gloo's collective operations into a custom distributed training system.

What is it built with?

C++TCP/IPInfiniBandMPI

How does it compare?

fanshiqing/glooachanana/mavsdkalange/llama.cpp
Stars0
LanguageC++C++C++
Last pushed2019-01-252024-05-20
MaintenanceDormantDormant
Setup difficultyhardmoderatemoderate
Complexity5/54/54/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires a multi-machine cluster setup and coordination infrastructure like Redis or MPI, GPUDirect needs compatible NVIDIA hardware.

Copy-paste prompts

Prompt 1
Explain how Gloo's allreduce operation works and how I'd use it in a distributed training job.
Prompt 2
Help me set up Gloo with Redis for machine discovery in a multi-node training cluster.
Prompt 3
What's the difference between using TCP/IP versus InfiniBand with Gloo for collective operations?
Prompt 4
Show me how Gloo's GPUDirect feature avoids copying data to the CPU during GPU-to-GPU transfers.

Frequently asked questions

What is gloo?

A communications library that lets many machines share data efficiently during distributed machine learning training, handling the syncing so engineers don't build it themselves.

What language is gloo written in?

Mainly C++. The stack also includes C++, TCP/IP, InfiniBand.

Is gloo actively maintained?

Dormant — no commits in 2+ years (last push 2019-01-25).

How hard is gloo to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is gloo for?

Mainly researcher.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.