1) Changes to the INFO interface:
MPI_INFO_CREATE(OUT info)
Creates a new info object.
Info is a handle to a list of terms that can be added with
the following routines.
MPI_INFO_STRING(IN info, IN string)
MPI_INFO_KEY_STRING(IN info, IN key, IN string_value)
MPI_INFO_KEY_INT (IN info, IN key, IN integer_value)
MPI_INFO_KEY_FLOAT (IN info, IN key, IN float_value)
Adds a term to info. A term consits of a string or
a (key,value) pair. For each key the allowed types of the
value must be defined.
The terms are normaly appended at the end of the list.
For each key it may be defined that a later given value
overwrites a former given value.
string, key and string_value are null-terminated strings
in C. In Fortran, trailing spaces in string, key and
string_value are ignored.
MPI_INFO_DUP(IN info, OUT newinfo)
Duplicates an existing info object. Creates a new object, with
same list of terms.
MPI_INFO_FREE(INOUT info)
Frees info. Sets to MPI_INFO_NULL.
(MPI_INFO_GET is discarded!)
The semantics whether a info mayt change the semantics of a
MPI-routine should be defined in the chapter-intros or in the
routine descriptions. It is not part of INFO itself.
2) Change command_line in MPI_(I)SPAWN(_INDEPENDENT) into:
IN executable executable (string, significant only at root)
IN arguments command line arguments (info handle, significant
only at root)
and in MPI_(I)SPAWN_MULTIPLE(_INDEPENDENT)
IN executable executable (array of string, significant only at root)
IN arguments command line arguments (array of info handle,
significant only at root)
The terms of the "arguments" must be strings.
3) Add an info argument into MPI_RMA_INIT:
IN info A info handle telling the runtime system optimization
hints.
Pro:
- If we define the proposed keys for MPI_SPAWN as "overwritable"
then this proposal is identical to the voted proposal, except
that MPI_INFO_GET is discarded (but this routine is not really
needed).
- This interface can be used also for lists, e.g. the commandline
in MPI_SPAWN (i.e. we do not need the ugly %-algorithm)
- The user must not convert integer (most options in MPI_FOPEN)
or float values (e.g. timeout in MPI_CONNECT/ACCEPT) into
a string representation and the MPI-library must not convert
back.
- The interface for hints is the same in IO, 1sided and dynamic.
Rolf Rabenseifner (Computer Center )
Rechenzentrum Universitaet Stuttgart (University of Stuttgart)
Allmandring 30 Phone: ++49 711 6855530
D-70550 Stuttgart 80 FAX: ++49 711 6787626
Germany rabenseifner@rus.uni-stuttgart.de