[petsc-dev] model for parallel ASM

Mark Adams mfadams at lbl.gov
Sat Jan 9 18:06:13 CST 2021


On Sat, Jan 9, 2021 at 5:14 PM Barry Smith <bsmith at petsc.dev> wrote:

>
>   If it is non-overlapping do you mean block Jacobi with multiple blocks
> per MPI rank? (one block per rank is trivial and should work now).
>

Yes, only one MPI rank.


>
>   If you mean block Jacobi with multiple blocks per MPI rank you should
> start with the PCApply_BJacob_Multiblock(). It monkey's with pointers into
> the vector and then calls KSPSolve() for each block. So you just need a
> non-blocking KSPSolve(). What KSP and what PC do you want to use per block?


SuperLU


> If you want to use LU then I think you proceed largely as I said a few
> days ago. All the routines in MatSolve_SeqAIJCUSparse can be made
> non-blocking as discussed with each one using its own stream (supplied with
> a hack or with approaches from Junchao and Jacob in the future possibly;
> but a hack is all that is needed for this trivial case.)
>

I'm not sure what goes into this hack.

I am using fieldsplit and I now see that I don't specify asm, just lu, so I
guess PCApply_FieldSplit is the target

    KSP Object: 1 MPI processes
      type: preonly
      maximum iterations=10000, initial guess is zero
      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
      left preconditioning
      using NONE norm type for convergence test
    PC Object: 1 MPI processes
      type: fieldsplit
        FieldSplit with ADDITIVE composition: total splits = 2
        Solver info for each split is in the following KSP objects:
      Split number 0 Defined by IS
      KSP Object: (fieldsplit_e_) 1 MPI processes
        type: preonly
        maximum iterations=10000, initial guess is zero
        tolerances:  relative=1e-05, absolute=1e-50, divergence=10000.
        left preconditioning
        using NONE norm type for convergence test
      PC Object: (fieldsplit_e_) 1 MPI processes
        type: lu
          out-of-place factorization
          tolerance for zero pivot 2.22045e-14
          matrix ordering: nd
          factor fill ratio given 5., needed 1.30805
            Factored matrix follows:
              Mat Object: 1 MPI processes
                type: seqaij
                rows=448, cols=448
                package used to perform factorization: petsc
                total: nonzeros=14038, allocated nonzeros=14038
                  using I-node routines: found 175 nodes, limit used is 5
        linear system matrix = precond matrix:
        Mat Object: (fieldsplit_e_) 1 MPI processes
          type: seqaij
          rows=448, cols=448
          total: nonzeros=10732, allocated nonzeros=10732
          total number of mallocs used during MatSetValues calls=0
            using I-node routines: found 197 nodes, limit used is 5
      Split number 1 Defined by IS
      KSP Object: (fieldsplit_i1_) 1 MPI processes
 ....
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20210109/3671f038/attachment-0001.html>


More information about the petsc-dev mailing list