Skip to content

Commit f4b4c4f

Browse files
committed
Rework the MPI_Op support.
Remove all ops with 3 buffers, we ended up not using them anywhere in the code. Change the loop order in the base MPI_Op to allow for more optimizations, as discussed in #9717. Fixes #9717. Signed-off-by: George Bosilca <[email protected]>
1 parent f33221f commit f4b4c4f

File tree

10 files changed

+7
-1520
lines changed

10 files changed

+7
-1520
lines changed

ompi/debuggers/predefined_gap_test.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ int main(int argc, char **argv) {
110110
GAP_CHECK("o_flags", test_op, o_flags, o_name, 1)
111111
GAP_CHECK("o_f_to_c_index", test_op, o_f_to_c_index, o_flags, 1)
112112
GAP_CHECK("o_func", test_op, o_func, o_f_to_c_index, 1)
113-
GAP_CHECK("o_3buff_instrinsic", test_op, o_3buff_intrinsic, o_func, 1)
114113

115114
/* Test Predefined datatype sizes */
116115
printf("=============================================\n");

ompi/mca/op/avx/op_avx_component.c

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -237,15 +237,12 @@ avx_component_init_query(bool enable_progress_threads,
237237

238238
#if OMPI_MCA_OP_HAVE_AVX512
239239
extern ompi_op_base_handler_fn_t ompi_op_avx_functions_avx512[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
240-
extern ompi_op_base_3buff_handler_fn_t ompi_op_avx_3buff_functions_avx512[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
241240
#endif
242241
#if OMPI_MCA_OP_HAVE_AVX2
243242
extern ompi_op_base_handler_fn_t ompi_op_avx_functions_avx2[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
244-
extern ompi_op_base_3buff_handler_fn_t ompi_op_avx_3buff_functions_avx2[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
245243
#endif
246244
#if OMPI_MCA_OP_HAVE_AVX
247245
extern ompi_op_base_handler_fn_t ompi_op_avx_functions_avx[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
248-
extern ompi_op_base_3buff_handler_fn_t ompi_op_avx_3buff_functions_avx[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
249246
#endif
250247
/*
251248
* Query whether this component can be used for a specific op
@@ -274,35 +271,25 @@ avx_component_op_query(struct ompi_op_t *op, int *priority)
274271
#if OMPI_MCA_OP_HAVE_AVX512
275272
if( mca_op_avx_component.flags & OMPI_OP_AVX_HAS_AVX512F_FLAG ) {
276273
module->opm_fns[i] = ompi_op_avx_functions_avx512[op->o_f_to_c_index][i];
277-
module->opm_3buff_fns[i] = ompi_op_avx_3buff_functions_avx512[op->o_f_to_c_index][i];
278274
}
279275
#endif
280276
#if OMPI_MCA_OP_HAVE_AVX2
281277
if( mca_op_avx_component.flags & OMPI_OP_AVX_HAS_AVX2_FLAG ) {
282278
if( NULL == module->opm_fns[i] ) {
283279
module->opm_fns[i] = ompi_op_avx_functions_avx2[op->o_f_to_c_index][i];
284280
}
285-
if( NULL == module->opm_3buff_fns[i] ) {
286-
module->opm_3buff_fns[i] = ompi_op_avx_3buff_functions_avx2[op->o_f_to_c_index][i];
287-
}
288281
}
289282
#endif
290283
#if OMPI_MCA_OP_HAVE_AVX
291284
if( mca_op_avx_component.flags & OMPI_OP_AVX_HAS_AVX_FLAG ) {
292285
if( NULL == module->opm_fns[i] ) {
293286
module->opm_fns[i] = ompi_op_avx_functions_avx[op->o_f_to_c_index][i];
294287
}
295-
if( NULL == module->opm_3buff_fns[i] ) {
296-
module->opm_3buff_fns[i] = ompi_op_avx_3buff_functions_avx[op->o_f_to_c_index][i];
297-
}
298288
}
299289
#endif
300290
if( NULL != module->opm_fns[i] ) {
301291
OBJ_RETAIN(module);
302292
}
303-
if( NULL != module->opm_3buff_fns[i] ) {
304-
OBJ_RETAIN(module);
305-
}
306293
}
307294
break;
308295
case OMPI_OP_BASE_FORTRAN_LAND:

ompi/mca/op/avx/op_avx_functions.c

Lines changed: 0 additions & 649 deletions
Large diffs are not rendered by default.

ompi/mca/op/base/functions.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ BEGIN_C_DECLS
3535
*/
3636
OMPI_DECLSPEC extern ompi_op_base_handler_fn_t
3737
ompi_op_base_functions[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
38-
OMPI_DECLSPEC extern ompi_op_base_3buff_handler_fn_t
39-
ompi_op_base_3buff_functions[OMPI_OP_BASE_FORTRAN_OP_MAX][OMPI_OP_BASE_TYPE_MAX];
4038

4139
END_C_DECLS
4240

ompi/mca/op/base/op_base_frame.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,13 @@ static void module_constructor(ompi_op_base_module_t *m)
4343
m->opm_enable = NULL;
4444
m->opm_op = NULL;
4545
memset(&(m->opm_fns), 0, sizeof(m->opm_fns));
46-
memset(&(m->opm_3buff_fns), 0, sizeof(m->opm_3buff_fns));
4746
}
4847

4948
static void module_constructor_1_0_0(ompi_op_base_module_1_0_0_t *m)
5049
{
5150
m->opm_enable = NULL;
5251
m->opm_op = NULL;
5352
memset(&(m->opm_fns), 0, sizeof(m->opm_fns));
54-
memset(&(m->opm_3buff_fns), 0, sizeof(m->opm_3buff_fns));
5553
}
5654

5755
OBJ_CLASS_INSTANCE(ompi_op_base_module_t, opal_object_t,

0 commit comments

Comments
 (0)