[mpich-discuss] question in MPI_Info_get

Junchao Zhang jczhang at mcs.anl.gov
Tue Feb 3 17:28:21 CST 2015


OK, I guess MPI standard wants to have this kind of code.

int valuelen;
MPI_Info_get_valuelen(..., &valuelen,...);
int buflen = valuelen + 1;
char* value = (char *)malloc(buflen);
MPI_Info_get(..., valuelen, value, ...);

Though, from a user's point of view, I fell better if it was MPI_Info_get(...,
buflen, value, ...), that is, using buflen to specify the length of buffer
I pass to MPI.


--Junchao Zhang

On Tue, 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20150203/ffe71f13/attachment.html>
-------------- next part --------------
_______________________________________________
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