[petsc-users] support for mixed block size matrices/AIM in PETSc?

Satish Balay balay at mcs.anl.gov
Mon Jul 24 07:33:11 CDT 2023


One way to boost performance [of MatVec etc] in sparse matrices with
blocks is by avoiding loading (from memory to cpu registers) of
row/col indices for the blocks - when possible.  [the performance
boost here come by the fact that the memory bandwidth requirements get
reduced]

So we have BAIJ matrix - where only one row,col value is used for a
block of values.  And as you've noted - this format requires a fixed
block size for the entire matrix.

Alternative support in PETSc is within AIJ matrix (enabled by default)
- where it scans consecutive rows - to see if they share the same
column values (i.e inodes) - and reuses them for these rows.

A matrix with varying blocks might benefit from this. To check - for ex:

[balay at pj01 tutorials]$ ./ex10 -f0 ~/datafiles/matrices/cfd.2.10 -f1 ~/datafiles/matrices/cfd.2.10 -info |grep -i inode
[0] <mat> MatSeqAIJCheckInode(): Found 24576 nodes of 122880. Limit used: 5. Using Inode routines
[0] <mat> MatSeqAIJCheckInode(): Found 24576 nodes of 122880. Limit used: 5. Using Inode routines

Satish

On Mon, 24 Jul 2023, Daniel Stone wrote:

> Hello PETSc Users/Developers,
> 
> A collegue of mine is looking into implementing an adaptive implicit method
> (AIM) over
> PETSc in our simulator. This has led to some interesting questions about
> what can
> be done with blocked matrices, which I'm not able to answer myself - does
> anyone have
> any insight?
> 
> Apparently it would be ideal if we could find a matrix (and vector) type
> that supports a kind
> of mixed block size:
> 
> "For AIM [...] we will have matrix elements of various shapes: 1x1, 1xN,
> Nx1 and NxN. [...]. The solution and residual will be a mix of 1 and N
> variable/cell block"
> 
> There are ideas for how to implement what we want using the
> fixed-block-size objects we
> understand well, but if anything like the above exists it would be very
> exciting.
> 
> 
> Thanks,
> 
> Daniel
> 



More information about the petsc-users mailing list