Massoud Rezavand <[email protected]> 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

Attachment: signature.asc
Description: PGP signature

Reply via email to