[Mpi-comments] MPI_Dims_create(..., ndims=0, ...) semantic ?

Rolf Rabenseifner rabenseifner at hlrs.de
Thu Nov 10 02:52:48 CST 2016


Yes I agree: Bill's solution is better, but it requires that the 
MPI libraries may Need to be fixed, because then, ndimm==0 && nnodes==1
is no error.
Currently, it is undefined, i.e., a MPI library may handle it
as an erronous input and may call the error handler. 
I.e., this solution would require a change log entry that
all MPI library developers check there code.

Proposal: I would add after the Example 7.1 on MPI-3.1 page 293 line 42

  If ndims is zero, then nnodes must be one, and the argument
  dims will be ignored, i.e., there will be no output.

Changelog in "Changes in MPI-4.0":

  Section 7.5.2 on page 792.
  MPI_DIMS_CREATE was extended to additionally allow a zero-dimensional 
  Cartesian topology, i.e., input ndims==0 together with nnodes==1.

Bill, please can you provide the ticket/issue/... with probably 
better wording ...

Rolf

----- Original Message -----
> From: "wgropp" <wgropp at illinois.edu>
> To: "Comments on the MPI Standard" <mpi-comments at lists.mpi-forum.org>
> Sent: Wednesday, November 9, 2016 7:04:44 PM
> Subject: Re: [Mpi-comments] MPI_Dims_create(..., ndims=0, ...) semantic ?

> I agree with the analysis of the output but disagree with the conclusion - to
> make the behavior consistent with that of MPI_Cart_create, ndim == 0 should be
> permitted (with nnodes == 1) but there is, as noted, no output other than a
> return value / error value set of MPI_SUCCESS. Otherwise the use of
> MPI_Dims_create with MPI_Cart_create in the general case looks like
> 
> if (ndim > 0) MPI_Dims_create(…)
> MPI_Cart_create(…)
> 
> while the intent of the changes for MPI_Cart_create was to allow
> 
> MPI_Dims_create(…)
> MPI_Cart_create(…)
> 
> even if ndim == 0.
> 
> 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 9, 2016, at 9:17 AM, Rolf Rabenseifner < [ mailto:rabenseifner at hlrs.de |
> rabenseifner at hlrs.de ] > wrote:
> 
> 
> 
> 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" < [ mailto:wgropp at illinois.edu | wgropp at illinois.edu ] >
> To: "Comments on the MPI Standard" < [ mailto:mpi-comments at lists.mpi-forum.org |
> mpi-comments at 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 at rist.or.jp
> | mailto:gilles at rist.or.jp ] |
> [ mailto:gilles at rist.or.jp | gilles at 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 at lists.mpi-forum.org |
> mailto:mpi-comments at lists.mpi-forum.org ] | [
> mailto:mpi-comments at lists.mpi-forum.org | mpi-comments at lists.mpi-forum.org ] ]
> [ https://lists.mpi-forum.org/mailman/listinfo/mpi-comments |
> https://lists.mpi-forum.org/mailman/listinfo/mpi-comments ]
> 
> 
> _______________________________________________
> mpi-comments mailing list
> mpi-comments at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpi-comments
> 
> --
> Dr. Rolf Rabenseifner . . . . . . . . . .. email [ mailto:rabenseifner at hlrs.de |
> rabenseifner at 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 . . . [ http://www.hlrs.de/people/rabenseifner |
> www.hlrs.de/people/rabenseifner ]
> Nobelstr. 19, D-70550 Stuttgart, Germany . . . . (Office: Room 1.307)
> _______________________________________________
> mpi-comments mailing list
> [ mailto:mpi-comments at lists.mpi-forum.org | mpi-comments at lists.mpi-forum.org ]
> https://lists.mpi-forum.org/mailman/listinfo/mpi-comments
> 
> 
> _______________________________________________
> mpi-comments mailing list
> mpi-comments at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpi-comments

-- 
Dr. Rolf Rabenseifner . . . . . . . . . .. email rabenseifner at 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 at lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpi-comments


More information about the mpi-comments mailing list