Skip to content

Commit 78552e8

Browse files
committed
README: Update information about UCX
Signed-off-by: Jeff Squyres <jsquyres@cisco.com>
1 parent 65eb118 commit 78552e8

File tree

1 file changed

+40
-3
lines changed

1 file changed

+40
-3
lines changed

README

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -706,6 +706,32 @@ Network Support
706706
mechanisms for Open MPI to utilize single-copy semantics for shared
707707
memory.
708708

709+
- In prior versions of Open MPI, InfiniBand and RoCE support was
710+
provided through the openib BTL and ob1 PML plugins. Starting with
711+
Open MPI 4.0.0, InfiniBand support through the openib+ob1 plugins is
712+
both deprecated and superseded by the UCX PML component.
713+
714+
UCX is an open-source optimized communication library which supports
715+
multiple networks, including RoCE, InfiniBand, uGNI, TCP, shared
716+
memory, and others.
717+
718+
While the openib BTL depended on libibverbs, the UCX PML depends on
719+
the UCX library. The UCX library can be downloaded from
720+
http://www.openucx.org/ or from various Linux distribution
721+
repositories (e.g., Fedora/RedHat yum repositories). The UCX
722+
library is also part of Mellanox OFED and Mellanox HPC-X binary
723+
distributions.
724+
725+
Once installed, Open MPI can be built with UCX support by adding
726+
--with-ucx to the Open MPI configure command. Once Open MPI is
727+
configured to use UCX, the runtime will automatically select the UCX
728+
PML if one of the supported networks is detected (e.g., InfiniBand).
729+
It's possible to force using UCX in the mpirun or oshrun command
730+
lines by specifying any or all of the following mca parameters:
731+
"-mca pml ucx" for MPI point-to-point operations, "-mca spml ucx"
732+
for OpenSHMEM support, and "-mca osc ucx" for MPI RMA (one-sided)
733+
operations.
734+
709735
Open MPI Extensions
710736
-------------------
711737

@@ -1018,6 +1044,19 @@ NETWORKING SUPPORT / OPTIONS
10181044
covers most cases. This option is only needed for special
10191045
configurations.
10201046

1047+
--with-ucx=<directory>
1048+
Specify the directory where the UCX libraries and header files are
1049+
located. This option is generally only necessary if the UCX headers
1050+
and libraries are not in default compiler/linker search paths.
1051+
1052+
--with-ucx-libdir=<directory>
1053+
Look in directory for the UCX libraries. By default, Open MPI will
1054+
look in <ucx_directory>/lib and <ucx_ directory>/lib64, which covers
1055+
most cases. This option is only needed for special configurations.
1056+
1057+
--with-usnic
1058+
Abort configure if Cisco usNIC support cannot be built.
1059+
10211060
--with-verbs=<directory>
10221061
Specify the directory where the verbs (also known as OpenFabrics
10231062
verbs, or Linux verbs, and previously known as OpenIB) libraries and
@@ -1063,8 +1102,6 @@ NETWORKING SUPPORT / OPTIONS
10631102
package, configure will safely abort with a helpful message telling
10641103
you that you should not use --with-verbs-usnic.
10651104

1066-
--with-usnic
1067-
Abort configure if Cisco usNIC support cannot be built.
10681105

10691106
RUN-TIME SYSTEM SUPPORT
10701107

@@ -2032,7 +2069,7 @@ timer - High-resolution timers
20322069
Each framework typically has one or more components that are used at
20332070
run-time. For example, the btl framework is used by the MPI layer to
20342071
send bytes across different types underlying networks. The tcp btl,
2035-
for example, sends messages across TCP-based networks; the openib btl
2072+
for example, sends messages across TCP-based networks; the UCX PML
20362073
sends messages across OpenFabrics-based networks.
20372074

20382075
Each component typically has some tunable parameters that can be

0 commit comments

Comments
 (0)