[GHC] #14935: Vary default RTS settings so that performance does not degrade with increasing number of capabilities

#14935: Vary default RTS settings so that performance does not degrade with increasing number of capabilities -------------------------------------+------------------------------------- Reporter: YitzGale | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- When the number of capabilities increases to 32 or more, which is common nowadays, performance of GHC-compiled applications, hence also of GHC itself, begins to degrade considerably with default RTS settings. It should not be required to optimize RTS settings manually to get applications to be usable. By default, GHC should use at least sane RTS settings appropriate for the number of capabilities, even if not optimized. See: https://www.reddit.com/r/haskell/comments/83e6dq/need_advice_on_compile_and_... for some of the RTS settings you need to change to get things working. Here is a sample use case - we needed to increase memory by a lot to work around #14928. We don't care about extra cores, but we get them automatically when we enlarge our EC2 instance to have enough memory. The compile is run by deployment engineers - non-Haskell-programmers - via build tools that normally do not give easy access to RTS options on the individual {{{ghc}}} commands that run during the build ({{{yesod keter}}} in this case). We just want the build to run no worse than if there were 4 cores, or even 1 core. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14935 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#14935: Vary default RTS settings so that performance does not degrade with increasing number of capabilities -------------------------------------+------------------------------------- Reporter: YitzGale | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): I can't quite tell whether this is a general request for the runtime (which would apply to all GHC-compiled executables by default) or GHC in particular. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14935#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

I can't quite tell whether this is a general request for the runtime (which would apply to all GHC-compiled executables by default) or GHC in
#14935: Vary default RTS settings so that performance does not degrade with increasing number of capabilities -------------------------------------+------------------------------------- Reporter: YitzGale | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.2.2 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by YitzGale): Replying to [comment:1 bgamari]: particular. You're right, I conflated the two. They're both important. And GHC is after all an instance of an application compiled by GHC. Should this be two separate tickets? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14935#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC