Unified Communication X (UCX) เป็นเฟรมเวิร์กการสื่อสารที่ได้รับการพิสูจน์แล้วสำหรับการผลิตที่ทันสมัย แบนด์วิธสูง และเวลาแฝงต่ำที่ได้รับรางวัล
UCX เปิดเผยชุดของการสื่อสารเชิงนามธรรมดั้งเดิมที่ใช้ทรัพยากรฮาร์ดแวร์และออฟโหลดที่ดีที่สุดที่มีอยู่ ซึ่งรวมถึง RDMA (InfiniBand และ RoCE), TCP, GPU, หน่วยความจำที่ใช้ร่วมกัน และการทำงานของเครือข่ายแบบอะตอมมิก
กรุณาเยี่ยมชมเว็บไซต์เอกสารของเราสำหรับรายละเอียดเพิ่มเติม
โปรดตรวจสอบนโยบาย "มาตรฐานฉันทามติสมัครใจของสมาชิก" และ "การส่งผลงานสนับสนุนที่สอดคล้องกับการส่งออก" ของเรา
โดยทั่วไปการสร้าง UCX จะเป็นการผสมผสานระหว่างการเรียกใช้ "กำหนดค่า" และ "สร้าง" หากใช้ tarball release ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งระบบ 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 ขึ้นไป เวอร์ชัน UCX ที่ออกก่อน 1.8.0 ไม่มีข้อบกพร่องนี้
UCX อาจค้างกับ glibc เวอร์ชัน 2.25-2.29 เนื่องจากข้อบกพร่องที่ทราบในฟังก์ชัน pthread_rwlock เมื่อการแฮงค์เกิดขึ้น เธรด UCX ตัวใดตัวหนึ่งจะติดอยู่ใน pthread_rwlock_rdlock (ซึ่งถูกเรียกโดย ucs_rcache_get) แม้ว่าจะไม่มีเธรดอื่นที่เก็บการล็อกไว้ก็ตาม มีการรายงานปัญหาที่เกี่ยวข้องใน glibc Bug 23844 หากปัญหานี้เกิดขึ้น ขอแนะนำให้ใช้เวอร์ชัน glibc ที่มาพร้อมกับระบบปฏิบัติการของคุณ หรือสร้าง glibc จากแหล่งที่มาโดยใช้เวอร์ชันน้อยกว่า 2.25 หรือมากกว่า 2.29
เนื่องจากข้อบกพร่องด้านความเข้ากันได้เมื่อใช้ UCX กับการตั้งค่า rdma-core v22 UCX_DC_MLX5_RX_INLINE=0 ไม่ได้รับการสนับสนุน และจะทำให้การขนส่ง DC ไม่พร้อมใช้งาน ปัญหานี้ได้รับการแก้ไขแล้วใน rdma-core v24 และ backported เป็น rdma-core-22.4-2.el7 rpm ดูปัญหา ucx 5749 สำหรับรายละเอียดเพิ่มเติม
ส่วนประกอบ | บทบาท | คำอธิบาย |
---|---|---|
ยูซีพี | โปรโตคอล | ใช้นามธรรมระดับสูง เช่น การจับคู่แท็ก สตรีม การเจรจาและการสร้างการเชื่อมต่อ แบบหลายราง และการจัดการหน่วยความจำประเภทต่างๆ |
มหาวิทยาลัยสงขลานครินทร์ | ขนส่ง | ใช้การสื่อสารขั้นพื้นฐานระดับต่ำ เช่น ข้อความที่ใช้งาน การเข้าถึงหน่วยความจำระยะไกล และการดำเนินการแบบอะตอมมิก |
ยูซีเอส | บริการ | คอลเลกชันของโครงสร้างข้อมูล อัลกอริธึม และยูทิลิตี้ระบบสำหรับการใช้งานทั่วไป |
ยูซีเอ็ม | หน่วยความจำ | ขัดขวางการจัดสรรหน่วยความจำและเหตุการณ์การเผยแพร่ ซึ่งใช้โดยแคชการลงทะเบียนหน่วยความจำ |
หมายเหตุ: 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}}}
}