A set of attributes that describe the execution environment are attached to the communicator MPI_COMM_WORLD when MPI is initialized. The value of these attributes can be inquired by using the function MPI_ATTR_GET described in Chapter Groups, Contexts, and Communicators . It is erroneous to delete these attributes or free their keys.
The list of predefined attribute keys include
The required parameter values are discussed in more detail below:
Tag values range from 0 to the value returned for MPI_TAG_UB inclusive. These values are guaranteed to be unchanging during the execution of an MPI program. In addition, the tag upper bound value must be at least 32767. An MPI implementation is free to make the value of MPI_TAG_UB larger than this; for example, the value is also a legal value for MPI_TAG_UB.
The value returned for MPI_HOST gets the rank of the HOST process in the group associated with communicator MPI_COMM_WORLD, if there is such. MPI_PROC_NULL is returned if there is no host. MPI does not specify what it means for a process to be a HOST, nor does it requires that a HOST exists.
The value returned for MPI_IO is the rank of a processor that can provide language-standard I/O facilities. For Fortran, this means that all of the Fortran I/O operations are supported (e.g., OPEN, REWIND, WRITE). For C, this means that all of the ANSI-C I/O operations are supported (e.g., fopen, fprintf, lseek).
If every process can provide language-standard I/O, then the value MPI_ANY_SOURCE must be returned. If no process can provide language-standard I/O, then the value MPI_PROC_NULL must be returned. If several processes can provide I/O, then any them may be returned. The same value (rank) need not be returned by all processes.
MPI_GET_PROCESSOR_NAME( name, resultlen )
[ OUT name] A unique specifier for the actual (as opposed to virtual) node.
[ OUT resultlen] Length (in printable characters) of the result returned in name
int MPI_Get_processor_name(char *name, int *resultlen)
MPI_GET_PROCESSOR_NAME( NAME, RESULTLEN, IERROR)
This routine returns the name of the processor on which it was called at the moment of the call. The name is a character string for maximum flexibility. From this value it must be possible to identify a specific piece of hardware; possible values include ``processor 9 in rack 4 of mpp.cs.org'' and ``231'' (where 231 is the actual processor number in the running homogeneous system). The argument name must represent storage that is at least MPI_MAX_PROCESSOR_NAME characters long. MPI_GET_PROCESSOR_NAME may write up to this many characters into name.
The number of characters actually written is returned in the output argument, resultlen.
This function allows MPI implementations that do process
migration to return the current processor. Note that nothing in MPI
requires or defines process migration; this definition of
MPI_GET_PROCESSOR_NAME simply allows such an implementation.
( End of rationale.)
 Advice to users.
The user must provide at least MPI_MAX_PROCESSOR_NAME space
to write the processor name --- processor names can be this long. The user
should examine the ouput argument, resultlen, to determine
the actual length of the name.
( End of advice to users.)