We added all that the MPI_CART_... routines work fine with ndims==0.
We oversaw that MPI_DIMS_CREATE is also a candidate for ndims==0.
Reading the standard, I would say that MPI_DIMS_CREATE
- with ndims==0 can never have any output, because
the ndims Array has no element,
- with ndims==0 and nnodes != 1 is erronous
because a zero-dim-cart-topology has alwas exactly one node
(and erronous implies always undefined behavior,
i.e., the MPI library may catch or ignore this error),
- with ndims==0 and nnodes == 1 would be okay but would not
produce any output (because ndims has no entries),
- but compared to the other CART routines where ndims==0
behaviour is always explicitely specified, I would conclude
that MPI_DIMS_CREATE with ndims==0 has always undefined
behavior, i.e., that also ndims==0 and nnodes == 1 may be
treated by the MPI library as erronous.
Therefore, I would recommend to clarify the standard by
defining ndims of MPI_DIMS_CREATE as "positive integer"
instead of only "integer".
Rolf
----- Original Message -----From: "wgropp" <wgropp@illinois.edu>
To: "Comments on the MPI Standard" <mpi-comments@lists.mpi-forum.org>
Sent: Wednesday, November 9, 2016 3:18:10 PM
Subject: Re: [Mpi-comments] MPI_Dims_create(..., ndims=0, ...) semantic ?The standard doesn’t specify this, though I recall us discussing this and IIRC
agreeing that ndims equal to zero was well-defined and not an error. And there
is nothing in the standard that suggests that it should be an error, just
nothing that says it shouldn’t.
Bill
William Gropp
Acting Director and Chief Scientist, NCSA
Director, Parallel Computing Institute
Thomas M. Siebel Chair in Computer Science
University of Illinois Urbana-Champaign
On Nov 8, 2016, at 11:40 PM, Gilles Gouaillardet < [ mailto:gilles@rist.or.jp |
gilles@rist.or.jp ] > wrote:
Folks,
Does the standard specifiy the behavior of MPI_Dims_create() when the ndims
argument is zero ?
the standard only says negative input values of dims[i] are erroneous, but does
not say anything about ndims.
ndims is the number of Cartesian dimensions (integer), and though a negative
number likely looks erroneous
to most of us, a zero value is incorrect from a mathematical point of view (and
i wish i remembered that ...)
Could someone tell me how a zero value should be interpreted ?
(e.g. valid/invalid/up to the implementor ?)
FWIW, currently
in MPICH, this is a no-op.
In Open MPI, this is an error by default, but if parameter check is manually
disabled, then this is a no-op too.
Cheers,
Gilles
_______________________________________________
mpi-comments mailing list
[ mailto:mpi-comments@lists.mpi-forum.org | mpi-comments@lists.mpi-forum.org ]
https://lists.mpi-forum.org/mailman/listinfo/mpi-comments
_______________________________________________
mpi-comments mailing list
mpi-comments@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpi-comments
--
Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner@hlrs.de
High Performance Computing Center (HLRS) . phone ++49(0)711/685-65530
University of Stuttgart . . . . . . . . .. fax ++49(0)711 / 685-65832
Head of Dpmt Parallel Computing . . . www.hlrs.de/people/rabenseifner
Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)
_______________________________________________
mpi-comments mailing list
mpi-comments@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpi-comments