[petsc-users] Equivalent of all_reduce for sparse matrices
marco restelli
mrestelli at gmail.com
Thu May 8 14:06:32 CDT 2014
2014-05-08 18:29 GMT+0200, Matthew Knepley <knepley at gmail.com>:
> On Thu, May 8, 2014 at 11:25 AM, marco restelli <mrestelli at gmail.com>
> wrote:
>
>> Hi,
>> I have a Cartesian communicator and some matrices distributed along
>> the "x" direction. I would like to compute an all_reduce operation for
>> these matrices in the y direction, and I wander whether there is a
>> PETSc function for this.
>>
>>
>> More precisely:
>>
>> a matrix A is distributed among processors 0 , 1 , 2
>> another A is distributed among processors 3 , 4 , 5
>> another A is distributed among processors 6 , 7 , 8
>> ...
>>
>> The x direction is 0,1,2; while the y direction is 0,3,6,...
>>
>> I would like to compute a matrix B = "sum of the matrices A" and a
>> copy of B should be distributed among processors 0,1,2, another copy
>> among 3,4,5 and so on.
>>
>> A way of doing this is getting the matrix coefficients, broadcasting
>> them along the y direction and summing them in the matrix B; maybe
>> however there is already a PETSc function doing this.
>>
>
> There is nothing like this in PETSc. There are many tools for this using
> dense
> matrices in Elemental, but I have not seen anything for sparse matrices.
>
> Matt
>
OK, thank you.
Now, to do it myself, is MatGetRow the best way to get all the local
nonzero entries of a matrix?
Marco
More information about the petsc-users
mailing list