Skip to content

Commit

Permalink
btl: add a new btl for the UCT layer in OpenUCX
Browse files Browse the repository at this point in the history
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 <hjelmn@lanl.gov>
  • Loading branch information
hjelmn committed Jun 25, 2018
1 parent e59f58a commit 6ecb6f9
Show file tree
Hide file tree
Showing 19 changed files with 3,928 additions and 0 deletions.
1 change: 1 addition & 0 deletions config/ompi_check_ucx.m4
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@ AC_DEFUN([OMPI_CHECK_UCX],[
[$ompi_check_ucx_libdir],
[ompi_check_ucx_happy="yes"],
[ompi_check_ucx_happy="no"])

CPPFLAGS="$ompi_check_ucx_$1_save_CPPFLAGS"
LDFLAGS="$ompi_check_ucx_$1_save_LDFLAGS"
LIBS="$ompi_check_ucx_$1_save_LIBS"
Expand Down
68 changes: 68 additions & 0 deletions opal/mca/btl/uct/Makefile.am
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#
# Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
# University Research and Technology
# Corporation. All rights reserved.
# Copyright (c) 2004-2005 The University of Tennessee and The University
# of Tennessee Research Foundation. All rights
# reserved.
# Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
# University of Stuttgart. All rights reserved.
# Copyright (c) 2004-2005 The Regents of the University of California.
# All rights reserved.
# Copyright (c) 2010 Cisco Systems, Inc. All rights reserved.
# Copyright (c) 2017 IBM Corporation. All rights reserved.
# Copyright (c) 2017-2018 Los Alamos National Security, LLC. All rights
# reserved.
# $COPYRIGHT$
#
# Additional copyrights may follow
#
# $HEADER$
#

AM_CPPFLAGS = $(btl_uct_CPPFLAGS)

amca_paramdir = $(AMCA_PARAM_SETS_DIR)

sources = \
btl_uct.h \
btl_uct_module.c \
btl_uct_component.c \
btl_uct_rdma.h \
btl_uct_rdma.c \
btl_uct_endpoint.h \
btl_uct_endpoint.c \
btl_uct_amo.c \
btl_uct_am.h \
btl_uct_am.c \
btl_uct_frag.h \
btl_uct_frag.c \
btl_uct_tl.c \
btl_uct_types.h \
btl_uct_device_context.h

# Make the output library in this directory, and name it either
# mca_<type>_<name>.la (for DSO builds) or libmca_<type>_<name>.la
# (for static builds).

if MCA_BUILD_opal_btl_uct_DSO
lib =
lib_sources =
component = mca_btl_uct.la
component_sources = $(sources)
else
lib = libmca_btl_uct.la
lib_sources = $(sources)
component =
component_sources =
endif

mcacomponentdir = $(opallibdir)
mcacomponent_LTLIBRARIES = $(component)
mca_btl_uct_la_SOURCES = $(component_sources)
mca_btl_uct_la_LDFLAGS = -module -avoid-version $(btl_uct_LDFLAGS)
mca_btl_uct_la_LIBADD = $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la $(btl_uct_LIBS)

noinst_LTLIBRARIES = $(lib)
libmca_btl_uct_la_SOURCES = $(lib_sources)
libmca_btl_uct_la_LDFLAGS = -module -avoid-version $(btl_uct_LDFLAGS)
Loading

0 comments on commit 6ecb6f9

Please sign in to comment.