{"ID":2859084,"CreatedAt":"2026-06-01T04:54:23.091178241Z","UpdatedAt":"2026-06-01T04:54:23.091178241Z","DeletedAt":null,"paper_url":"https://arxiv.org/abs/2510.05476","arxiv_id":"2510.05476","title":"cMPI: Using CXL Memory Sharing for MPI One-Sided and Two-Sided Inter-Node Communications","abstract":"Message Passing Interface (MPI) is a foundational programming model for high-performance computing. MPI libraries traditionally employ network interconnects (e.g., Ethernet and InfiniBand) and network protocols (e.g., TCP and RoCE) with complex software stacks for cross-node communication. We present cMPI, the first work to optimize MPI point-to-point communication (both one-sided and two-sided) using CXL memory sharing on a real CXL platform, transforming cross-node communication into memory transactions and data copies within CXL memory, bypassing traditional network protocols. We analyze performance across various interconnects and find that CXL memory sharing achieves 7.2x-8.1x lower latency than TCP-based interconnects deployed in small- and medium-scale clusters. We address challenges of CXL memory sharing for MPI communication, including data object management over the dax representation [50], cache coherence, and atomic operations. Overall, cMPI outperforms TCP over standard Ethernet NIC and high-end SmartNIC by up to 49x and 72x in latency and bandwidth, respectively, for small messages.","short_abstract":"Message Passing Interface (MPI) is a foundational programming model for high-performance computing. MPI libraries traditionally employ network interconnects (e.g., Ethernet and InfiniBand) and network protocols (e.g., TCP and RoCE) with complex software stacks for cross-node communication. We present cMPI, the first wo...","url_abs":"https://arxiv.org/abs/2510.05476","url_pdf":"https://arxiv.org/pdf/2510.05476v2","authors":"[\"Xi Wang\",\"Bin Ma\",\"Jongryool Kim\",\"Byungil Koh\",\"Hoshik Kim\",\"Dong Li\"]","published":"2025-10-07T00:32:45Z","proceeding":"cs.DC","tasks":"[\"cs.DC\",\"cs.AR\",\"cs.NI\"]","methods":"[]","has_code":false}
