统一通信 X (UCX) 是一款屡获殊荣、经过生产验证的优化通信框架,适用于现代高带宽和低延迟网络。
UCX 公开了一组抽象通信原语,这些原语利用了最佳的可用硬件资源和卸载。其中包括 RDMA(InfiniBand 和 RoCE)、TCP、GPU、共享内存和网络原子操作。
请访问我们的文档网站了解更多详细信息。
请查看我们的“会员自愿共识标准”和“出口合规贡献提交”政策。
构建 UCX 通常是运行“configure”和“make”的组合。如果使用发布 tarball,请执行以下命令从树顶部的目录中安装 UCX 系统:
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make install
如果直接克隆 git 存储库,请使用:
$ ./autogen.sh
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make install
注意:运行配置时,编译对各种网络或其他特定硬件的支持可能需要额外的命令行标志。
$ ./autogen.sh
$ ./contrib/configure-devel --prefix= $PWD /install-debug
*** 注意:由于额外的调试代码,UCX 的开发人员版本通常会在运行时造成较大的性能损失。
$ contrib/buildrpm.sh -s -b
$ dpkg-buildpackage -us -uc
$ make docs
维基页面
维基页面
启动服务器:
$ ./src/tools/perf/ucx_perftest -c 0
连接客户端:
$ ./src/tools/perf/ucx_perftest < server-hostname > -t tag_lat -c 1
注意
-c
标志设置 CPU 关联性。如果在同一主机上运行这两个 > 命令,请确保将关联性设置为不同的 CPU 核心。
$ make -C test/gtest test
UCX 版本 1.8.0 有一个错误,当 TCP 传输与共享内存传输结合使用时,可能会导致数据损坏。建议升级至UCX 1.9.0及以上版本。 1.8.0之前发布的UCX版本没有这个bug。
由于 pthread_rwlock 函数中的已知错误,UCX 可能会因 glibc 版本 2.25-2.29 而挂起。当发生此类挂起时,UCX 线程之一会陷入 pthread_rwlock_rdlock(由 ucs_rcache_get 调用)中,即使没有其他线程持有该锁。 glibc Bug 23844 中报告了相关问题。如果出现此问题,建议使用操作系统发行版提供的 glibc 版本,或者使用低于 2.25 或高于 2.29 的版本从源构建 glibc。
由于在将 UCX 与 rdma-core v22 一起使用时存在兼容性缺陷,不支持设置 UCX_DC_MLX5_RX_INLINE=0,并且会使 DC 传输不可用。此问题已在 rdma-core v24 中修复并向后移植到 rdma-core-22.4-2.el7 rpm。有关更多详细信息,请参阅 ucx 问题 5749。
成分 | 角色 | 描述 |
---|---|---|
UCP | 协议 | 实现高级抽象,例如标签匹配、流、连接协商和建立、多轨以及处理不同的内存类型 |
UCT | 运输 | 实现低级通信原语,例如活动消息、远程内存访问和原子操作 |
统一计算系统 | 服务 | 常用数据结构、算法和系统实用程序的集合 |
UCM | 记忆 | 拦截内存分配和释放事件,由内存注册缓存使用 |
注意: UCX >= 1.12.0 需要 rdma-core >= 28.0 或 MLNX_OFED >= 5.0 才能支持 Infiniband 和 RoCE 传输。
UCX 被授权为:
为了向 UCX 做出贡献,请签署适当的贡献者协议。
所有贡献者必须遵守“会员自愿共识标准”和“出口合规贡献提交”政策。
提交贡献和更改时请遵循这些说明。
要在出版物中引用 UCX,请使用以下条目:
@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 }
}
参考 UCX 网站:
@misc { openucx-website ,
title = { {The Unified Communication X Library} } ,
key = { {{The Unified Communication X Library}},
howpublished = {{url{http://www.openucx.org}}}
}