At ISC2015 Mellanox introduced a new open-source network communication framework – United Communication X Framework (UCX) – for high-performance and data-centric applications.
At the time Gilad Shainer of Mellanox said, “By providing our advancements in shared memory, MPI and underlying network transport technologies, we can continue to advance open standards-based networking and programming models. UCX will provide optimizations for lower software overhead in communication paths that will allow cross platform near native-level interconnect performance. The framework interface will expose semantics that target not only HPC programming models, but data-centric applications as well. It will also enable vendor independent development of the library.”
These are big goals. Promoting co-design methodology is at the heart of the effort. UCX alliance members hope the effort will not only provide a vehicle for production quality software, but also a low-level research infrastructure for more flexible and portable support for exascale-ready programming models. Other UCX founding members were present at the launch and included DOE’s Oak Ridge National Laboratory, NVIDIA, IBM, the University of Tennessee the group, and NVIDIA.
The UCX key UCX components include:
- UC-S for Services. Basic infrastructure for component based programming, memory management, and useful system utilities. Functionality: platform abstractions and data structures.
- UC-T for Transport. Low-level API that expose basic network operations supported by underlying hardware. Functionality: work request setup and instantiation of operations.
- UC-P for Protocols. High-level API uses UCT framework to construct protocols commonly found in applications Functionality: multi-rail, device selection, pending queue, rendezvous, tag-matching, software-atomics, etc.
Shainer insists UCX is the framework for future systems. At SC15 this week, he and Pavel Shamis (ORNL) will provide UCX update at a BOF on Tuesday. As a prelude, HPCwire asked Shainer to review the purpose of UCX and its early activities and progress. Here is that interview.
HPCwire: I was at the ISC introduction of UCX and several of the gathered attendees were impressed by the founding members by confused about the goals and the problem it was attacking. Perhaps it would be worthwhile to review how UCX originated and what it seeks to accomplish.
Shainer: Today there are multiple HPC libraries (MPI, SHMEM, PGAS languages) and emerging HPC programming models (libraries and languages) that face a substantial challenge because they require a re-implementation (or maintenance) of complex network codes within the code-bases.
This often leads to code duplication and long term maintenance issues. As a side effect these duplicated efforts frequently result in performance issues because developers don’t have the time, or the vendor-level expertise in some cases, required to optimize network. In addition, emerging hardware technologies are now focusing primarily on a limited range of HPC libraries or programming models (mostly MPI) due to time and resource constraints. At the end of the day, resources are desperately needed to optimize both software and hardware with emerging HPC programming models.
By providing a unified, standardized, performance-portable and hardware agnostic interface these issues are resolved. HPC libraries and programming models can now target a single API that enables optimal execution of the libraries on a broad variety of hardware architectures. At the same time, hardware vendors can focus on the development of a single layer, which enables functionality across multiple programming models.
Another important aspect of the challenge is the exascale programming environment has yet to be defined and it is a topic of ongoing HPC research. In order to address this challenge UCX was designed as a framework – a collection of building blocks that enables fast and flexible access to various utilities and communication directives. This approach provides fine grain flexibility that allows HPC researches to customize and adjust UCX for their unique and specific needs. This is exactly the part where the co-design component of the effort is critical. Through the UCX framework researchers can (and already do) influence hardware architecture through the offloading of some of the capabilities onto the hardware. Simultaneously researchers are able to learn about new features and capabilities of the hardware, enabling those for exascale programming models.
This is truly the kind of project where researchers and industry work together on co-design and transition from the bleeding edge of research to the production environment.
HPCwire: You’ve described ambitious goals. How do you practically make that happen? Who are the primary supporters UCX has and needs and what are the key technical hurdles confronting progress?
Shainer: UCX is truly open source and community driven effort. The base code of UCX was contributed by industry, academic and government labs, and today the organizations involved are Oak Ridge National laboratory, Mellanox, IBM, NVIDIA, Lawrence Livermore national laboratory, Argonne National laboratory, University of Tennessee, Houston University and Pathscale.
In terms of technical hurdles confronting progress, UCX is vastly different from other frameworks. The base of UCX required years of development from its members, and now the effort is being unified. Users, labs, academic institutes and commercial vendors are all working together to create synergies between the software and the hardware. The intention is to deliver the most advanced high-performance software framework that will be used on standard solutions, such as InfiniBand and Ethernet, as well on custom made products.
HPCwire: Does UCX effort to fit into OpenPOWER?
Shainer: No, UCX is not part of OpenPOWER. UCX supports any compute platform including Power, GPUs and x86. We believe many future systems, including the CORAL system (but not limited to CORAL), will use UCX as the software framework between the infrastructure and the applications.
HPCwire: What are some of the milestones you’ll look for to that indicate UCX is gaining traction in the HPC community?
Shainer: The number of contributors and developers on UCX continues to grow and we are seeing more and more organizations looking to incorporate UCX into their HPC platforms. UCX has already been integrated with upstream of Open MPI project and OpenSHMEM. Upcoming version of OpenMPI 2.0 will have full support for UCX. Also, the upcoming year will reveal more software solutions using HPC, including the highly popular MPICH MPI developed by researches from Argonne National Laboratories, as well as increased support for emerging exascale runtimes like ParSec developed by University of Knoxville, Tennessee. Clearly there is a need for a co-designed, open and eco-system driven framework out there, and UCX is filling this need.
HPCwire: The original announcement noted UCX will incorporate elements of MXM (Mellanox), UCCS (ORNL), and PAMI (IBM) technology. This seems like a powerful combination. How will this work be done and what are the strengths of each the UCX wishes to capture?
Shainer: Yes, this is a powerful combination. With UCX we consolidate decades of experience in development of HPC software by variety of industry and academy organization into an open source framework. It unites elements that were designed for the fastest networks, large infrastructures, accelerators, MPI, SHMEM/PGAS and UPC. We have successfully created synergies between the software and the hardware, and it is full open source. We’ll do several demonstrations at SC15, and will host a BoF session on Tuesday, November 17, 3:30PM – 5:00PM, Room 15. All are invited to join us there and learn more on UCX, its mission, the current development status and our future plans.