13.2.7. Window Info

PreviousUpNext
Up: Initialization Next: Communication Calls Previous: Window Attributes

Hints specified via info (see Section The Info Object) allow a user to provide information to direct optimization. Providing hints may enable an implementation to deliver increased performance or use system resources more efficiently. As described in Section The Info Object, an implementation is free to ignore all hints; however, applications must comply with any info hints they provide that are used by the MPI implementation (i.e., are returned by a call to MPI_WIN_GET_INFO) and that place a restriction on the behavior of the application. Hints are specified on a per window basis, in window creation functions and MPI_WIN_SET_INFO, via the opaque info object. When an info object that specifies a subset of valid hints is passed to MPI_WIN_SET_INFO there will be no effect on previously set or default hints that the info does not specify.


Advice to implementors.

It may happen that a program is coded with hints for one system, and later executes on another system that does not support these hints. In general, unsupported hints should simply be ignored. Needless to say, no hint can be mandatory. However, for each hint used by a specific implementation, a default value must be provided when the user does not specify a value for the hint. ( End of advice to implementors.)

MPI_WIN_SET_INFO(win, info)
INOUT winwindow object (handle)
IN infoinfo argument (handle)
C binding
int MPI_Win_set_info(MPI_Win win, MPI_Info info)
Fortran 2008 binding
MPI_Win_set_info(win, info, ierror)

TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Info), INTENT(IN) :: info
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
Fortran binding
MPI_WIN_SET_INFO(WIN, INFO, IERROR)

INTEGER WIN, INFO, IERROR

MPI_WIN_SET_INFO updates the hints of the window associated with win using the hints provided in info. This operation has no effect on previously set or defaulted hints that are not specified by info. It also has no effect on previously set or defaulted hints that are specified by info, but are ignored by the MPI implementation in this call to MPI_WIN_SET_INFO. The procedure is collective over the group of win. The entries in the info object may be different on each MPI process, but any info entries that an implementation requires to be the same on all MPI processes must appear with the same value in each MPI process's info object.


Advice to users.

Some info items that an implementation can use when it creates a window cannot easily be changed once the window has been created. Thus, an implementation may ignore hints issued in this call that it would have accepted in a creation call. An implementation may also be unable to update certain info hints in a call to MPI_WIN_SET_INFO. MPI_WIN_GET_INFO can be used to determine whether info changes were ignored by the implementation. ( End of advice to users.)

MPI_WIN_GET_INFO(win, info_used)
IN winwindow object (handle)
OUT info_usednew info object (handle)
C binding
int MPI_Win_get_info(MPI_Win win, MPI_Info *info_used)
Fortran 2008 binding
MPI_Win_get_info(win, info_used, ierror)

TYPE(MPI_Win), INTENT(IN) :: win
TYPE(MPI_Info), INTENT(OUT) :: info_used
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
Fortran binding
MPI_WIN_GET_INFO(WIN, INFO_USED, IERROR)

INTEGER WIN, INFO_USED, IERROR

MPI_WIN_GET_INFO returns a new info object containing the hints of the window associated with win. The current setting of all hints related to this window is returned in info_used. An MPI implementation is required to 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. If no such hints exist, a handle to a newly created info object is returned that contains no key/value pair. The user is responsible for freeing info_used via MPI_INFO_FREE.


PreviousUpNext
Up: Initialization Next: Communication Calls Previous: Window Attributes


Return to MPI-4.1 Standard Index
Return to MPI Forum Home Page

(Unofficial) MPI-4.1 of November 2, 2023
HTML Generated on November 19, 2023