[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