UCC is a collective communication operations API and library that is flexible, complete, and feature-rich for current and emerging programming models and runtimes.
- 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
Thanks for your interest in contributing to UCC, please see our technical and legal guidelines in the contributing file.
UCC is BSD-style licensed, as found in the LICENSE file.
-
- UCC uses utilities provided by UCX's UCS component
-
Doxygen
- UCC uses Doxygen for generating API documentation
$./autogen.sh
$./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>
$make
$./autogen.sh
$./configure --prefix=<ucc-install-path> --with-docs-only
$make docs
- UCX/UCP
- InfiniBand, ROCE, Cray Gemini and Aries, Shared Memory
- NCCL