Add missing MPI_WEIGHTS_EMPTY constant
cmr=v1.8:reviewer=jsquyres This commit was SVN r31260.
Этот коммит содержится в:
родитель
545d5daced
Коммит
69036437b7
@ -433,6 +433,7 @@ typedef int (MPI_Grequest_cancel_function)(void *, int);
|
||||
* More constants
|
||||
*/
|
||||
#define MPI_UNWEIGHTED ((void *) 2) /* unweighted graph */
|
||||
#define MPI_WEIGHTS_EMPTY ((void *) 3) /* empty weights */
|
||||
#define MPI_BOTTOM ((void *) 0) /* base reference address */
|
||||
#define MPI_IN_PLACE ((void *) 1) /* in place buffer */
|
||||
#define MPI_BSEND_OVERHEAD 128 /* size of bsend header + ptr */
|
||||
|
@ -53,6 +53,8 @@
|
||||
integer MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
|
||||
! Ditto for MPI_STATUSES_IGNORE
|
||||
integer MPI_STATUSES_IGNORE(MPI_STATUS_SIZE, 1)
|
||||
integer MPI_UNWEIGHTED
|
||||
integer MPI_WEIGHTS_NULL
|
||||
|
||||
common/mpi_fortran_bottom/MPI_BOTTOM
|
||||
common/mpi_fortran_in_place/MPI_IN_PLACE
|
||||
@ -61,3 +63,5 @@
|
||||
common/mpi_fortran_errcodes_ignore/MPI_ERRCODES_IGNORE
|
||||
common/mpi_fortran_status_ignore/MPI_STATUS_IGNORE
|
||||
common/mpi_fortran_statuses_ignore/MPI_STATUSES_IGNORE
|
||||
common/mpi_fortran_statuses_ignore/MPI_UNWEIGHTED
|
||||
common/mpi_fortran_statuses_ignore/MPI_WEIGHTS_EMPTY
|
||||
|
@ -50,7 +50,7 @@ int MPI_Dist_graph_create(MPI_Comm comm_old, int n, const int sources[],
|
||||
} else if (n < 0 || NULL == newcomm) {
|
||||
return OMPI_ERRHANDLER_INVOKE(comm_old, MPI_ERR_ARG, FUNC_NAME);
|
||||
} else if (n > 0 && (NULL == sources || NULL == degrees ||
|
||||
NULL == destinations || NULL == weights)) {
|
||||
NULL == destinations || NULL == weights || MPI_WEIGHTS_EMPTY == weights)) {
|
||||
return OMPI_ERRHANDLER_INVOKE(comm_old, MPI_ERR_ARG, FUNC_NAME);
|
||||
}
|
||||
/* Ensure the arrays are full of valid-valued integers */
|
||||
|
@ -7,7 +7,7 @@
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2009 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2013 Los Alamos National Security, LLC. All rights
|
||||
* Copyright (c) 2013-2014 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
*
|
||||
* Author(s): Torsten Hoefler
|
||||
@ -60,9 +60,9 @@ int MPI_Dist_graph_create_adjacent(MPI_Comm comm_old,
|
||||
} else if (indegree < 0 || outdegree < 0 || NULL == comm_dist_graph) {
|
||||
return OMPI_ERRHANDLER_INVOKE(comm_old, MPI_ERR_ARG, "MPI_Dist_create_graph_adjacent 1");
|
||||
} else if ((indegree > 0 &&
|
||||
(NULL == sources || NULL == sourceweights)) ||
|
||||
(NULL == sources || NULL == sourceweights || MPI_WEIGHTS_EMPTY == sourceweights)) ||
|
||||
(outdegree > 0 &&
|
||||
(NULL == destinations || NULL == destweights))) {
|
||||
(NULL == destinations || NULL == destweights || MPI_WEIGHTS_EMPTY == destweights))) {
|
||||
return OMPI_ERRHANDLER_INVOKE(comm_old, MPI_ERR_ARG, "MPI_Dist_create_graph adjacent 2");
|
||||
}
|
||||
comm_size = ompi_comm_size(comm_old);
|
||||
|
@ -102,6 +102,8 @@ DECL(int, MPI_FORTRAN_IN_PLACE, mpi_fortran_in_place,
|
||||
mpi_fortran_in_place_, mpi_fortran_in_place__);
|
||||
DECL(int, MPI_FORTRAN_UNWEIGHTED, mpi_fortran_unweighted,
|
||||
mpi_fortran_unweighted_, mpi_fortran_unweighted__);
|
||||
DECL(int, MPI_FORTRAN_WEIGHTS_EMPTY, mpi_fortran_weights_empty,
|
||||
mpi_fortran_weights_empty_, mpi_fortran_weights_empty__);
|
||||
DECL(char *, MPI_FORTRAN_ARGV_NULL, mpi_fortran_argv_null,
|
||||
mpi_fortran_argv_null_, mpi_fortran_argv_null__);
|
||||
DECL(char *, MPI_FORTRAN_ARGVS_NULL, mpi_fortran_argvs_null,
|
||||
@ -133,6 +135,11 @@ DECL(int *, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
addr == (void*) &mpi_fortran_unweighted || \
|
||||
addr == (void*) &mpi_fortran_unweighted_ || \
|
||||
addr == (void*) &mpi_fortran_unweighted__)
|
||||
#define OMPI_IS_FORTRAN_WEIGHTS_EMPTY(addr) \
|
||||
(addr == (void*) &MPI_FORTRAN_WEIGHTS_EMPTY || \
|
||||
addr == (void*) &mpi_fortran_weights_empty || \
|
||||
addr == (void*) &mpi_fortran_weights_empty_ || \
|
||||
addr == (void*) &mpi_fortran_weights_empty__)
|
||||
#define OMPI_IS_FORTRAN_ARGV_NULL(addr) \
|
||||
(addr == (void*) &MPI_FORTRAN_ARGV_NULL || \
|
||||
addr == (void*) &mpi_fortran_argv_null || \
|
||||
@ -166,6 +173,8 @@ DECL(int *, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
(addr == (void*) &MPI_FORTRAN_IN_PLACE)
|
||||
#define OMPI_IS_FORTRAN_UNWEIGHTED(addr) \
|
||||
(addr == (void*) &MPI_FORTRAN_UNWEIGHTED)
|
||||
#define OMPI_IS_FORTRAN_WEIGHTS_EMPTY(addr) \
|
||||
(addr == (void*) &MPI_FORTRAN_WEIGHTS_EMPTY)
|
||||
#define OMPI_IS_FORTRAN_ARGV_NULL(addr) \
|
||||
(addr == (void*) &MPI_FORTRAN_ARGV_NULL)
|
||||
#define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \
|
||||
@ -184,6 +193,8 @@ DECL(int *, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
(addr == (void*) &mpi_fortran_in_place)
|
||||
#define OMPI_IS_FORTRAN_UNWEIGHTED(addr) \
|
||||
(addr == (void*) &mpi_fortran_unweighted)
|
||||
#define OMPI_IS_FORTRAN_WEIGHTS_EMPTY(addr) \
|
||||
(addr == (void*) &mpi_fortran_weights_empty)
|
||||
#define OMPI_IS_FORTRAN_ARGV_NULL(addr) \
|
||||
(addr == (void*) &mpi_fortran_argv_null)
|
||||
#define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \
|
||||
@ -202,6 +213,8 @@ DECL(int *, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
(addr == (void*) &mpi_fortran_in_place_)
|
||||
#define OMPI_IS_FORTRAN_UNWEIGHTED(addr) \
|
||||
(addr == (void*) &mpi_fortran_unweighted_)
|
||||
#define OMPI_IS_FORTRAN_WEIGHTS_EMPTY(addr) \
|
||||
(addr == (void*) &mpi_fortran_weights_empty_)
|
||||
#define OMPI_IS_FORTRAN_ARGV_NULL(addr) \
|
||||
(addr == (void*) &mpi_fortran_argv_null_)
|
||||
#define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \
|
||||
@ -220,6 +233,8 @@ DECL(int *, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
(addr == (void*) &mpi_fortran_in_place__)
|
||||
#define OMPI_IS_FORTRAN_UNWEIGHTED(addr) \
|
||||
(addr == (void*) &mpi_fortran_unweighted__)
|
||||
#define OMPI_IS_FORTRAN_WEIGHTS_EMPTY(addr) \
|
||||
(addr == (void*) &mpi_fortran_weights_empty__)
|
||||
#define OMPI_IS_FORTRAN_ARGV_NULL(addr) \
|
||||
(addr == (void*) &mpi_fortran_argv_null__)
|
||||
#define OMPI_IS_FORTRAN_ARGVS_NULL(addr) \
|
||||
@ -237,5 +252,6 @@ DECL(int *, MPI_FORTRAN_STATUSES_IGNORE, mpi_fortran_statuses_ignore,
|
||||
#define OMPI_F2C_BOTTOM(addr) (OMPI_IS_FORTRAN_BOTTOM(addr) ? MPI_BOTTOM : (addr))
|
||||
#define OMPI_F2C_IN_PLACE(addr) (OMPI_IS_FORTRAN_IN_PLACE(addr) ? MPI_IN_PLACE : (addr))
|
||||
#define OMPI_F2C_UNWEIGHTED(addr) (OMPI_IS_FORTRAN_UNWEIGHTED(addr) ? MPI_UNWEIGHTED : (addr))
|
||||
#define OMPI_F2C_WEIGHTS_EMPTY(addr) (OMPI_IS_FORTRAN_WEIGHTS_EMPTY(addr) ? MPI_WEIGHTS_EMPTY : (addr))
|
||||
|
||||
#endif /* OMPI_FORTRAN_BASE_CONSTANTS_H */
|
||||
|
@ -1,3 +1,4 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2011 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
@ -5,6 +6,8 @@
|
||||
* Copyright (c) 2011 INRIA. All rights reserved.
|
||||
* Copyright (c) 2011 Université Bordeaux 1
|
||||
* Copyright (c) 2013-2014 Cisco Systems, Inc. All rights reserved.
|
||||
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -69,6 +72,8 @@ void ompi_dist_graph_create_adjacent_f(MPI_Fint *comm_old, MPI_Fint *indegree,
|
||||
{
|
||||
MPI_Info c_info;
|
||||
MPI_Comm c_comm_old, c_comm_graph;
|
||||
const int *c_destweights, *c_sourceweights;
|
||||
|
||||
OMPI_ARRAY_NAME_DECL(sources);
|
||||
OMPI_ARRAY_NAME_DECL(sourceweights);
|
||||
OMPI_ARRAY_NAME_DECL(destinations);
|
||||
@ -78,20 +83,31 @@ void ompi_dist_graph_create_adjacent_f(MPI_Fint *comm_old, MPI_Fint *indegree,
|
||||
c_info = MPI_Info_f2c(*info);
|
||||
|
||||
OMPI_ARRAY_FINT_2_INT(sources, *indegree);
|
||||
if( !OMPI_IS_FORTRAN_UNWEIGHTED(sourceweights) ) {
|
||||
if (OMPI_IS_FORTRAN_UNWEIGHTED(sourceweights)) {
|
||||
c_sourceweights = MPI_UNWEIGHTED;
|
||||
} else if (OMPI_IS_FORTRAN_WEIGHTS_EMPTY(sourceweights)) {
|
||||
c_sourceweights = MPI_WEIGHTS_EMPTY;
|
||||
} else {
|
||||
OMPI_ARRAY_FINT_2_INT(sourceweights, *indegree);
|
||||
c_sourceweights = OMPI_ARRAY_NAME_CONVERT(sourceweights);
|
||||
}
|
||||
|
||||
OMPI_ARRAY_FINT_2_INT(destinations, *outdegree);
|
||||
if( !OMPI_IS_FORTRAN_UNWEIGHTED(destweights) ) {
|
||||
OMPI_ARRAY_FINT_2_INT(destweights, *outdegree);
|
||||
if (OMPI_IS_FORTRAN_UNWEIGHTED(destweights)) {
|
||||
c_destweights = MPI_UNWEIGHTED;
|
||||
} else if (OMPI_IS_FORTRAN_WEIGHTS_EMPTY(destweights)) {
|
||||
c_destweights = MPI_WEIGHTS_EMPTY;
|
||||
} else {
|
||||
OMPI_ARRAY_FINT_2_INT(destweights, *indegree);
|
||||
c_destweights = OMPI_ARRAY_NAME_CONVERT(destweights);
|
||||
}
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Dist_graph_create_adjacent(c_comm_old, OMPI_FINT_2_INT(*indegree),
|
||||
OMPI_ARRAY_NAME_CONVERT(sources),
|
||||
OMPI_IS_FORTRAN_UNWEIGHTED(sourceweights) ? MPI_UNWEIGHTED : OMPI_ARRAY_NAME_CONVERT(sourceweights),
|
||||
c_sourceweights,
|
||||
OMPI_FINT_2_INT(*outdegree),
|
||||
OMPI_ARRAY_NAME_CONVERT(destinations),
|
||||
OMPI_IS_FORTRAN_UNWEIGHTED(destweights) ? MPI_UNWEIGHTED : OMPI_ARRAY_NAME_CONVERT(destweights),
|
||||
c_destweights,
|
||||
c_info,
|
||||
OMPI_LOGICAL_2_INT(*reorder),
|
||||
&c_comm_graph));
|
||||
@ -100,11 +116,11 @@ void ompi_dist_graph_create_adjacent_f(MPI_Fint *comm_old, MPI_Fint *indegree,
|
||||
}
|
||||
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(sources);
|
||||
if( !OMPI_IS_FORTRAN_UNWEIGHTED(sourceweights) ) {
|
||||
if( MPI_UNWEIGHTED != c_sourceweights && MPI_WEIGHTS_EMPTY != c_sourceweights ) {
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(sourceweights);
|
||||
}
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(destinations);
|
||||
if( !OMPI_IS_FORTRAN_UNWEIGHTED(destweights) ) {
|
||||
if( MPI_UNWEIGHTED != c_destweights && MPI_WEIGHTS_EMPTY != c_destweights ) {
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(destweights);
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,12 @@
|
||||
/* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
|
||||
/*
|
||||
* Copyright (c) 2011 The University of Tennessee and The University
|
||||
* of Tennessee Research Foundation. All rights
|
||||
* reserved.
|
||||
* Copyright (c) 2011 INRIA. All rights reserved.
|
||||
* Copyright (c) 2011 Université Bordeaux 1
|
||||
* Copyright (c) 2014 Los Alamos National Security, LLC. All rights
|
||||
* reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -66,6 +69,8 @@ void ompi_dist_graph_create_f(MPI_Fint *comm_old, MPI_Fint *n, MPI_Fint *sources
|
||||
MPI_Comm c_comm_old, c_comm_graph;
|
||||
int count = 0, i;
|
||||
MPI_Info c_info;
|
||||
const int *c_weights;
|
||||
|
||||
OMPI_ARRAY_NAME_DECL(sources);
|
||||
OMPI_ARRAY_NAME_DECL(degrees);
|
||||
OMPI_ARRAY_NAME_DECL(destinations);
|
||||
@ -78,15 +83,20 @@ void ompi_dist_graph_create_f(MPI_Fint *comm_old, MPI_Fint *n, MPI_Fint *sources
|
||||
for( i = 0; i < OMPI_FINT_2_INT(*n); i++ )
|
||||
count += OMPI_ARRAY_NAME_CONVERT(degrees)[i];
|
||||
OMPI_ARRAY_FINT_2_INT(destinations, count);
|
||||
if( !OMPI_IS_FORTRAN_UNWEIGHTED(weights) ) {
|
||||
|
||||
if (OMPI_IS_FORTRAN_UNWEIGHTED(weights)) {
|
||||
c_weights = MPI_UNWEIGHTED;
|
||||
} else if (OMPI_IS_FORTRAN_WEIGHTS_EMPTY(weights)) {
|
||||
c_weights = MPI_WEIGHTS_EMPTY;
|
||||
} else {
|
||||
OMPI_ARRAY_FINT_2_INT(weights, count);
|
||||
c_weights = OMPI_ARRAY_NAME_CONVERT(weights);
|
||||
}
|
||||
|
||||
|
||||
*ierr = OMPI_INT_2_FINT(MPI_Dist_graph_create(c_comm_old, OMPI_FINT_2_INT(*n), OMPI_ARRAY_NAME_CONVERT(sources),
|
||||
OMPI_ARRAY_NAME_CONVERT(degrees), OMPI_ARRAY_NAME_CONVERT(destinations),
|
||||
OMPI_IS_FORTRAN_UNWEIGHTED(weights) ? MPI_UNWEIGHTED : OMPI_ARRAY_NAME_CONVERT(weights),
|
||||
c_info, OMPI_LOGICAL_2_INT(*reorder), &c_comm_graph));
|
||||
c_weights, c_info, OMPI_LOGICAL_2_INT(*reorder), &c_comm_graph));
|
||||
if (OMPI_SUCCESS == OMPI_FINT_2_INT(*ierr)) {
|
||||
*comm_graph = MPI_Comm_c2f(c_comm_graph);
|
||||
}
|
||||
@ -94,7 +104,7 @@ void ompi_dist_graph_create_f(MPI_Fint *comm_old, MPI_Fint *n, MPI_Fint *sources
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(sources);
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(degrees);
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(destinations);
|
||||
if( !OMPI_IS_FORTRAN_UNWEIGHTED(weights) ) {
|
||||
if( MPI_UNWEIGHTED != c_weights && MPI_WEIGHTS_EMPTY != c_weights ) {
|
||||
OMPI_ARRAY_FINT_2_INT_CLEANUP(weights);
|
||||
}
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user