[GHC] #15999: Stabilise nofib runtime measurements
GHC
ghc-devs at haskell.org
Wed Dec 5 17:18:16 UTC 2018
#15999: Stabilise nofib runtime measurements
-------------------------------------+-------------------------------------
Reporter: sgraf | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone: ⊥
Component: NoFib | Version: 8.6.2
benchmark suite |
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets: #5793 #9476
| #15333 #15357
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
With Phab:D4989 (cf. #15357) having hit `nofib` master, there are still
many benchmarks that are unstable. I identified three causes for
unstability in https://ghc.haskell.org/trac/ghc/ticket/5793#comment:38.
With system overhead mostly out of the equation, there are still two
related tasks left:
1. Identify benchmarks with GC wibbles. Plan: Look at counted instructions
while varying heap size with just one generation. A wibbling benchmark
should have quite diverse sampled maximum residency (as opposed to a
microbenchmark, which should have quite stable instruction count).
Then fix these by iterating `main` 'often enough'. Maybe look at total
bytes allocated for that, we want this to be monotonically declining as
the initial heap size grows.
2. Now, all benchmarks should have stable instruction count. If not, maybe
there's another class of benchmarks I didn't identify yet in #5793. Of
these benchmarks, there are a few, like `real/eff/CS`, that still have
highly unstable runtimes. Fix these 'microbenchmarks' by hiding them
behind a flag.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/15999>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list