[petsc-dev] Current status of using streams within PETSc
Jacob Faibussowitsch
jacob.fai at gmail.com
Tue Feb 15 09:34:07 CST 2022
New code can (and absolutely should) use it right away, PetscDeviceContext has been fully functional since its merger. Remember though that it works on a “principled parallelism” model; the caller is responsible for proper serialization.
Existing code? Not so much. In broad strokes the following sections need support before parallelism can be achieved from user-code:
1. Vec - WIP (feature complete, now in bug-fixing stage)
2. PetscSF - TODO
3. Mat - TODO
4. KSP/PC - TODO
Seeing as each MR thus far for this has taken me roughly 3-4 months to merge, and with the later sections requiring enormous rewrites and API changes I don’t expect this to be finished for at least 2 years… Once the Vec MR is merged you could theoretically run with -device_context_stream_type default_blocking and achieve “asynchronous” compute but nothing would work properly as every other part of petsc expects to be synchronous.
That being said I would be happy to give a demo to people on how they can integrate PetscDeviceContext into their code on the next developers meeting. It would go a long way to cutting down the timeline.
> On Feb 15, 2022, at 02:02, Stefano Zampini <stefano.zampini at gmail.com> wrote:
>
> Jacob
>
> what is the current status of the async support in PETSc?
> Can you summarize here? Is there any documentation available?
>
> Thanks
> --
> Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220215/91ba1de6/attachment.html>
More information about the petsc-dev
mailing list