[petsc-users] Using MatGetColumnVector() on multiprocess

Zhang, Hong hongzhang at anl.gov
Mon Nov 9 11:49:51 CST 2020


Things may go south in your computation made on A. To rule it out, I would check A directly to see if the results are correct for multiple processes.

Btw, MatGetColumnVector is efficient only for dense matrices. Why do you need it for sparse matrices?

Hong (Mr.)

On Nov 9, 2020, at 8:44 AM, Antoine Côté <Antoine.Cote3 at USherbrooke.ca<mailto:Antoine.Cote3 at USherbrooke.ca>> wrote:

Hi,

I would like to retrieve the values of a column in a sparse Mat created with DMCreateMatrix(). I currently use MatGetColumnVector() to store values in a Vec "A". A computation is later made on each value in "A", and the results are stored in another Vec "B" (that was initialized at "0.0" using VecSet()).

Code works fine on a single process. When I try multiple processes, some values are ignored i.e. Vec "B" contains the right results for some positions, while others stay at "0.0". I suspect it is because MatGetColumnVector() is "Not Collective".

What would be the best workaround?

Thank you very much,

Antoine Côté

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20201109/b09320bb/attachment-0001.html>


More information about the petsc-users mailing list