[Mpi-forum] MPI_Type_create_struct vs. other datatype creation routines
thakur at mcs.anl.gov
Sat Aug 27 10:04:00 CDT 2011
If the displacement is specified in multiples of the extent of oldtype, it is defined as int. If the displacement is specified in bytes it is defined as Aint.
On Aug 27, 2011, at 7:08 AM, William Gropp wrote:
> Look at the Fortran binding - to create Fortran interfaces that used MPI_ADDRESS_KIND, we first had to *have* an MPI_ADDRESS_KIND, which is possible in Fortran 90 and later. MPI-1 could only provide a Fortran 77 binding.
> On Aug 27, 2011, at 6:03 AM, Pavan Balaji wrote:
>> No, that can't be right.
>> MPI_Type_hindexed was in MPI-1, and it had MPI_Aint for displacement.
>> MPI_Type_indexed on the other hand uses int.
>> MPI_Type_struct in MPI-1 also used MPI_Aint.
>> MPI_Type_create_indexed_block was added in MPI-2.1 (or 2.2?) and uses int.
>> It all seems arbitrary to me.
>> -- Pavan
>> On 08/27/2011 05:18 AM, Jeff Squyres wrote:
>>> An offhand guess: TYPE_CREATE_STRUCT was created in MPI-2, whereas the rest were created in MPI-1.
>>> On Aug 27, 2011, at 3:54 AM, Pavan Balaji wrote:
>>>> Is there a reason why MPI_Type_create_struct was given the special privilege of using MPI_Aint to store displacements, while the remaining datatype creation routines use int? This would essentially disallow creation of a datatype as an offset to MPI_BOTTOM.
>>>> -- Pavan
>>>> Pavan Balaji
>>>> mpi-forum mailing list
>>>> mpi-forum at lists.mpi-forum.org
>> Pavan Balaji
>> mpi-forum mailing list
>> mpi-forum at lists.mpi-forum.org
> William Gropp
> Director, Parallel Computing Institute
> Deputy Director for Research
> Institute for Advanced Computing Applications and Technologies
> Paul and Cynthia Saylor Professor of Computer Science
> University of Illinois Urbana-Champaign
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
More information about the mpi-forum