Ucc
Unified Collective Communication Library
Install / Use
/learn @openucx/UccREADME
Unified Collective Communication (UCC)
<img src="docs/images/ucc_logo.png" width="75%" height="75%">UCC is a collective communication operations API and library that is flexible, complete, and feature-rich for current and emerging programming models and runtimes.
Design Goals
- Highly scalable and performant collectives for HPC, AI/ML and I/O workloads
- Nonblocking collective operations that cover a variety of programming models
- Flexible resource allocation model
- Support for relaxed ordering model
- Flexible synchronous model
- Repetitive collective operations (init once and invoke multiple times)
- Hardware collectives are a first-class citizen
UCC Component Architecture

Contributing
Thanks for your interest in contributing to UCC, please see our technical and legal guidelines in the contributing file.
All contributors have to comply with "Membership Voluntary Consensus Standard" and "Export Compliant Contribution Submissions" policies.
License
UCC is BSD-style licensed, as found in the LICENSE file.
Required packages
-
- UCC uses utilities provided by UCX's UCS component
-
CUDA (optional)
- UCC supports CUDA collectives. To compile with CUDA support, install NVIDIA CUDA 11.0 or above.
-
HIP (optional)
- UCC supports AMD GPUs using HIP. Instructions for installing ROCM/HIP can be found at AMD ROCM.
-
Doxygen
- UCC uses Doxygen for generating API documentation
Compiling and Installing
Developer's Build
$ ./autogen.sh
$ ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>
$ make
Build Documentation
$ ./autogen.sh
$ ./configure --prefix=<ucc-install-path> --with-docs-only
$ make docs
Open MPI and UCC collectives
Compile UCX
$ git clone https://github.com/openucx/ucx
$ cd ucx
$ ./autogen.sh; ./configure --prefix=<ucx-install-path>; make -j install
Compile UCC
$ git clone https://github.com/openucx/ucc
$ cd ucc
$ ./autogen.sh; ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>; make -j install
Compile Open MPI
$ git clone https://github.com/open-mpi/ompi
$ cd ompi
$ ./autogen.pl; ./configure --prefix=<ompi-install-path> --with-ucx=<ucx-install-path> --with-ucc=<ucc-install-path>; make -j install
Run MPI programs
$ mpirun -np 2 --mca coll_ucc_enable 1 --mca coll_ucc_priority 100 ./my_mpi_app
Run OpenSHMEM programs
$ mpirun -np 2 --mca scoll_ucc_enable 1 --mca scoll_ucc_priority 100 ./my_openshmem_app
SUPPORTED Transports
- UCX/UCP
- InfiniBand, ROCE, Cray Gemini and Aries, Shared Memory
- SHARP
- CUDA
- NCCL
- RCCL
- MLX5
Publication
To cite UCC in a publication, please use the following BibTex entry:
@inproceedings{DBLP:conf/hoti/VenkataPLBALBDS24,
author = {Manjunath Gorentla Venkata and
Valentine Petrov and
Sergey Lebedev and
Devendar Bureddy and
Ferrol Aderholdt and
Joshua Ladd and
Gil Bloch and
Mike Dubman and
Gilad Shainer},
title = {Unified Collective Communication {(UCC):} An Unified Library for CPU,
GPU, and {DPU} Collectives},
booktitle = {{IEEE} Symposium on High-Performance Interconnects, {HOTI} 2024, Albuquerque,
NM, USA, August 21-23, 2024},
pages = {37--46},
publisher = {{IEEE}},
year = {2024},
url = {https://doi.org/10.1109/HOTI63208.2024.00018},
doi = {10.1109/HOTI63208.2024.00018},
timestamp = {Thu, 19 Sep 2024 11:00:54 +0200},
biburl = {https://dblp.org/rec/conf/hoti/VenkataPLBALBDS24.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
Related Skills
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
isf-agent
a repo for an agent that helps researchers apply for isf funding
last30days-skill
17.2kAI agent skill that researches any topic across Reddit, X, YouTube, HN, Polymarket, and the web - then synthesizes a grounded summary
