Unified Communication X (UCX) is an award winning, optimized production proven-communication framework for modern, high-bandwidth and low-latency networks.
UCX exposes a set of abstract communication primitives that utilize the best of available hardware resources and offloads. These include RDMA (InfiniBand and RoCE), TCP, GPUs, shared memory, and network atomic operations.
Please visit our documentation site for more details.
Please review our "Membership Voluntary Consensus Standard" and "Export Compliant Contribution Submissions" policies.
- Using UCX
- Known issues
- Architecture
- Supported Transports
- Supported CPU Architectures
- Licenses
- Our Community
- Contributor Agreement and Guidelines
- Publications
Building UCX is typically a combination of running "configure" and "make". If using a release tarball execute the following commands to install the UCX system from within the directory at the top of the tree:
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make installIf directly cloning the git repository use:
$ ./autogen.sh
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make installNOTE: Compiling support for various networks or other specific hardware may require additional command line flags when running configure.
$ ./autogen.sh
$ ./contrib/configure-devel --prefix=$PWD/install-debug*** NOTE: Developer builds of UCX typically include a large performance penalty at run-time because of extra debugging code.
$ contrib/buildrpm.sh -s -b$ dpkg-buildpackage -us -uc$ make docsStart server:
$ ./src/tools/perf/ucx_perftest -c 0Connect client:
$ ./src/tools/perf/ucx_perftest <server-hostname> -t tag_lat -c 1NOTE the
-cflag sets CPU affinity. If running both >commands on same host, make sure you set the affinity to different CPU cores.
