Unified Communication X (UCX) adalah kerangka komunikasi produksi yang telah dioptimalkan dan telah memenangkan penghargaan untuk jaringan modern, bandwidth tinggi, dan latensi rendah.
UCX memperlihatkan serangkaian primitif komunikasi abstrak yang memanfaatkan sumber daya dan beban perangkat keras terbaik yang tersedia. Ini termasuk RDMA (InfiniBand dan RoCE), TCP, GPU, memori bersama, dan operasi atom jaringan.
Silakan kunjungi situs dokumentasi kami untuk lebih jelasnya.
Harap tinjau kebijakan "Standar Konsensus Sukarela Keanggotaan" dan "Pengajuan Kontribusi yang Sesuai Ekspor".
Membangun UCX biasanya merupakan kombinasi dari menjalankan "configure" dan "make". Jika menggunakan tarball rilis, jalankan perintah berikut untuk menginstal sistem UCX dari dalam direktori di bagian atas pohon:
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make install
Jika langsung mengkloning repositori git gunakan:
$ ./autogen.sh
$ ./contrib/configure-release --prefix=/where/to/install
$ make -j8
$ make install
CATATAN: Dukungan kompilasi untuk berbagai jaringan atau perangkat keras spesifik lainnya mungkin memerlukan tanda baris perintah tambahan saat menjalankan konfigurasi.
$ ./autogen.sh
$ ./contrib/configure-devel --prefix= $PWD /install-debug
*** CATATAN: Versi pengembang UCX biasanya menyertakan penalti kinerja yang besar saat run-time karena kode debug tambahan.
$ contrib/buildrpm.sh -s -b
$ dpkg-buildpackage -us -uc
$ make docs
halaman Wiki
halaman Wiki
Mulai server:
$ ./src/tools/perf/ucx_perftest -c 0
Hubungkan klien:
$ ./src/tools/perf/ucx_perftest < server-hostname > -t tag_lat -c 1
CATATAN flag
-c
mengatur afinitas CPU. Jika menjalankan kedua perintah > pada host yang sama, pastikan Anda mengatur afinitas ke inti CPU yang berbeda.
$ make -C test/gtest test
UCX versi 1.8.0 memiliki bug yang dapat menyebabkan kerusakan data ketika transport TCP digunakan bersama dengan transport memori bersama. Disarankan untuk mengupgrade ke UCX versi 1.9.0 ke atas. Versi UCX yang dirilis sebelum 1.8.0 tidak memiliki bug ini.
UCX mungkin hang dengan glibc versi 2.25-2.29 karena bug yang diketahui pada fungsi pthread_rwlock. Ketika hang seperti itu terjadi, salah satu thread UCX tersangkut di pthread_rwlock_rdlock (yang disebut dengan ucs_rcache_get), meskipun tidak ada thread lain yang memegang kunci tersebut. Masalah terkait dilaporkan di Bug glibc 23844. Jika masalah ini terjadi, disarankan untuk menggunakan versi glibc yang disertakan dengan distribusi OS Anda atau buat glibc dari sumber menggunakan versi kurang dari 2.25 atau lebih tinggi dari 2.29.
Karena kelemahan kompatibilitas saat menggunakan UCX dengan pengaturan rdma-core v22 UCX_DC_MLX5_RX_INLINE=0 tidak didukung dan akan membuat transport DC tidak tersedia. Masalah ini diperbaiki di rdma-core v24 dan di-backport ke rdma-core-22.4-2.el7 rpm. Lihat ucx edisi 5749 untuk lebih jelasnya.
Komponen | Peran | Keterangan |
---|---|---|
UCP | Protokol | Mengimplementasikan abstraksi tingkat tinggi seperti pencocokan tag, aliran, negosiasi dan pembuatan koneksi, multi-rel, dan menangani berbagai jenis memori |
UCT | Mengangkut | Menerapkan primitif komunikasi tingkat rendah seperti pesan aktif, akses memori jarak jauh, dan operasi atom |
UCS | Layanan | Kumpulan struktur data, algoritme, dan utilitas sistem untuk penggunaan umum |
UCM | Ingatan | Mencegat alokasi memori dan melepaskan peristiwa, yang digunakan oleh cache registrasi memori |
CATATAN: UCX >= 1.12.0 memerlukan rdma-core >= 28.0 atau MLNX_OFED >= 5.0 untuk dukungan transport Infiniband dan RoCE.
UCX dilisensikan sebagai:
Untuk berkontribusi pada UCX, silakan mendaftar dengan Perjanjian Kontributor yang sesuai.
Semua kontributor harus mematuhi kebijakan "Standar Konsensus Sukarela Keanggotaan" dan "Pengajuan Kontribusi yang Sesuai Ekspor".
Ikuti petunjuk ini saat mengirimkan kontribusi dan perubahan.
Untuk mereferensikan UCX dalam sebuah publikasi, silakan gunakan entri berikut:
@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 }
}
Untuk referensi situs web UCX:
@misc { openucx-website ,
title = { {The Unified Communication X Library} } ,
key = { {{The Unified Communication X Library}},
howpublished = {{url{http://www.openucx.org}}}
}