[petsc-users] PETSc configuration to solve Poisson equation on a 2D cartesian grid of points with nVidia GPUs (CUDA)

Mark Adams mfadams at lbl.gov
Fri Dec 15 08:17:55 CST 2023


Hi Vittorio,

PETSc does provide support for your application and some of us (eg, me and
Matt) work with fusion PIC applications.

1) I am not sure how you handle boundary conditions with a Cartesian grid
so let me give two responses:

1.1) With Cartesian grids, geometric multigrid may be usable and that can
be fast and easier to use.
PETSc supports geometric and algebraic multigrid, including interfaces to
third party libraries like hypre.
Hypre is an excellent solver, but you can probably use CG as your KSP
method instead of GMRES.

1.2) PETSc provides support for unstructured mesh management and
discretizations and you switch to an unstructured grid, but I understand we
all have priorities.
Unstructured grids are probably a better long term solution for you.

2) PETSc is portable with linear algebra back-ends that execute on any
"device".
Our OpenMP support is only through the Kokkos back-end and we have custom
CUDA and HIP backends that are built on vendor libraries.
The Kokkos back-end also supports CUDA, HIP and SYCL and we rely on Kokkos
any other architectures at this point.
BTW, the Kokkos back-end also has an option to use vendor back-ends or
Kokkos Kernels for linear algebra and they are often better than the
vendors libraries.

Hope this helps,
Mark


On Fri, Dec 15, 2023 at 12:41 AM Vittorio Sciortino <
vittorio.sciortino at uniba.it> wrote:

>
> Dear PETSc developers,
>
> My name is Vittorio Sciortion, I am a PhD student in Italy and I am
> really curious about the applications and  possibilities of your
> library. I would ask you two questions about PETSc.
>
> My study case consists in the development of a 2D electrostatic Particle
> In Cell code which simulates a plasma interacting with the shaped
> surface of adjacent divertor mono-blocks.
> This type of scenario requires to solve the electro-static Poisson
> equation on the whole set of grid nodes (a cartesian grid) applying some
> boundary conditions.
> Currently, we are using the KSPSolve subroutine set to apply the gmres
> iterative method in conjunction with hypre (used as pre-conditioner).
> Some boundary conditons are necessary for our specific problem
> (Dirichlet and Neumann conditions on specific line of points).
> I have two small curiosity about the possibilities offered by your
> library, which is very interesting:
>
> 1. are we using the best possible pair to solve our problem?
>
> 2. currently, PETSc is compiled with openMP parallelization and the
> iterative method is executed on the CPU.
> Is it possible to configure the compilation of our library to execute
> these iterations on a nVidia GPU? Which are the best compilation options
> that you suggest for your library?
>
> thank you in advance
> Greetings
> Vittorio Sciortino
> PhD student in Physics
> Bari, Italy
>
> Recently, I sent a subscribe request to the users mailing list using
> another e-mail, because this one could be deactivated in two/three
> months.  private email: vsciortino.phdcourse at gmail.com
> --
> Vittorio Sciortino
>
> ________________________________________________________________________________________________
> Sostieni la formazione e la ricerca universitaria con il tuo 5 per mille
> all'Università di Bari.
> Firma la casella "Finanziamento della ricerca scientifica e della
> Università"
> indicando il codice fiscale 80002170720.
>
> Il tuo contributo può fare la differenza: oggi più che mai!
>
> ________________________________________________________________________________________________
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231215/c4d60f61/attachment.html>


More information about the petsc-users mailing list