Date: Thu, 25 Mar 1999 16:37:05 -0500 (EST) From: Nicholas Nevin - Sun HPC High Performance Computing To: mpi-core@XXXXXXXXXXX Subject: clarification on inter-language interoperability of attributes Sender: owner-mpi-core@XXXXXXXXXXX Precedence: bulk X-UIDL: d0b3972e30c60fcb55f6bde4e5f9c9d9 Hi, All. I need some clarification on the behaviour of MPI_Comm_get_attr in the case of an architecture with 32 bit ints and 64 bit pointers. Section 4.12.7 of the MPI-2 standard states that MPI will store internally *address* sized attributes. It also states that an integer valued attribute when accessed from C via MPI_Comm_get_attr will return the address of a pointer to the integer valued attribute. This seems to imply that MPI_Comm_get_attr will return a pointer to a 64 bit quantity. This however will break codes which do this. int *tagub; int ub; MPI_Comm_get_attr(MPI_COMM_WORLD, MPI_TAG_UB, &tagub, &flag); ub = *tagub; Under this interpretation the code should be written something like this MPI_Aint *tagub; MPI_Aint ub; MPI_Comm_get_attr(MPI_COMM_WORLD, MPI_TAG_UB, &tagub, &flag); ub = *tagub; The same applies for MPI_Attr_get() since the bindings are defined to be identical. Is this what was intended? Thanks, Nick.