UCX(Unified Communication X)는 수상 경력이 있으며 고대역폭, 저지연 네트워크를 위한 최적화된 프로덕션 검증 통신 프레임워크입니다.
UCX는 사용 가능한 최고의 하드웨어 리소스와 오프로드를 활용하는 일련의 추상 통신 기본 요소를 노출합니다. 여기에는 RDMA(InfiniBand 및 RoCE), TCP, GPU, 공유 메모리 및 네트워크 원자적 작업이 포함됩니다.
자세한 내용을 보려면 설명서 사이트를 방문하세요.
당사의 "회원 자발적 합의 표준" 및 "규정 준수 기부 제출물 수출" 정책을 검토하십시오.
UCX 구축은 일반적으로 "구성"과 "만들기" 실행의 조합입니다. 릴리스 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 버전에는 이 버그가 없습니다.
pthread_rwlock 함수의 알려진 버그로 인해 UCX가 glibc 버전 2.25-2.29에서 중단될 수 있습니다. 이러한 중단이 발생하면 잠금을 보유하는 다른 스레드가 없더라도 UCX 스레드 중 하나가 pthread_rwlock_rdlock(ucs_rcache_get에 의해 호출됨)에 걸리게 됩니다. 관련 문제는 glibc Bug 23844에 보고되어 있습니다. 이 문제가 발생하면 OS 배포와 함께 제공된 glibc 버전을 사용하거나 2.25 미만 또는 2.29보다 큰 버전을 사용하여 소스에서 glibc를 빌드하는 것이 좋습니다.
rdma-core v22 설정과 함께 UCX를 사용할 때 호환성 결함으로 인해 UCX_DC_MLX5_RX_INLINE=0은 지원되지 않으며 DC 전송을 사용할 수 없게 됩니다. 이 문제는 rdma-core v24에서 수정되었으며 rdma-core-22.4-2.el7 rpm으로 백포트되었습니다. 자세한 내용은 ucx 문제 5749를 참조하세요.
요소 | 역할 | 설명 |
---|---|---|
UCP | 규약 | 태그 일치, 스트림, 연결 협상 및 설정, 다중 레일, 다양한 메모리 유형 처리와 같은 높은 수준의 추상화를 구현합니다. |
UCT | 수송 | 활성 메시지, 원격 메모리 액세스 및 원자적 작업과 같은 낮은 수준의 통신 기본 요소를 구현합니다. |
UCS | 서비스 | 일반적으로 사용되는 데이터 구조, 알고리즘 및 시스템 유틸리티 모음 |
UCM | 메모리 | 메모리 등록 캐시에서 사용되는 메모리 할당 및 해제 이벤트를 가로챕니다. |
참고: UCX >= 1.12.0에는 Infiniband 및 RoCE 전송 지원을 위해 rdma-core >= 28.0 또는 MLNX_OFED >= 5.0이 필요합니다.
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}}}
}