[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