Hello

I've been running the SPEC CPU 2006 benchmarks under valgrind (doing some
work on my BBV generating plugin).

There are two benchmarks that have issues, and I thought I'd share them
here for future reference.

1). zeusmp - does not run

    It has a 1GB data segment, which valgrind cannot handle on a 32-bit
    CPU.

2). dealII - runs forever, never ending

    It took a while, but I tracked this down to a 64bit/80bit
    floating point issue.

    The code in the QGauss<1>::QGauss() function has some code like this:

    const long double tolerance = std::max (static_cast<long double>
       (std::numeric_limits<double>::epsilon() / 100),
       static_cast<long double>(std::numeric_limits<long
       double>::epsilon() *5));

     do {
       ....
       various fp operations
       ....
     } while (abs(p1/pp) > tolerance);


     The tolerance in this case is being set to ~2.22e-18, but the
     abs(p1/pp) value never gets below ~2.586e-17 under valgrind.

     This is similar to an issue that happens with the "art"
     benchmark on SPEC CPU 2000, but in the "art" case it only
     makes the code take longer to finish; this "dealII" problem
     makes the benchmark loop forever.


Vince


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to