<div dir="ltr">There are user-defined function signatures in Fortran for reductions.  Look at 6.9.5 in <a href="https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf">https://www.mpi-forum.org/docs/mpi-4.0/mpi40-report.pdf</a>.  Those are callbacks that get invoked internally when reductions are called.<div><br></div><div>Jeff</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 4, 2021 at 9:05 PM Joseph Schuchart via mpiwg-hybridpm <<a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org">mpiwg-hybridpm@lists.mpi-forum.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thanks Jeff! I am less worried about the out-of-band update of the <br>
status objects but the whole thing with callbacks and function pointers. <br>
The only place in the MPI standard using callbacks right now is the <br>
tools chapter and that is explicitly C-only. Looking at <br>
<a href="https://scicomp.stackexchange.com/a/286" rel="noreferrer" target="_blank">https://scicomp.stackexchange.com/a/286</a> it seems to be possible to pass <br>
around function pointers in Fortran but the comments suggest that its <br>
not compatible with C?<br>
<br>
Thanks<br>
Joseph<br>
<br>
On 8/4/21 1:00 PM, Jeff Hammond wrote:<br>
> Regarding Fortran…<br>
><br>
> In theory, you need ASYNCHRONOUS/VOLATILE attributes on visible state that’s updated out of band.<br>
><br>
> In practice, MPI implementations have done this with nonblocking send-recv for 25 years and it hasn’t been an issue.<br>
><br>
> Sent from my iPhone<br>
><br>
>> On Aug 4, 2021, at 7:36 PM, Joseph Schuchart via mpiwg-hybridpm <<a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org" target="_blank">mpiwg-hybridpm@lists.mpi-forum.org</a>> wrote:<br>
>><br>
>> Dear all,<br>
>><br>
>> I have written and attached a first draft of the continuations section that I would like to discuss in one of the upcoming meetings. Right now it is embedded at the end Section 3 (Point-to-Point following test and wait etc) where I felt it would fit well, I'm open to other suggestions though.<br>
>><br>
>> There are still some open TODOs that I'd like to discuss. In particular, I'm grappling with the handling of statuses. As suggested during previous discussions, I removed the flag argument to MPI_Continue such that the MPI implementation is allowed to invoke the continuations directly (can be controlled through an info key though). That means that after the call to MPI_Continue there is no good reason to inspect the statuses anymore. However, we may still want the user to provide the status object(s) in order to avoid exposing implementation-internal memory in the callback. But then I am worried that this is a source of error, with users providing pointers to stack memory that goes out of scope before the continuation is invoked.<br>
>><br>
>> Also, I am unsure whether and how this whole mechanism works with Fortran. The python generator happily generates the interface but I have no idea whether that is correct...<br>
>><br>
>> Looking forward to discussing this on the call!<br>
>><br>
>> Cheers<br>
>> Joseph<br>
>> <mpi40-report-continuations.pdf><br>
>> _______________________________________________<br>
>> mpiwg-hybridpm mailing list<br>
>> <a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org" target="_blank">mpiwg-hybridpm@lists.mpi-forum.org</a><br>
>> <a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm" rel="noreferrer" target="_blank">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm</a><br>
<br>
_______________________________________________<br>
mpiwg-hybridpm mailing list<br>
<a href="mailto:mpiwg-hybridpm@lists.mpi-forum.org" target="_blank">mpiwg-hybridpm@lists.mpi-forum.org</a><br>
<a href="https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm" rel="noreferrer" target="_blank">https://lists.mpi-forum.org/mailman/listinfo/mpiwg-hybridpm</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Jeff Hammond<br><a href="mailto:jeff.science@gmail.com" target="_blank">jeff.science@gmail.com</a><br><a href="http://jeffhammond.github.io/" target="_blank">http://jeffhammond.github.io/</a></div>