[Mpi-forum] MPI_Type_create_struct vs. other datatype creation routines

Mohamad Chaarawi chaarawi at hdfgroup.org
Mon Aug 29 13:52:16 CDT 2011


Hi Pavan,

On 08/29/2011 09:21 AM, Pavan Balaji wrote:
>
> Great. We have a use case for this as well, and we are essentially 
> doing exactly what you are doing. Are you planning to do a formal 
> reading for it at the next meeting?

We would like to, but unfortunately none from the HDF group are able to 
attend the forum meeting in September. If you, or anyone  to that 
matter, would like to do a formal reading for this ticket, please let me 
know. Otherwise it will have to wait for the Chicago meeting in October.

>
> Btw, hindexed is not a real replacement for indexed as the MPI 
> implementation can be better optimized for indexed than hindexed 
> (e.g., alignment checks). So the right solution would have been to 
> allow indexed to take MPI_Aint arguments as well. But given that the 
> performance difference would be so small, I'm not sure if we should 
> create yet another set of routines for it.

I'm not really sure what you mean. How can we specify a displacement in 
multiples of old type and byte displacements in the same function? I 
thought it has to be one or the other.

Mohamad

>
>  -- Pavan
>
> On 08/29/2011 07:55 AM, Mohamad Chaarawi wrote:
>> Hi Pavan,
>>
>> actually I created a ticket for that about a month ago, #280 :)
>> https://svn.mpi-forum.org/trac/mpi-forum-web/ticket/280
>>
>> we have a usecase were we use hindexed for MPI_Aint displacement, but we
>> really need 1 block length, so we end up passing an array of 1s :(
>>
>> Thanks,
>> Mohamad
>>
>> On 08/27/2011 08:34 PM, Pavan Balaji wrote:
>>>
>>> Ok, that makes sense. It would have been good if the ones where
>>> offsets are specified in datatype lengths also took MPI_Aint, to allow
>>> for MPI_BOTTOM.
>>>
>>> Using hindexed instead of indexed would have been OK, except the MPI
>>> implementation can optimize alignment checks for indexed (by checking
>>> only the first element), but can't do that for hindexed.
>>>
>>> Also, are we missing hindexed_block in the standard?
>>>
>>>   -- Pavan
>>>
>>> On 08/27/2011 10:04 AM, Rajeev Thakur wrote:
>>>> 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.
>>>>
>>>> Rajeev
>>>>
>>>>
>>>> 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.
>>>>>
>>>>> Bill
>>>>>
>>>>> 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
>>>>>>>> http://www.mcs.anl.gov/~balaji
>>>>>>>> _______________________________________________
>>>>>>>> mpi-forum mailing list
>>>>>>>> mpi-forum at lists.mpi-forum.org
>>>>>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> Pavan Balaji
>>>>>> http://www.mcs.anl.gov/~balaji
>>>>>> _______________________________________________
>>>>>> mpi-forum mailing list
>>>>>> mpi-forum at lists.mpi-forum.org
>>>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>>>>>
>>>>> 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
>>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>>>>
>>>>
>>>> _______________________________________________
>>>> mpi-forum mailing list
>>>> mpi-forum at lists.mpi-forum.org
>>>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>>>
>>
>> _______________________________________________
>> mpi-forum mailing list
>> mpi-forum at lists.mpi-forum.org
>> http://lists.mpi-forum.org/mailman/listinfo.cgi/mpi-forum
>




More information about the mpi-forum mailing list