You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is both an issue and a question. I am running into problems with these types (which only exist because of minloc/maxloc): MPI_SHORT_INT, MPI_LONG_INT, and MPI_DOUBLE_INT. The issues exist because two of these datatypes are externally non-contiguous if defined properly and one is internally non-contiguous (MPI_SHORT_INT).
So, first the issue (I think). In the standard we show this as an example of how MPI_FLOAT_INT could be defined:
From my understanding of non-contiguous datatypes (correct me if I am wrong) we are not allowed to touch any padding bit in a composed datatype. Is this also true of predefined datatypes?
Sort of related, when writing these to a file, should these types get packed like any other composed datatype or should they appear on disc with the same layout they have in memory?
Why isn't the call MPI_Type_get_contents() allowed on these datatypes? Without this call it is difficult for middleware (romio for example) to find the layout without essentially creating the datatypes themselves and then calling MPI_Type_get_contents() on the new datatype.
The text was updated successfully, but these errors were encountered:
To be clear. I would like to see these datatypes deprecated. If minloc and maxloc are here to stay I would prefer if we described how to construct datatypes that can be used with minloc and maxloc instead of predefining them.
This is both an issue and a question. I am running into problems with these types (which only exist because of minloc/maxloc): MPI_SHORT_INT, MPI_LONG_INT, and MPI_DOUBLE_INT. The issues exist because two of these datatypes are externally non-contiguous if defined properly and one is internally non-contiguous (MPI_SHORT_INT).
So, first the issue (I think). In the standard we show this as an example of how MPI_FLOAT_INT could be defined:
This is clearly wrong if
sizeof (float) == 4
,sizeof (int) == 8
, andalignof (int) == 8
. A more correct definition is:Now for the questions
From my understanding of non-contiguous datatypes (correct me if I am wrong) we are not allowed to touch any padding bit in a composed datatype. Is this also true of predefined datatypes?
Sort of related, when writing these to a file, should these types get packed like any other composed datatype or should they appear on disc with the same layout they have in memory?
Why isn't the call
MPI_Type_get_contents()
allowed on these datatypes? Without this call it is difficult for middleware (romio for example) to find the layout without essentially creating the datatypes themselves and then callingMPI_Type_get_contents()
on the new datatype.The text was updated successfully, but these errors were encountered: