Skip to content

Commit 35ceedf

Browse files
committed
btl: add a new btl for the UCT layer in OpenUCX
This commit adds a new btl for one-sided and two-sided. This btl uses the uct layer in OpenUCX. This btl makes use of multiple uct contexts and per-thread device pinning to provide good performance when using threads and osc/rdma. This btl has been tested extensively with osc/rdma and passes all MTT tests on aries and IB hardware. For now this new component disables itself but can be enabled by setting the btl_ucx_transports MCA variable with a comma-delimited list of supported memory domains/transport layers. For example: --mca btl_uct_memory_domains ib/mlx5_0. The specific transports used can be selected using --mca btl_uct_transports. The default is to use any available transport. Signed-off-by: Nathan Hjelm <[email protected]>
1 parent e59f58a commit 35ceedf

19 files changed

+3946
-0
lines changed

config/ompi_check_ucx.m4

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,15 @@ AC_DEFUN([OMPI_CHECK_UCX],[
5151
[],
5252
[ompi_check_ucx_happy="yes"],
5353
[ompi_check_ucx_happy="no"])
54+
OPAL_CHECK_PACKAGE([ompi_check_ucx],
55+
[uct/api/uct.h],
56+
[uct],
57+
[uct_md_query],
58+
[],
59+
[],
60+
[],
61+
[ompi_check_ucx_happy="yes"],
62+
[ompi_check_ucx_happy="no"])
5463
AS_IF([test "$ompi_check_ucx_happy" = yes],
5564
[AC_MSG_CHECKING(for UCX version compatibility)
5665
AC_REQUIRE_CPP
@@ -83,6 +92,18 @@ AC_DEFUN([OMPI_CHECK_UCX],[
8392
[$ompi_check_ucx_libdir],
8493
[ompi_check_ucx_happy="yes"],
8594
[ompi_check_ucx_happy="no"])
95+
96+
97+
OPAL_CHECK_PACKAGE([ompi_check_ucx],
98+
[uct/api/uct.h],
99+
[uct],
100+
[uct_md_query],
101+
[],
102+
[$ompi_check_ucx_dir],
103+
[$ompi_check_ucx_libdir],
104+
[ompi_check_ucx_happy="yes"],
105+
[ompi_check_ucx_happy="no"])
106+
86107
CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS"
87108
LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS"
88109
LIBS="$ompi_check_ucx_$1_save_LIBS"

opal/mca/btl/uct/Makefile.am

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
#
2+
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3+
# University Research and Technology
4+
# Corporation. All rights reserved.
5+
# Copyright (c) 2004-2005 The University of Tennessee and The University
6+
# of Tennessee Research Foundation. All rights
7+
# reserved.
8+
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9+
# University of Stuttgart. All rights reserved.
10+
# Copyright (c) 2004-2005 The Regents of the University of California.
11+
# All rights reserved.
12+
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
13+
# Copyright (c) 2017 IBM Corporation. All rights reserved.
14+
# Copyright (c) 2017-2018 Los Alamos National Security, LLC. All rights
15+
# reserved.
16+
# $COPYRIGHT$
17+
#
18+
# Additional copyrights may follow
19+
#
20+
# $HEADER$
21+
#
22+
23+
AM_CPPFLAGS = $(btl_uct_CPPFLAGS)
24+
25+
amca_paramdir = $(AMCA_PARAM_SETS_DIR)
26+
27+
sources = \
28+
btl_uct.h \
29+
btl_uct_module.c \
30+
btl_uct_component.c \
31+
btl_uct_rdma.h \
32+
btl_uct_rdma.c \
33+
btl_uct_endpoint.h \
34+
btl_uct_endpoint.c \
35+
btl_uct_amo.c \
36+
btl_uct_am.h \
37+
btl_uct_am.c \
38+
btl_uct_frag.h \
39+
btl_uct_frag.c \
40+
btl_uct_tl.c \
41+
btl_uct_types.h \
42+
btl_uct_device_context.h
43+
44+
# Make the output library in this directory, and name it either
45+
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
46+
# (for static builds).
47+
48+
if MCA_BUILD_opal_btl_uct_DSO
49+
lib =
50+
lib_sources =
51+
component = mca_btl_uct.la
52+
component_sources = $(sources)
53+
else
54+
lib = libmca_btl_uct.la
55+
lib_sources = $(sources)
56+
component =
57+
component_sources =
58+
endif
59+
60+
mcacomponentdir = $(opallibdir)
61+
mcacomponent_LTLIBRARIES = $(component)
62+
mca_btl_uct_la_SOURCES = $(component_sources)
63+
mca_btl_uct_la_LDFLAGS = -module -avoid-version $(btl_uct_LDFLAGS)
64+
mca_btl_uct_la_LIBADD = $(top_builddir)/opal/lib@[email protected] $(btl_uct_LIBS)
65+
66+
noinst_LTLIBRARIES = $(lib)
67+
libmca_btl_uct_la_SOURCES = $(lib_sources)
68+
libmca_btl_uct_la_LDFLAGS = -module -avoid-version $(btl_uct_LDFLAGS)

0 commit comments

Comments
 (0)