[petsc-users] Newbie question : sequential and parallel storage, and memory estimation
lixin chu
lixin_chu at yahoo.com
Wed Feb 15 21:57:06 CST 2017
Hello,Newbie question again - data storage and distribution related this time
I have briefly looked at the user manual, and searched forum, trying to get some basic understanding of the data storage and distribution. Some questions I have:
1. Sequential vs. Parallel I assume that by 'sequential', we mean the matrix/vector is created in one process only ? Then if this correct, I can assume that 'parallel' means each process will create a sub-matrix/vector for itself ?
Will each process eventually have the complete matrix and the RHS vector after MatAssemblyBegin() and MatAssemblyEnd(), before solve starts ?
2. How the matrix/vector is split among the processes ? I think matrix will be split by blocks of rows ? Does PETSc equally divide the matrix rows (with the last taking the remainder ) ?
If I want to create the matrix in a parallel way, do I have to divide the rows equally, or different process can have different number of rows, and some may not have any rows ?
Does RHS vector also need to be split in the exactly same blocks of rows as the matrix A (same start and end row number for the same process) ?
3. MAT_STRUCTURALLY_SYMMETRIC Do I have to input the upper triangle portion of non zero values, or lower triangle is also fine ?
4. Given the matrix A and RHS b, data type and sparsity, is there a way to estimate the total RAM needed for the solve phase, let's say for GMRES algorithm ?
many thanks ! rgds
LX
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170216/e8d617df/attachment-0001.html>
More information about the petsc-users
mailing list