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@lists.mpi-forum.org
https://lists.mpi-forum.org/mailman/listinfo/mpi-forum

Reply via email to