Skip to content

Commit c294bbc

Browse files
authored
Merge pull request #5508 from hjelmn/fuzzy_match
Bring fuzzy matching support into master
2 parents eeae3f9 + c8d1348 commit c294bbc

15 files changed

+3799
-10
lines changed

ompi/mca/pml/ob1/Makefile.am

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,14 @@ ob1_sources = \
4747
pml_ob1_recvreq.h \
4848
pml_ob1_sendreq.c \
4949
pml_ob1_sendreq.h \
50-
pml_ob1_start.c
50+
pml_ob1_start.c \
51+
custommatch/pml_ob1_custom_match.h \
52+
custommatch/pml_ob1_custom_match_arrays.h \
53+
custommatch/pml_ob1_custom_match_vectors.h \
54+
custommatch/pml_ob1_custom_match_linkedlist.h \
55+
custommatch/pml_ob1_custom_match_fuzzy512-byte.h \
56+
custommatch/pml_ob1_custom_match_fuzzy512-short.h \
57+
custommatch/pml_ob1_custom_match_fuzzy512-word.h
5158

5259
# If we have CUDA support requested, build the CUDA file also
5360
if OPAL_cuda_support

ompi/mca/pml/ob1/configure.m4

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,44 @@ AC_DEFUN([MCA_ompi_pml_ob1_POST_CONFIG], [
2222
# ------------------------------------------------
2323
# We can always build, unless we were explicitly disabled.
2424
AC_DEFUN([MCA_ompi_pml_ob1_CONFIG],[
25+
OPAL_VAR_SCOPE_PUSH([pml_ob1_matching_engine])
26+
AC_ARG_WITH([pml-ob1-matching], [AC_HELP_STRING([--with-pml-ob1-matching=type],
27+
[Configure pml/ob1 to use an alternate matching engine. Only valid on x86_64 systems.
28+
Valid values are: none, default, arrays, fuzzy-byte, fuzzy-short, fuzzy-word, vector (default: none)])])
29+
30+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_NONE
31+
32+
if test -n "$with_pml_ob1_matching" ; then
33+
case $with_pml_ob1_matching in
34+
none)
35+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_NONE
36+
;;
37+
default)
38+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_LINKEDLIST
39+
;;
40+
arrays)
41+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_ARRAYS
42+
;;
43+
fuzzy-byte)
44+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_BYTE
45+
;;
46+
fuzzy-short)
47+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_SHORT
48+
;;
49+
fuzzy-word)
50+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_WORD
51+
;;
52+
vector)
53+
pml_ob1_matching_engine=MCA_PML_OB1_CUSTOM_MATCHING_VECTOR
54+
;;
55+
*)
56+
AC_ERROR([invalid matching type specified for --pml-ob1-matching: $with_pml_ob1_matching])
57+
;;
58+
esac
59+
fi
60+
61+
AC_DEFINE_UNQUOTED([MCA_PML_OB1_CUSTOM_MATCHING], [$pml_ob1_matching_engine], [Custom matching engine to use in pml/ob1])
62+
2563
AC_CONFIG_FILES([ompi/mca/pml/ob1/Makefile])
2664
[$1]
2765
])dnl
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
2+
/*
3+
* Copyright (c) 2018 Los Alamos National Security, LLC. All rights
4+
* reserved.
5+
* Copyright (c) 2018 Sandia National Laboratories. All rights reserved.
6+
*
7+
* $COPYRIGHT$
8+
*
9+
* Additional copyrights may follow
10+
*
11+
* $HEADER$
12+
*/
13+
14+
#ifndef PML_OB1_CUSTOM_MATCH_H
15+
#define PML_OB1_CUSTOM_MATCH_H
16+
17+
#include "ompi_config.h"
18+
#include "ompi/mca/pml/ob1/pml_ob1.h"
19+
20+
#define CUSTOM_MATCH_DEBUG 1
21+
#define CUSTOM_MATCH_DEBUG_VERBOSE 1
22+
23+
/**
24+
* Custom match types
25+
*/
26+
#define MCA_PML_OB1_CUSTOM_MATCHING_NONE 0
27+
#define MCA_PML_OB1_CUSTOM_MATCHING_LINKEDLIST 1
28+
#define MCA_PML_OB1_CUSTOM_MATCHING_ARRAYS 2
29+
#define MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_BYTE 3
30+
#define MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_SHORT 4
31+
#define MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_WORD 5
32+
#define MCA_PML_OB1_CUSTOM_MATCHING_VECTOR 6
33+
34+
#if MCA_PML_OB1_CUSTOM_MATCHING != MCA_PML_OB1_CUSTOM_MATCHING_NONE
35+
36+
#define MCA_PML_OB1_CUSTOM_MATCH 1
37+
38+
#if MCA_PML_OB1_CUSTOM_MATCHING == MCA_PML_OB1_CUSTOM_MATCHING_LINKEDLIST
39+
#include "pml_ob1_custom_match_linkedlist.h"
40+
#elif MCA_PML_OB1_CUSTOM_MATCHING == MCA_PML_OB1_CUSTOM_MATCHING_ARRAYS
41+
#include "pml_ob1_custom_match_arrays.h"
42+
#elif MCA_PML_OB1_CUSTOM_MATCHING == MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_BYTE
43+
#include "pml_ob1_custom_match_fuzzy512-byte.h"
44+
#elif MCA_PML_OB1_CUSTOM_MATCHING == MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_SHORT
45+
#include "pml_ob1_custom_match_fuzzy512-short.h"
46+
#elif MCA_PML_OB1_CUSTOM_MATCHING == MCA_PML_OB1_CUSTOM_MATCHING_FUZZY_WORD
47+
#include "pml_ob1_custom_match_fuzzy512-word.h"
48+
#elif MCA_PML_OB1_CUSTOM_MATCHING == MCA_PML_OB1_CUSTOM_MATCHING_VECTOR
49+
#include "pml_ob1_custom_match_vectors.h"
50+
#endif
51+
52+
#else
53+
54+
#define MCA_PML_OB1_CUSTOM_MATCH 0
55+
56+
#endif
57+
58+
#endif

0 commit comments

Comments
 (0)