Skip to content
/ ucc Public
forked from yqin/ucc

Unified Communication Collectives Library

License

Notifications You must be signed in to change notification settings

Tonny-Gu/ucc

 
 

Repository files navigation

Unified Collective Communications (UCC)

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.

License

UCC is BSD-style licensed, as found in the LICENSE file.

Required packages

  • UCX

    • UCC uses utilities provided by UCX's UCS component
  • 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

Supported Transports

  • UCX/UCP
    • InfiniBand, ROCE, Cray Gemini and Aries, Shared Memory
  • NCCL

About

Unified Communication Collectives Library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 66.4%
  • C 28.2%
  • M4 2.8%
  • Cuda 1.0%
  • Makefile 0.8%
  • Shell 0.8%