Dear all,
I may have stumbled upon a bug in the Criterion package. When running
the attached Haskell program (Benchmark.hs, a simple test case) on
multiple cores (with +RTS -N, +RTS -N2, +RTS -N3 etc.) it sooner or
later crashes with the following exception:
Benchmark: thread blocked indefinitely in an MVar operation
With profiling support enabled and run with the xc flag I get the
following output before the crash:
*** Exception (reporting due to +RTS -xc): (THUNK_STATIC), stack trace:
Statistics.Resampling.Bootstrap.bootstrapBCA,
called from Main.main,
called from Main.CAF
--> evaluated by: Main.main,
called from Main.CAF
*** Exception (reporting due to +RTS -xc): (THUNK_STATIC), stack trace:
Statistics.Resampling.Bootstrap.bootstrapBCA,
called from Main.main
*** Exception (reporting due to +RTS -xc): (THUNK_STATIC), stack trace:
Statistics.Resampling.Bootstrap.bootstrapBCA,
called from Main.main
*** Exception (reporting due to +RTS -xc): (THUNK_STATIC), stack trace:
Statistics.Resampling.Bootstrap.bootstrapBCA,
called from Main.main,
called from Main.CAF
I have tested this with GHC versions 7.0.4 and 7.4.2 and Criterion 0.6.0.1.
So I am not sure if this is a bug in Criterion itself, the Statistics
package or any dependency or if I am doing something obviously wrong.
I would be grateful if someone could look into this as it is holding
me back from using Criterion for benchmarking my code.
Regards,
Till Berger
import Criterion.Main
test _ = ()
createBgroups num =
if (num >= 0) then (bench (show num) $ nf test ()):(createBgroups (num - 1))
else []
main = do
defaultMain (createBgroups 5000)
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe