1
1

Shame on me for not looking at the expanded collective datatype tables

for the C++ bindings in MPI-2 p276-278 to see that MPI_BOOL should
work with MPI_LAND, MPI_LOR, and MPI_LXOR.  Thanks to Andy Selle for
pointing this out.

This commit was SVN r9200.
Этот коммит содержится в:
Jeff Squyres 2006-03-04 18:35:33 +00:00
родитель bd109c90f5
Коммит a192af34e7
5 изменённых файлов: 25 добавлений и 8 удалений

2
NEWS
Просмотреть файл

@ -35,6 +35,8 @@ version 1.0.
1.0.2
-----
- Added MPI_BOOL to the intrinsic reduction operations MPI_LAND,
MPI_LOR, MPI_LXOR. Thanks to Andy Selle for pointing this out to us.
- Fixed TCP BTL network matching logic during MPI_INIT; in some cases
on multi-NIC nodes, a NIC could get paired with a NIC on another
network (typically resulting in deadlock). Thanks to Ken Mighell

Просмотреть файл

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* Copyright (c) 2004-2006 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
@ -202,13 +202,18 @@ OBJ_CLASS_INSTANCE(ompi_op_t, opal_object_t,
/** Fortran logical *****************************************************/
#if OMPI_HAVE_FORTRAN_LOGICAL
#define LOGICAL(name) \
#define FORTRAN_LOGICAL(name) \
{ ompi_mpi_op_##name##_fortran_logical } /* OMPI_OP_TYPE_LOGICAL */
#else
#define LOGICAL(name) { NULL }
#define FORTRAN_LOGICAL(name) { NULL }
#endif
#define LOGICAL(name) \
FORTRAN_LOGICAL(name), \
{ ompi_mpi_op_##name##_bool } /* OMPI_OP_TYPE_BOOL */
#define LOGICAL_NULL \
{ NULL } /* OMPI_OP_TYPE_LOGICAL */
{ NULL }, /* OMPI_OP_TYPE_LOGICAL */ \
{ NULL } /* OMPI_OP_TYPE_BOOL */
/** Fortran complex *****************************************************/
@ -605,6 +610,7 @@ int ompi_op_init(void)
ompi_op_ddt_map[DT_COMPLEX_FLOAT] = OMPI_OP_TYPE_COMPLEX;
ompi_op_ddt_map[DT_COMPLEX_DOUBLE] = OMPI_OP_TYPE_DOUBLE_COMPLEX;
ompi_op_ddt_map[DT_LOGIC] = OMPI_OP_TYPE_LOGICAL;
ompi_op_ddt_map[DT_CXX_BOOL] = OMPI_OP_TYPE_BOOL;
ompi_op_ddt_map[DT_FLOAT_INT] = OMPI_OP_TYPE_FLOAT_INT;
ompi_op_ddt_map[DT_DOUBLE_INT] = OMPI_OP_TYPE_DOUBLE_INT;
ompi_op_ddt_map[DT_LONG_INT] = OMPI_OP_TYPE_LONG_INT;

Просмотреть файл

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* Copyright (c) 2004-2006 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
@ -127,6 +127,8 @@ enum {
OMPI_OP_TYPE_LOGICAL,
/**< Logical */
OMPI_OP_TYPE_BOOL,
/**< Bool */
OMPI_OP_TYPE_COMPLEX,
/**< Complex */

Просмотреть файл

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* Copyright (c) 2004-2006 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
@ -404,6 +404,8 @@ FUNC_FUNC(land, unsigned_long_long, unsigned long long)
#if OMPI_HAVE_FORTRAN_LOGICAL
FUNC_FUNC(land, fortran_logical, ompi_fortran_logical_t)
#endif
/* C++ bool */
FUNC_FUNC(land, bool, bool)
/*************************************************************************
* Logical OR
@ -427,6 +429,8 @@ FUNC_FUNC(lor, unsigned_long_long, unsigned long long)
#if OMPI_HAVE_FORTRAN_LOGICAL
FUNC_FUNC(lor, fortran_logical, ompi_fortran_logical_t)
#endif
/* C++ bool */
FUNC_FUNC(lor, bool, bool)
/*************************************************************************
* Logical XOR
@ -450,6 +454,8 @@ FUNC_FUNC(lxor, unsigned_long_long, unsigned long long)
#if OMPI_HAVE_FORTRAN_LOGICAL
FUNC_FUNC(lxor, fortran_logical, ompi_fortran_logical_t)
#endif
/* C++ bool */
FUNC_FUNC(lxor, bool, bool)
/*************************************************************************
* Bitwise AND

Просмотреть файл

@ -1,5 +1,5 @@
/*
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
* Copyright (c) 2004-2006 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
@ -125,7 +125,8 @@
/* Logical */
#define OMPI_OP_HANDLER_LOGICAL(name) \
void ompi_mpi_op_##name##_fortran_logical OMPI_OP_PROTO;
void ompi_mpi_op_##name##_fortran_logical OMPI_OP_PROTO; \
void ompi_mpi_op_##name##_bool OMPI_OP_PROTO;
/* Complex */