Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Unified Communication X (mailing list -https://elist.ornl.gov/mailman/listinfo/ucx-group)

License

NotificationsYou must be signed in to change notification settings

openucx/ucx

Repository files navigation


follow on TwitterDocumentation Status

Unified Communication X

Unified Communication X (UCX) is anaward winning,optimized production proven-communication framework for modern, high-bandwidthand low-latency networks.

UCX exposes a set of abstract communication primitives that utilize the best ofavailable hardware resources and offloads. These include RDMA (InfiniBand and RoCE),TCP, GPUs, shared memory, and network atomic operations.

Please visit ourdocumentation sitefor more details.

Please review our"Membership Voluntary Consensus Standard" and"Export Compliant Contribution Submissions" policies.



Using UCX

Release Builds

Building UCX is typically a combination of running "configure" and "make".If using a release tarball execute the following commands to install theUCX system from within the directory at the top of the tree:

$ ./contrib/configure-release --prefix=/where/to/install$ make -j8$ make install

If directly cloning the git repository use:

$ ./autogen.sh$ ./contrib/configure-release --prefix=/where/to/install$ make -j8$ make install

NOTE: Compiling support for various networks or other specific hardware mayrequire additional command line flags when running configure.

Developer Builds

$ ./autogen.sh$ ./contrib/configure-devel --prefix=$PWD/install-debug

*** NOTE: Developer builds of UCX typically include a large performancepenalty at run-time because of extra debugging code.

Build RPM package

$ contrib/buildrpm.sh -s -b

Build DEB package

$ dpkg-buildpackage -us -uc

Build Doxygen documentation

$ make docs

OpenMPI and OpenSHMEM installation with UCX

Wiki page

MPICH installation with UCX

Wiki page

UCX Performance Test

Start server:

$ ./src/tools/perf/ucx_perftest -c 0

Connect client:

$ ./src/tools/perf/ucx_perftest<server-hostname> -t tag_lat -c 1

NOTE the-c flag sets CPU affinity. If running both >commands on same host, make sure you set the affinity to different CPU cores.

Running internal unit tests

$ make -C test/gtesttest

Known issues

  • UCX version 1.8.0 has a bug that may cause data corruption when TCP transportis used in conjunction with shared memory transport. It is advised to upgradeto UCX version 1.9.0 and above. UCX versions released before 1.8.0 don't havethis bug.

  • UCX may hang with glibc versions 2.25-2.29 due to known bugs in thepthread_rwlock functions. When such hangs occur, one of the UCX threads getsstuck in pthread_rwlock_rdlock (which is called by ucs_rcache_get), eventhough no other thread holds the lock. A related issue is reported inglibc Bug 23844.If this issue occurs, it is advised to use glibc version provided with yourOS distribution or build glibc from source using versions less than 2.25 orgreater than 2.29.

  • Due to compatibility flaw when using UCX with rdma-core v22 settingUCX_DC_MLX5_RX_INLINE=0 is unsupported and will make DC transport unavailable.This issue is fixed in rdma-core v24 and backported to rdma-core-22.4-2.el7 rpm.Seeucx issue 5749 for moredetails.


Architecture

ComponentRoleDescription
UCPProtocolImplements high-level abstractions such as tag-matching, streams, connection negotiation and establishment, multi-rail, and handling different memory types
UCTTransportImplements low-level communication primitives such as active messages, remote memory access, and atomic operations
UCSServicesA collection of data structures, algorithms, and system utilities for common use
UCMMemoryIntercepts memory allocation and release events, used by the memory registration cache

Supported Transports

NOTE: UCX >= 1.12.0 requires rdma-core >= 28.0 or MLNX_OFED >= 5.0 forInfiniband andRoCE transports support.


Supported CPU Architectures


Licenses

UCX is licensed as:


Our Community


Contributor Agreement and Guidelines

In order to contribute to UCX, please sign up with an appropriateContributor Agreement.

All contributors have to comply with"Membership VoluntaryConsensus Standard" and"Export CompliantContribution Submissions" policies.

Follow theseinstructionswhen submitting contributions and changes.

Publications

To reference UCX in a publication, please use the following entry:

@inproceedings{shamis2015ucx,title={UCX: an open source framework for HPC network APIs and beyond},author={Shamis, Pavel and Venkata, Manjunath Gorentla and Lopez, M Graham and Baker, Matthew B and Hernandez, Oscar and Itigin, Yossi and Dubman, Mike and Shainer, Gilad and Graham, Richard L and Liss, Liran and others},booktitle={2015 IEEE 23rd Annual Symposium on High-Performance Interconnects},pages={40--43},year={2015},organization={IEEE}}

To reference the UCX website:

@misc{openucx-website,title ={{The Unified Communication X Library}},key ={{{The Unified Communication X Library}},    howpublished = {{\url{http://www.openucx.org}}}}

[8]ページ先頭

©2009-2025 Movatter.jp