[Mpi-forum] mpi info behavior

Jim Dinan james.dinan at gmail.com
Wed Oct 13 15:46:03 CDT 2021


Hi Rob,

This seems reasonable to me. I think you can draw an analogy to an
application setting "mpi_assert_no_any_tag = true" and checking the value
returned by MPI_Comm_get_info to decide whether to use MPI_ANY_TAG on the
communicator. I would suggest info values like "true" and "false" so that
ROMIO can return back the same value passed by the user if the info key is
accepted.

As of MPI 4.0, MPI_File_get_info must return "all hints that are supported
by the implementation and have default values specified; any user-supplied
hints that were not ignored by the implementation; and any additional hints
that were set by the implementation." So, true/false would also allow ROMIO
to return a default value for the info key if the user hasn't set it.

One thing you can't do with info today is fail the operation because of a
key/value pair in the info argument. If there is an issue with a particular
key/value pair, it is supposed to be ignored.

 ~Jim.

On Mon, Oct 11, 2021 at 2:13 PM Latham, Robert J. via mpi-forum <
mpi-forum at lists.mpi-forum.org> wrote:

> I'd like a way to tell users programmatically about features ROMIO
> supports.
>
> One way I imagined doing so was through the info object, though we're
> having some internal discussion about how kosher that is.  Any thoughts
> from the broader MPI community about an approach like this:
>
>
> ```
> MPI_Info_create(&info);
> MPI_Info_set(info, "romio_feature_xyz", "requested");
> MPI_File_open(...)
> MPI_File_get_info(fh, &info_used)
> MPI_File_get_info(info_used, "romio_feature_xyz", MPI_MAX_INFO_VAL-1,
>     value, &flag);
>
> ```
>
> Possible points of contention:
>
> - we have examples of using hints for clients to pass information to
> implementations (striping_factor,  cb_buffer_size) and examples of
> implementations passing information to users (cb_nodes on Blue Gene), but
> we don't have too many examples of two-way hints.
>
> - will MPI_File_get_info return all info keys or just the ones the
> implementation understands?  The standard dictates what is required to be
> returned.  ROMIO (so de facto standard) will return the union of its
> internal keys and any keys (known or unknown) passed in by the user.
>
> - The use of "requested" as a hint value that the implementation can then
> either set to "enabled" or "disabled"  guards the situation where a user
> code is passing these infos to an older MPI IO implementation.  If the hint
> comes back exactly as given, then the implementation ignored this feature
> request and it is not supported. If the hint comes back "enabled" then the
> caller knows something about the implementation.
>
> Thanks
> ==rob
>
>
> _______________________________________________
> mpi-forum mailing list
> mpi-forum at lists.mpi-forum.org
> https://lists.mpi-forum.org/mailman/listinfo/mpi-forum
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpi-forum.org/pipermail/mpi-forum/attachments/20211013/df22e847/attachment.html>


More information about the mpi-forum mailing list