<div dir="ltr">Hi, <div>I am using MatSetSizes() followed by MatLoad() to distribute the rows of a <b>sparse</b> matrix (<b>480000x480000</b>) across the processors. But it seems like the entire matrix is getting loaded in each of the processors instead of distributing it. What am I missing here?</div><div><div><b><br></b></div><div><b>code snippet:</b></div><div>    Mat         Js;<br>    MatType     type = MATMPIAIJ;<br>    PetscViewer viewerJ;<br>    PetscCall(PetscViewerBinaryOpen(PETSC_COMM_WORLD, "Js.dat", FILE_MODE_READ, &viewerJ)); <br>    PetscCall(MatCreate(PETSC_COMM_WORLD, &Js));<br>    PetscCall(MatSetSizes(Js, PETSC_DECIDE, PETSC_DECIDE, N, N));<br>    PetscCall(MatSetType(Js, type));<br>    PetscCall(MatLoad(Js, viewerJ));<br>    PetscCall(PetscViewerDestroy(&viewerJ));<br>    PetscCall(MatGetLocalSize(Js, &m, &n));<br>    PetscCall(MatGetSize(Js, &M, &N)); <br>    PetscPrintf(PETSC_COMM_WORLD, "Js,Local rows: %d, Local columns: %d\n", m, n);<br><div><br></div><div><b>Output </b>of  'mpiexec -n 4 ./check':</div></div></div><div>Js,Local rows: 480000, Local columns: 480000<br>Js,Local rows: 480000, Local columns: 480000<br>Js,Local rows: 480000, Local columns: 480000<br>Js,Local rows: 480000, Local columns: 480000<br></div><div><br></div><div><br></div></div>