On Tue, Jan 10, 2012 at 5:28 PM, Geoffrey Irving <irving at naml.us> wrote:
> On Tue, Jan 10, 2012 at 5:52 AM, Jed Brown <jedbrown at mcs.anl.gov> wrote: > > On Tue, Jan 10, 2012 at 00:08, Geoffrey Irving <irving at naml.us> wrote: > >> > >> For now, I believe I can get away with a single linear iteration. > > > > > > Single linear iteration (e.g. one GMRES cycle) or single linear solve > (e.g. > > one Newton step)? > > Single linear solve (one Newton step). > > >> Even if I need a few, the extra cost of the first linear solve appears > >> to be drastic. However, it appears you're right that this isn't due > >> to preconditioner setup. The first solve takes over 50 times as long > >> as the other solves: > >> > >> step 1 > >> dt = 0.00694444, time = 0 > >> cg icc converged: iterations = 4, rtol = 0.001, error = 9.56519e-05 > >> actual L2 residual = 1.10131e-05 > >> max speed = 0.00728987 > >> END step 1 0.6109 s > > > > > > How are you measuring this time? In -log_summary, I see 0.02 seconds in > > KSPSolve(). Maybe the time you see is because there are lots of page > faults > > until you get the code loaded into memory? > > It turns out the initial overhead was due to a bug in my computation > of row lengths. It's much faster with the bug fixed. Is there a way > to detect reallocations so as avoid this kind of error in future? I > looked through the seqaij code and didn't see anything obvious, and > also couldn't find a function to compute the actual final row lengths. > MatSetOption(A, MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_TRUE); http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Mat/MatSetOption.html Matt > Thanks, > Geoffrey > -- What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead. -- Norbert Wiener -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120111/3542a47c/attachment.htm>
