Hi Barry and others For the iterative solver, you mentioned there is much less to gain by reording. However, you also said we should have a reasonable ordering before generating the linear system.
Suppose I already have already assembled a large system in parallel (with bad bandwidth), will reordering the system help to solve the system or not? Do we have to do this before the assembling to PETSs solver? In this case, I think we will need to renumbering all the nodes and/or cells, not only processor-wise but globally considering the ghost cells. Is there alternative way such as explicit asking PETSc to reordering the assembled linear system? Thank you. Ravi -----Original Message----- From: [email protected] [mailto:petsc-users-bounces at mcs.anl.gov]On Behalf Of Barry Smith Sent: Friday, March 13, 2009 6:55 PM To: PETSc users list Subject: Re: matrix assembling time On Mar 13, 2009, at 12:48 PM, Ravi Kannan wrote: > Hi, > This is Ravi Kannan from CFD Research Corporation. One basic > question on > the ordering of linear solvers in PETSc: If my A matrix (in AX=B) is a > sparse matrix and the bandwidth of A (i.e. the distance between non > zero > elements) is high, does PETSc reorder the matrix/matrix-equations so > as to > solve more efficiently. Depends on what you mean. All the direct solvers use reorderings automatically to reduce fill and hence limit memory and flop usage. The iterative solvers do not. There is much less to gain by reordering for iterative solvers (no memory gain and only a relatively smallish improved cache gain). The "PETSc approach" is that one does the following 1) partitions the grid across processors (using a mesh partitioner) and then 2) numbers the grid on each process in a reasonable ordering BEFORE generating the linear system. Thus the sparse matrix automatically gets a good layout from the layout of the grid. So if you do 1) and 2) then no additional reordering is needed. Barry
