Newsgroups: comp.parallel.mpi
From: Erik <erik.brakkee@gmd.de>
Subject: Why MPI_ADDRESS?
Organization: GMD/SCAI
Date: Tue, 07 May 1996 15:53:53 +0200
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-ID: <318F55F1.41C6@gmd.de>

What exactly is the purpose of MPI_ADDRESS?

I have been reading the MPI-1 report and stumbled
on a remark on page 68 (Advice to Users, MPI_ADDRESS).

I don't see the problem with using the '&' operator
in C. In ANSI-C pointers are just abstract pointers
to memory locations which cannot be interpreted as
memory addresses. Only the difference between
pointers can be interpreted as a relative address
(only within an array or structure).

The advantage of using absolute addresses to 
represent derived data types (paragraph 3.12.2)
is dubious, since would allow us to send or receive
instances of such datatypes without passing the
storage for it to MPI. This is a very dangerous way of
operating because it assumes that memory locations of
variables are constant during computation. I wonder if
this is always true. 

Does this hold for local variables of functions
between consecutive function calls? And how about
the case when the system performs swapping during
computation?

So what is the purpose of MPI_ADDRESS besides 
providing pointer functionality in FORTRAN? 

Sincerely,
  Erik

===============================================
Erik Brakkee
GMD/SCAI, Schloss Birlinghoven      
D-53754 Sankt Augustin, Germany  
E-mail: erik.brakkee@gmd.de

