[Mpi-comments] Comments on MPI 3.0 draft 2

George Bosilca bosilca at eecs.utk.edu
Thu Aug 23 19:49:49 CDT 2012


On Aug 18, 2012, at 20:13 , Jeremiah Willcock <jewillco at osl.iu.edu> wrote:

> Chapter 4:
> 
> On page 83 line 23, "communication" should be "communications".
> 
> On page 83 line 34, "shape and size" should be "shapes and sizes".

Done.

> On page 84 line 42, "sizeof" should be inside \mathit.

?

> On page 84 line 45, where does "i" come from?  Is the extent rounded to a multiple of k_i, or is the upper bound rounded (these differ when lb is not aligned)?  If extent is rounded, the +eps term should be moved to the computation of extent, not ub, unless that definition of ub is used somewhere else.

Which i? The type_i or k_i?

The upper bound is increased in such a way that the extent is a multiple of the biggest k_i (to solve all alignment issues in the case multiple instances of the same datatype are considered).

> On page 95, why does MPI_TYPE_CREATE_SUBARRAY use zero-based indexing for Fortran; I believe many other places in MPI use one-based array indices when called from Fortran, even if they use zero-based indices from C.

I can't find any text that correspond to this remark.

> Also, is there a version of MPI_TYPE_CREATE_SUBARRAY that allows strided indexing in the dimensions (MPI_TYPE_CREATE_DARRAY looks more limited)?

One can use a carefully hand-crafted datatype to achieve this.

> On page 103 line 18, MPI_ADDRESS has now been removed, not just deprecated.

Indeed.

> Is offset of a valid way to get displacements within C structs to use with MPI (rather than creating an object of that type and calling MPI_GET_ADDRESS on it and its individual fields)?

Absolutely.

> Wouldn't MPI_TYPE_SIZE and a way to "flatten" an MPI datatype into a datatype with the same primitive elements but sequential in memory (or using MPI_PACKED) be better than MPI_TYPE_TRUE_EXTENT for the example on page 108 line 29?

There are multiple ways to achieve the goal depicted in the example. MPI_Type_get_true_extent is a valid one, even if not the most optimal in terms of memory.

> On page 110 line 24, there should be a comma after "e.g.".
> 
> On page 111 line 42, there is some odd space at the end of the line.

Weird, I can't figure out how to get rid of this one. I'll investigate more.

> On page 112 line 7, there shouldn't be a space after "datatype".
> 
> On page 112 lines 11-14, should there be an MPI_TYPE_FREE added as well?

Pedantic(!).

> On page 115 line 44, it seems odd that adding MPI_BOTTOM to a valid address gives a valid address, since that allows me to create a valid address MPI_BOTTOM * n + v where n is nonnegative and v is a valid address.

Too late to change now. We realized this few weeks ago, and we amended the example 4.18.

> On page 128 line 32, example 4.18 uses "class" as a field name, which makes it impossible to compile with a C++ compiler.

Fixed.

  Thanks,
    george.







More information about the mpi-comments mailing list