[Mpi-forum] mpi info behavior

Latham, Robert J. robl at mcs.anl.gov
Mon Oct 11 13:13:20 CDT 2021


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




More information about the mpi-forum mailing list