Hey Jed, The overhead is big. Here are some numbers I generated which prompted Matt's email.
All the total run times reported are almost entirely associated with matrix assembly. All builds used --with-debugging=yes Time (sec): 6.285e+00 [petsc v3.2] Time (sec): 1.966e+02 [petsc v3.4] Time (sec): 8.960e+00 [petsc v3.4 with a hacked checkptr.c which skips the checking] Calls to MatSetValue 5955066 Calls to MatSetValues 11910132 [0] MatAssemblyEnd_SeqAIJ(): Matrix size: 13473 X 13473; storage space: 0 unneeded,1359333 used [0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0 [0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 226 Cheers, Dave On 11 September 2013 15:51, Jed Brown <[email protected]> wrote: > What about a run-time option to enable it? > > What is the actual overhead for an application that calls MatSetValues > with fine granularity? > On Sep 11, 2013 6:13 AM, "Matthew Knepley" <[email protected]> wrote: > >> The new CheckPointer() is 1000s of times slower than the previous. We may >> want to have a configure option to disable it. >> >> I am not convinced, since the only function that it really matters for is >> MatSetValues(), which is a problematic interface function. >> >> Matt >> >> -- >> 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 >> >
