From owner-sc22wg5@open-std.org  Wed Jan 21 22:50:39 2009
Return-Path: <owner-sc22wg5@open-std.org>
X-Original-To: sc22wg5-dom7
Delivered-To: sc22wg5-dom7@www2.open-std.org
Received: by www2.open-std.org (Postfix, from userid 521)
	id BE30DCA3434; Wed, 21 Jan 2009 22:50:39 +0100 (CET)
X-Original-To: sc22wg5@open-std.org
Delivered-To: sc22wg5@open-std.org
Received: from ppsw-0.csi.cam.ac.uk (ppsw-0.csi.cam.ac.uk [131.111.8.130])
	by www2.open-std.org (Postfix) with ESMTP id 4433BCA3432
	for <sc22wg5@open-std.org>; Wed, 21 Jan 2009 22:50:38 +0100 (CET)
X-Cam-AntiVirus: no malware found
X-Cam-SpamDetails: not scanned
X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/
Received: from hermes-2.csi.cam.ac.uk ([131.111.8.54]:50509)
	by ppsw-0.csi.cam.ac.uk (smtp.hermes.cam.ac.uk [131.111.8.150]:25)
	with esmtpa (EXTERNAL:nmm1) id 1LPky6-0001IJ-1W (Exim 4.70)
	(return-path <nmm1@hermes.cam.ac.uk>); Wed, 21 Jan 2009 21:50:38 +0000
Received: from prayer by hermes-2.csi.cam.ac.uk (hermes.cam.ac.uk)
	with local (PRAYER:nmm1) id 1LPky6-0002rc-Ek (Exim 4.67)
	(return-path <nmm1@hermes.cam.ac.uk>); Wed, 21 Jan 2009 21:50:38 +0000
Received: from [83.67.89.123] by webmail.hermes.cam.ac.uk
	with HTTP (Prayer-1.3.1); 21 Jan 2009 21:50:38 +0000
Date: 21 Jan 2009 21:50:38 +0000
From: "N.M. Maclaren" <nmm1@cam.ac.uk>
To: MPI-3 Fortran working group <mpi3-fortran@lists.mpi-forum.org>,
	WG5 <sc22wg5@open-std.org>
Subject: Re: [MPI3 Fortran] MPI non-blocking transfers
Message-ID: <Prayer.1.3.1.0901212150380.10271@hermes-2.csi.cam.ac.uk>
X-Mailer: Prayer v1.3.1
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset=ISO-8859-1
Sender: owner-sc22wg5@open-std.org
Precedence: bulk

>> 1)  Preventing code motion by the compiler across a call to an
>> MPI_wait-like subroutine.  This is needed to avoid the possibility that
>> user-coded modifications to the buffer (which is not present as an
>> argument in the call) do not migrate to before the call.  A subroutine
>> prefix keyword simply and completely solves this problem.  I recently
>> sent out such a proposal, with the prefix spelled VOLATILE.  This
>> solution has the desirable feature that no change to the user's source
>> code is needed as long as they already have a 'use mpi' statement, or a
>> compiler switch to cause the same effect.
>
>A good point.  I see what you are getting at.  It has the disadvantage
>that it applies to ALL variables, which is pretty serious, so it would
>be preferable to spell it ASYNCHRONOUS (or whatever) and have it apply
>only to those.

Upon thinking it over, this applies to buffers used for Fortran asynchronous
I/O today, so that a conforming compiler must assume that any subroutine
call can wait for the transfer.

One can reasonably say that either it needs fixing for the existing 
mechanism, or it doesn't need fixing for MPI.


Regards,
Nick Maclaren,
University of Cambridge Computing Service,
New Museums Site, Pembroke Street, Cambridge CB2 3QH, England.
Email:  nmm1@cam.ac.uk
Tel.:  +44 1223 334761    Fax:  +44 1223 334679

