[petsc-dev] Fwd: Nightly tests quick summary page
Karl Rupp
rupp at mcs.anl.gov
Thu Jan 24 10:22:18 CST 2013
Hi,
On 01/24/2013 09:47 AM, Jed Brown wrote:
>
> On Thu, Jan 24, 2013 at 9:39 AM, Karl Rupp <rupp at mcs.anl.gov
> <mailto:rupp at mcs.anl.gov>> wrote:
>
> Testing for the same number of iterations is - as you mentioned - a
> terrible metric. I see this regularly on GPUs, where rounding modes
> differ slightly from CPUs. Running a fixed (low) number of
> iterations is certainly the better choice here, provided that the
> systems we use for the tests are neither too ill-conditioned nor too
> well-behaved so that we can eventually reuse the tests for some
> preconditioners.
>
>
> That's something that certainly makes sense for tests of functionality,
> but not for examples/tutorials that new users should encounter, lest
> they get the impression that they should use such options.
I consider it good practice to keep tests and tutorials separate, just
as it is suggested by our folder hierarchy (even though there may be no
strict adherence to it right now). Guiding the user towards using a
certain functionality is so fundamentally different from testing a
certain functionality for various inputs and/or corner cases.
For example, in ViennaCL I have a test that checks the operation
A = B * C
for dense matrices A, B, and C. In a tutorial, I only show about three
uses of this functionality. In the test, however, all combinations of
transpose, submatrices, memory-layouts, etc. are tested, leading to
about 200 variations of this operation. I can't think of any reasonable
way of merging the two - so I simply optimize them for their particular
purpose. So, we can only check the tutorials on whether they execute
properly (i.e. input files found, convergence achieved at all, etc.),
but they are inherently unsuitable for thorough testing.
> Do you have much experience with code coverage tools? It would be very
> useful if we could automatically identify which tests were serving no
> useful purpose. The amount of time taken by make alltests is currently
> unreasonable, and though parallel testing will help, I suspect there are
> also many tests that could be removed (and time-consuming tests that
> could be made much faster without affecting their usefulness).
Similar to what Matt said, I tried gcov some long time ago when I was a
programming-greenhorn. I wasn't satisfied with the results I got at that
time, so I designed 'implementation-aware' tests instead which gave
satisfactory results. Note to myself: Reevaluate gconv.
Best regards,
Karli
More information about the petsc-dev
mailing list