(j3.2006) an alternative to Aleks' asynchronous proposal
Fri Jun 20 13:42:47 EDT 2008
Malcolm Cohen wrote:
> At 07:00 08/06/20, Aleksandar Donev wrote:
> > the need to prevent movement of code across calls to MPI_Wait
> Giving the affected variables the TARGET attribute would seem to be
> 100% effective here (since in theory MPI_Wait could modify the
> variables via the previously-stashed pointers to them). VOLATILE
> would also be effective, but would optimise worse.
Another option is to put the affected variable in a module. References
to such a variable will never be moved across a call site (since the
callee might USE the module), and otherwise there are minimal if any
In the larger view, I'm not yet convinced that this is a real problem.
People have been using MPI for years and, once past the pain of writing
the code initially, it has been executing correctly. I'd be interested
in any actual example of a code that suffered the problem we're
expending so much effort trying to solve.
> That's not to say that I find Dick's proposal particularly
> attractive; for a start I'd prefer to spell the keyword
> "HORRENDOUSLY_HACKY". Or maybe "GIVE_ALL_ACTUAL_ARGUMENTS_THE_TARGET_ATTRIBUTE".
Bill Long longb at cray.com
Fortran Technical Support & voice: 651-605-9024
Bioinformatics Software Development fax: 651-605-9142
Cray Inc., 1340 Mendota Heights Rd., Mendota Heights, MN, 55120
More information about the J3