Subject: enquiry for machine type

From: "Marc Snir ((914) 945-3204)" <[email-masked]>
Date: Sun, 10 Jul 94 15:50:48 EDT

The requirement for an Environmental Enquiry that allows to find whether two
nodes use the same data representation is reasonable, irrespective of the
specific use that Rolf has in mind, for Parmacs emulation.  More generally,
users may want enquiry functions to find the type of node on which a process
runs.  This would help in situations where the user is willing to run on any
available machine on a network, but may want to use different code on different
machine types.

It is not reasonable to assume that the MPI forum will develop its own
nomenclature for data representations (size of each basic language data type,
big vs little endian, floating point format, character codes, etc.).
First because other standards try to handle this issue and, second, because
a complete characterization of the data representation used by a process
(which depends on the underlying machine architecture and on the compiler)
is likely to be quite lengthy.

We agreed that vendors can attach implementation specific predefined attributes
that are associated with MPI_COMM_WORLD.  I would suggest the following:

Associate a predefined attribute key MPI_PROC_TYPE with MPI_COMM_WORLD.  The
value of this attribute encodes the "type" of the executing process, i.e. the
type of data representation used by this process.  The meaning of the values of
this attribute is implementation dependent, except that if two processes return
the same value, then they use the same data representation  (i.e., data can be
moved untyped between these processes).

Implementers of MPI for homogeneous SPMD systems just need to always
return the same value (0?) with this attribute.   Implementers of MPI on
heterogeneous systems may need some work.

If this suggestion sounds reasonable, then the various MPI implementers may
accept it now as "common practice", and we can, at a latter time, add this
to the standard.

---

From: [email-masked] (Rolf Hempel)
Date: Mon, 11 Jul 1994 08:02:45 +0200

Marc's suggestion to add a predefined attribute MPI_PROC_TYPE to
MPI_COMM_WORLD, which in two processes is set to the same value if and
only if the data representations match, would solve my problem.
Therefore, I would very much appreciate if this would find its way
into the standard at some later time. If the implementers agree to put
it into their implementations earlier, so much the better.

- Rolf