Re: [petsc-users] PetscSF Fortran interface

2023-01-10 Thread Nicholas Arnold-Medabalimi
Hi Junchao Apologies for not seeing that. Usually, the fortran90-specific functions have notes on the original C version, and I also can't see PetscSFCreateSectionSFF90 on the function list on the doc site. Thanks so much, and I saw your notes on the merge request. I don't suppose

Re: [petsc-users] [EXTERNAL] GPU implementation of serial smoothers

2023-01-10 Thread Mark Lohry
Thanks Stefano and Chonglin! DILU in openfoam is our block Jacobi ilu subdomain solvers > are you saying that -pc_type gang -mg_levels_pc_type -mg_levels_ksp_type richardson gives you something exactly equivalent to DILU? On Tue, Jan 10, 2023 at 4:04 PM Zhang, Chonglin wrote: > I am using

Re: [petsc-users] PetscSF Fortran interface

2023-01-10 Thread Junchao Zhang
Hi, Nicholas, It seems we have implemented it, but with another name, PetscSFCreateSectionSFF90, see https://gitlab.com/petsc/petsc/-/merge_requests/5386 Try it to see if it works! --Junchao Zhang On Tue, Jan 10, 2023 at 11:45 AM Nicholas Arnold-Medabalimi < narno...@umich.edu> wrote: >

Re: [petsc-users] [EXTERNAL] GPU implementation of serial smoothers

2023-01-10 Thread Zhang, Chonglin
I am using the following in my Poisson solver running on GPU, which were suggested by Barry and Mark (Dr. Mark Adams). -ksp_type cg -pc_type gamg -mg_levels_ksp_type chebyshev -mg_levels_pc_type jacobi On Jan 10, 2023, at 3:31 PM, Mark Lohry wrote: So what are people using for GAMG

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Stefano Zampini
DILU in openfoam is our block Jacobi ilu subdomain solvers On Tue, Jan 10, 2023, 23:45 Barry Smith wrote: > > The default is some kind of Jacobi plus Chebyshev, for a certain class > of problems, it is quite good. > > > > On Jan 10, 2023, at 3:31 PM, Mark Lohry wrote: > > So what are people

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Barry Smith
The default is some kind of Jacobi plus Chebyshev, for a certain class of problems, it is quite good. > On Jan 10, 2023, at 3:31 PM, Mark Lohry wrote: > > So what are people using for GAMG configs on GPU? I was hoping petsc today > would be performance competitive with AMGx but it sounds

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Mark Lohry
So what are people using for GAMG configs on GPU? I was hoping petsc today would be performance competitive with AMGx but it sounds like that's not the case? On Tue, Jan 10, 2023 at 3:03 PM Jed Brown wrote: > Mark Lohry writes: > > > I definitely need multigrid. I was under the impression that

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Jed Brown
Mark Lohry writes: > I definitely need multigrid. I was under the impression that GAMG was > relatively cuda-complete, is that not the case? What functionality works > fully on GPU and what doesn't, without any host transfers (aside from > what's needed for MPI)? > > If I use -ksp-pc_type gamg

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Mark Lohry
> > BTW, on unstructured grids, coloring requires a lot of colors and thus > many times more bandwidth (due to multiple passes) than the operator itself. I've noticed -- in AMGx the multicolor GS was generally dramatically slower than jacobi because of lots of colors with few elements. You can

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Jed Brown
The joy of GPUs. You can use sparse triangular kernels like ILU (provided by cuBLAS), but they are so mindbogglingly slow that you'll go back to the drawing board and try to use a multigrid method of some sort with polynomial/point-block smoothing. BTW, on unstructured grids, coloring requires

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Mark Lohry
Well that's suboptimal. What are my options for 100% GPU solves with no host transfers? On Tue, Jan 10, 2023, 2:23 PM Barry Smith wrote: > > > On Jan 10, 2023, at 2:19 PM, Mark Lohry wrote: > > Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi if >> the node size is not

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Barry Smith
> On Jan 10, 2023, at 2:19 PM, Mark Lohry wrote: > >> Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi if >> the node size is not uniform). The are good choices for scale-resolving CFD >> on GPUs. > > I was hoping you'd know :) pbjacobi is underperforming ilu by a

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Mark Lohry
> > Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi if > the node size is not uniform). The are good choices for scale-resolving CFD > on GPUs. > I was hoping you'd know :) pbjacobi is underperforming ilu by a pretty wide margin on some of the systems i'm looking at. We

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Barry Smith
We don't have colored smoothers currently in PETSc. > On Jan 10, 2023, at 12:56 PM, Jed Brown wrote: > > Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi if the > node size is not uniform). The are good choices for scale-resolving CFD on > GPUs. > > Mark Lohry

