Re: chapter 5

Rolf Rabenseifner (Rabenseifner@RUS.Uni-Stuttgart.DE)
Thu, 22 May 1997 11:00:09 +0200 (DST)

Marc wrote:

> 2. Change in Fortran binding for MPI_FREE_MEM. Two people objected to it,

I withdraw my objection.

> and nobody expressed support for it. Thus, unless I hear soon support for
> the change, I shall revert to the previous binding, which is what we voted
> officially on. I don't think that the issue is very important, although I
> would have prefered more consistency between C and Fortran.

I support explicitly Marc's change. It solves the major
inconsistency.

But please also remove the minor inconsistencies noted below.
(The are in both drafts, voted April 17 and current May 8.)

Lyndon (?) has shown to me, that we use the "base"-argument in
three routines: MPI_ALLOC_MEM, MPI_FREE_MEM and MPI_WIN_CREATE,
but with two different levels of dereferencing.

My changes are changes to the draft May 8.

- All name the argument "base".

This is a inconsistency.
I propose on 65:19-31: use "base_pointer" in MPI_ALLOC_MEM

- The description is different:
MPI_ALLOC_MEM: initial address of memory allocated (address)
MPI_FREE_MEM: initial address of memory segment allocated by
MPI_ALLOC_MEM [April 17]
MPI_ALLOC_MEM (choice) [May 8]
MPI_WIN_CREATE: initial address of window (choice)

This is a inconsistency.
I propose the following change on 65:23 in MPI_ALLOC_MEM:

OUT base_pointer pointer to the initial address of memory
allocated for usage in MPI_WIN_CREATE (address)


- The C-binding is always "void *base" and the text in both drafts say:

In the C binding, the base arguments of the calls
MPI_Alloc_mem and MPI_Free_mem are not the same variable:
a call to MPI_Alloc_mem(&base) should be paired with
a call to MPI_Free_mem (base) (one less dereference).
Both arguments are declared to be of the same type void*, so
as to facilitate type casting.

There is no additional text about the usage of base in WIN_CREATE,
but the notation of "(choice)" in the descriptions of
MPI_FREE_MEM and MPI_WIN_CREATE is a hint, that MPI_Win_create(base)
would be correct.

I propose to change only the first sentences
(reflecting "base_pointer") into (66:6-7):

In the C binding, the base and base_pointer arguments of the calls
MPI_Alloc_mem and MPI_Free_mem are not the same variable:

- The Fortran binding reflects the C-binding in the routines
MPI_ALLOC_MEM and MPI_WIN_CREATE both drafts.

In MPI_FREE_MEM the draft April 17 had an inconsistency between
Fortran and C.

This is solved with marc's changes.

It has now the same interface as MPI_WIN_CREATE!

- But please can you add also a example written in C (same content
as Example 5.1).

(Sorry about not writing it, but I'm to bad in writing C)

- And please can you add also the MPI_WIN_CREATE with all arguments
and MPI_FREE_MEM to the C and Fortran version of Exa.5.1

- If there is someone who can write Exa.5.1 in C++ this would be
great.

Rolf


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