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.zamp...@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