- Notifications
You must be signed in to change notification settings - Fork106
Unified Collective Communication Library
License
NotificationsYou must be signed in to change notification settings
openucx/ucc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 andlegal guidelines in thecontributing file.
All contributors have to comply with"Membership VoluntaryConsensus Standard" and"Export CompliantContribution Submissions" policies.
UCC is BSD-style licensed, as found in theLICENSE file.
- UCC uses utilities provided by UCX's UCS component
CUDA (optional)
- UCC supports CUDA collectives. To compile with CUDA support, installNVIDIA CUDA 11.0 or above.
HIP (optional)
- UCC supports AMD GPUs using HIP. Instructions for installing ROCM/HIP can be found atAMD ROCM.
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
$ git clone https://github.com/openucx/ucx$cd ucx$ ./autogen.sh; ./configure --prefix=<ucx-install-path>; make -j install
$ git clone https://github.com/openucx/ucc$cd ucc$ ./autogen.sh; ./configure --prefix=<ucc-install-path> --with-ucx=<ucx-install-path>; make -j install
$ 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
$ mpirun -np 2 --mca coll_ucc_enable 1 --mca coll_ucc_priority 100 ./my_mpi_app
$ mpirun -np 2 --mca scoll_ucc_enable 1 --mca scoll_ucc_priority 100 ./my_openshmem_app
- UCX/UCP
- InfiniBand, ROCE, Cray Gemini and Aries, Shared Memory
- SHARP
- CUDA
- NCCL
- RCCL
- MLX5
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}}
About
Unified Collective Communication Library
Topics
Resources
License
Stars
Watchers
Forks
Packages0
No packages published