Skip to content

jladd-mlnx/ucc-1

 
 

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

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

About

Unified Communication Collectives Library

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 78.0%
  • C 17.2%
  • M4 3.5%
  • Other 1.3%