[mpich-discuss] question in MPI_Info_get
Thakur, Rajeev
thakur at mcs.anl.gov
Wed Feb 4 13:51:41 CST 2015
Yes.
On Feb 4, 2015, at 11:29 AM, Hajime Fujita <hfujita at uchicago.edu>
wrote:
> Thanks Rajeev and Bill,
>
> So you think this is a bug in MPICH (so as in OpenMPI) with respect to the standard, right?
> I’ll keep watching the ticket, and for the moment I’ll workaround in my code by passing the length including null character.
>
>
> Best,
> Hajime
>
>> On Feb 3, 2015, at 5:42 PM, Thakur, Rajeev <thakur at mcs.anl.gov> wrote:
>>
>> This bug is tracked in ticket #2225.
>> https://trac.mpich.org/projects/mpich/ticket/2225
>>
>> Rajeev
>>
>> On Feb 3, 2015, at 4:26 PM, William Gropp <wgropp at illinois.edu> wrote:
>>
>>> Thanks. Yes, I believe this is a bug. The implementation of MPI_Info_get in MPICH passes valuelen to the internal copy routine, yet it is clear that the definition in the standard for MPI_Info_get, it should pass valuelen+1 (it should also check for the error return code from the internal routine and return a value MPI error code if the buffer is too small.
>>>
>>> Bill
>>>
>>> On Feb 1, 2015, at 12:13 AM, Hajime Fujita <hfujita at uchicago.edu> wrote:
>>>
>>>> Hello,
>>>>
>>>> I came across some question about a behavior of MPI_Info_get in MPICH.
>>>>
>>>> If I knew the size of the value, what should I pass to MPI_Info_get as `valuelen`?
>>>> Suppose I have 3-byte value in the info object, and I allocate 4-byte buffer including a space for null-termination. Then I think I should specify 3 as valuelen to retrieve the whole value, as the MPI-3 specifications says
>>>> "In C, valuelen should be one less than the amount of allocated space to allow for the null terminator.”
>>>>
>>>> However, when I run the attached program in MPICH 3.1.1, I get:
>>>> $ ./test
>>>> key found: vaule=va # The last character ‘l’ is missing
>>>>
>>>> If I specify `sizeof(buff)` as valuelen, it shows “val” correctly.
>>>>
>>>> So apparently MPICH thinks valuelen includes null terminator.
>>>> Am I missing anything, or any misunderstanding here?
>>>>
>>>>
>>>> Thank you in advance,
>>>> Hajime
>>>>
>>>> --
>>>> Hajime Fujita
>>>> Postdoctoral Scholar, Large-Scale Systems Group
>>>> Department of Computer Science, The University of Chicago
>>>> http://www.cs.uchicago.edu/people/hfujita
>>>> _______________________________________________
>>>> discuss mailing list discuss at mpich.org
>>>> To manage subscription options or unsubscribe:
>>>> https://lists.mpich.org/mailman/listinfo/discuss
>>>> <test.c>
>>>
>>> _______________________________________________
>>> discuss mailing list discuss at mpich.org
>>> To manage subscription options or unsubscribe:
>>> https://lists.mpich.org/mailman/listinfo/discuss
>>
>> _______________________________________________
>> discuss mailing list discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>
> _______________________________________________
> discuss mailing list discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss
More information about the discuss
mailing list