Re: [petsc-users] Eliminating rows and columns which are zeros

2023-01-10 Thread Barry Smith
Yes, after the solve the x will contain correct values for ALL the locations including the (zeroed out rows). You use case is exactly what redistribute it for. Barry > On Jan 10, 2023, at 11:25 AM, Karthikeyan Chockalingam - STFC UKRI > wrote: > > Thank you Barry. This is great! > >

Re: [petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Jed Brown
Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi if the node size is not uniform). The are good choices for scale-resolving CFD on GPUs. Mark Lohry writes: > I'm running GAMG with CUDA, and I'm wondering how the nominally serial > smoother algorithms are implemented on

Re: [petsc-users] PetscSF Fortran interface

2023-01-10 Thread Nicholas Arnold-Medabalimi
Er to be honest I still can't get my stub to compile properly, and I don't know how to go about making a merge request. But here is what I am attempting right now. Let me know how best to proceed Its not exactly clear to me how to setup up the remote offset properly. in

Re: [petsc-users] PetscSF Fortran interface

2023-01-10 Thread Junchao Zhang
Hi, Nicholas, Could you make a merge request to PETSc and then our Fortran experts can comment on your MR? Thanks. --Junchao Zhang On Tue, Jan 10, 2023 at 11:10 AM Nicholas Arnold-Medabalimi < narno...@umich.edu> wrote: > Hi Junchao > > I think I'm almost there, but I could use some

[petsc-users] GPU implementation of serial smoothers

2023-01-10 Thread Mark Lohry
I'm running GAMG with CUDA, and I'm wondering how the nominally serial smoother algorithms are implemented on GPU? Specifically SOR/GS and ILU(0) -- in e.g. AMGx these are applied by first creating a coloring, and the smoother passes are done color by color. Is this how it's done in petsc AMG?

Re: [petsc-users] PetscSF Fortran interface

2023-01-10 Thread Nicholas Arnold-Medabalimi
Hi Junchao I think I'm almost there, but I could use some insight into how to use the PETSC_F90_2PTR_PROTO and F90Array1dAccess for the remoteOffset parameter input so if another function comes up, I can add it myself without wasting your time. I am very grateful for your help and time.

Re: [petsc-users] Eliminating rows and columns which are zeros

2023-01-10 Thread Karthikeyan Chockalingam - STFC UKRI via petsc-users
Thank you Barry. This is great! I plan to solve using ‘-pc_type redistribute’ after applying the Dirichlet bc using MatZeroRowsColumnsIS(A, isout, 1, x, b); While I retrieve the solution data from x (after the solve) – can I index them using the original ordering (if I may say that)? Kind

Re: [petsc-users] Eliminating rows and columns which are zeros

2023-01-10 Thread Barry Smith
https://petsc.org/release/docs/manualpages/PC/PCREDISTRIBUTE/#pcredistribute -pc_type redistribute It does everything for you. Note that if the right hand side for any of the "zero" rows is nonzero then the system is inconsistent and the system does not have a solution. Barry > On Jan

[petsc-users] Eliminating rows and columns which are zeros

2023-01-10 Thread Karthikeyan Chockalingam - STFC UKRI via petsc-users
Hello, I am assembling a MATIJ of size N, where a very large number of rows (and corresponding columns), are zeros. I would like to potentially eliminate them before the solve. For instance say N=7 0 0 0 0 0 0 0 0 1 -1 0 0 0 0 0 -1 2 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0