On Tue, Mar 17, 2009 at 11:41 AM, Ravi Kannan <span dir="ltr">&lt;<a href="mailto:rxk@cfdrc.com">rxk@cfdrc.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Barry and others<br>
<br>
For the iterative solver, you mentioned there is much less to gain by<br>
reording.<br>
However, you also said we should have a reasonable ordering before<br>
generating the linear system.<br>
<br>
Suppose I already have already assembled a large system in parallel (with<br>
bad bandwidth),<br>
will reordering the system help to solve the system or not?</blockquote><div><br>Possibly. However, why would you do that? <br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Do we have to do this before the assembling to PETSs solver?</blockquote><div><br>Not sure what you mean here. You can compute an ordering at any time.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
In this case, I think we will need to renumbering all the nodes and/or<br>
cells, not only processor-wise but globally considering the ghost cells.<br>
Is there alternative way such as explicit asking PETSc to reordering the<br>
assembled linear system?</blockquote><div><br>I do not see what you are asking here.<br><br>  Matt<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Thank you.<br>
<br>
Ravi<br>
<br>
<br>
-----Original Message-----<br>
From: <a href="mailto:petsc-users-bounces@mcs.anl.gov">petsc-users-bounces@mcs.anl.gov</a><br>
[mailto:<a href="mailto:petsc-users-bounces@mcs.anl.gov">petsc-users-bounces@mcs.anl.gov</a>]On Behalf Of Barry Smith<br>
Sent: Friday, March 13, 2009 6:55 PM<br>
To: PETSc users list<br>
Subject: Re: matrix assembling time<br>
<br>
<br>
<br>
On Mar 13, 2009, at 12:48 PM, Ravi Kannan wrote:<br>
<br>
&gt; Hi,<br>
&gt;    This is Ravi Kannan from CFD Research Corporation. One basic<br>
&gt; question on<br>
&gt; the ordering of linear solvers in PETSc: If my A matrix (in AX=B) is a<br>
&gt; sparse matrix and the bandwidth of A (i.e. the distance between non<br>
&gt; zero<br>
&gt; elements) is high, does PETSc reorder the matrix/matrix-equations so<br>
&gt; as to<br>
&gt; solve more efficiently.<br>
<br>
      Depends on what you mean. All the direct solvers use reorderings<br>
automatically<br>
to reduce fill and hence limit memory and flop usage.<br>
<br>
      The iterative solvers do not. There is much less to gain by<br>
reordering for iterative<br>
solvers (no memory gain and only a relatively smallish improved cache<br>
gain).<br>
<br>
    The &quot;PETSc approach&quot; is that one does the following<br>
1) partitions the grid across processors (using a mesh partitioner)<br>
and then<br>
2) numbers the grid on each process in a reasonable ordering<br>
BEFORE generating the linear system. Thus the sparse matrix<br>
automatically gets<br>
a good layout from the layout of the grid. So if you do 1) and 2) then<br>
no additional<br>
reordering is needed.<br>
<br>
    Barry<br>
<br>
<br>
</blockquote></div><br><br clear="all"><br>-- <br>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener<br>