[petsc-users] local dimensions

Jed Brown jed at jedbrown.org
Sun Dec 11 17:35:14 CST 2016


Massoud Rezavand <msdrezavand at gmail.com> writes:

> Dear PETSc team,
>
> What is the difference between the following two methods to get the local
> dimensions of a square matrix A? If they do the same, which one is
> recommended? Should I use MPI_Scan after both?

I would typically use 1 because it's fewer calls and automatically uses
the correct communicator.  You can use MatGetOwnershipRange() instead of
manually using MPI_Scan.

> 1)
>
> PetscInt local_size = PETSC_DECIDE;
>
> MatSetSizes(A, local_size, local_size, N, N);
>
>
> 2)
>
> PetscInt local_size = PETSC_DECIDE;
>
> PetscSplitOwnership(PETSC_COMM_WORLD, &local_size, &N);
>
> MPI_Scan(&local_size, &end_row, 1, MPIU_INT, MPI_SUM, PETSC_COMM_WORLD);
> begin_row = end_row - local_size;
>
>
> Thanks in advance,
> Massoud
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 800 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161211/8dbca656/attachment.pgp>


More information about the petsc-users mailing list