Rolf Rabenseifner wrote:
John,
this is already handled by all hints about code movement and register optimization in the old MPI-2.2 and in more detail in the upcoming MPI-3.0.
To summarize, there are several options: - TARGET buf - Using a call to a dummy routine MPI_F_SYNC_REG(buf) immediately after MPI_Wait - Storing buf as a module variable or in a common block - (VOALTILE buf, not recommended)
'ASYNCHRONOUS buf' is explicitly not an option, because a Fortran compiler - that implements Fortran asynchronous input/output with blocking I/O routines - is allowed to ignore the ASYNCHRONOUS attribute.
Only compilers with really asynchronous Fortran I/O have to also internally imply the TARGET attribute when the ASYNCHRONOUS attribute is given in the application.
Is my analysis correct?
Yes, but they all seem clugey and error prone to me. Given that asynchronous communication and asynchronous I/O are so alike and we already have syntax for the latter, should we not apply it also to the former? Even the word is appropriate. Cheers, John. -- Scanned by iCritical.