<div dir="ltr">Hi Jeff,<div><br></div><div>We're actively engaged in the C++ standards work, and across several of the other models you mentioned. These are good targets, and I look forward to discussing how we can also support hybrid programming for these models.</div><div><br></div><div>All the best,</div><div> ~Jim.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 17, 2020 at 5:10 PM Jeff Hammond 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"><div dir="ltr">I don't think it's reasonable to ask anybody to reason about the interaction of MPI with a programming model that has no specification.  Furthermore, I don't think it's fair to ask anyone to dig into a language that may be encumbered by patents and which has a restrictive, hardware-locked license.<div><br></div><div>I would be happy to discuss ISO C++20, C20 and Fortran 2008, Khronos OpenCL, SYCL and Vulkan, OpenMP or OpenACC here, because those have specifications and permit implementations on any hardware.</div><div><br></div><div><div>Jeff<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Dec 17, 2020 at 2:34 AM 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></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Jim, all,<br>
<br>
Thanks for your presentation yesterday (and last time). I had a bunch of <br>
questions but held back in hopes that we could go through the rest of <br>
the slides. Maybe it's better to have this discussion on the mailing <br>
list and save the precious hour in the WG meeting. In essence, my points <br>
boil down to these two:<br>
<br>
1) I wonder what the benefit is of integrating stream support into MPI <br>
libraries over accelerator vendors providing their specific APIs on top <br>
of what MPI already offers? My understanding from the CUDA graph API is <br>
that you can add a host node that is a callback executed on the CPU. <br>
That is what I imagine the MPI library would use and it is what a <br>
third-party library could do as well, right? Otherwise, what is missing <br>
from the MPI API?<br>
<br>
2) The CUDA stream and graph APIs seem very similar to task dependencies <br>
in OpenMP, with the same complications when combined with MPI. I think <br>
Martin hinted at this last night: MPI adds dependencies between nodes in <br>
one or more graphs that are not exposed to the CUDA scheduler, which <br>
opens the door for deadlocks. I think we should strive to do better. In <br>
OpenMP, detached tasks (and the events used to complete them) provide a <br>
user-controlled completion mechanism. This may be a model that could be <br>
picked up by the accelerator APIs. Joachim and I have shown that this <br>
model is easily coupled with callback-based completion notification in <br>
MPI :) So maybe the burden does not have to be all on MPI here...<br>
<br>
The discussion last night got held up by many questions, partly because <br>
two concepts were mixed: device-side communication initiation (which I <br>
think is very interesting) and stream integration (which I am less <br>
convinced of). It might be worth splitting the two aspects into separate <br>
discussions since you can have one without the other and it might make <br>
it easier for people to follow along.<br>
<br>
Since the problem of passing va-args through PMPI came up last night: <br>
one way to deal with it would be to provide MPI_Wait_enqueuev(reqs, <br>
type, va_args) to allow PMPI wrappers to inspect the va-args and pass <br>
them on to MPI. This is the model that printf/vprintf and friends are <br>
using. I'm not sure  whether that works for Fortran though...<br>
<br>
I hope this is a good place to discuss these topics so everyone feel <br>
free to comment. Otherwise just take it as input for the next WG meeting :)<br>
<br>
Cheers<br>
Joseph<br>
-- <br>
Dr-Ing. Joseph Schuchart<br>
High Performance Computing Center Stuttgart (HLRS)<br>
Nobelstr. 19<br>
D-70569 Stuttgart<br>
<br>
Tel.: +49(0)711-68565890<br>
Fax: +49(0)711-6856832<br>
E-Mail: <a href="mailto:schuchart@hlrs.de" target="_blank">schuchart@hlrs.de</a><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">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>
_______________________________________________<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>