4

I understand that the Haskell runtime creates an OS thread on every core or so. Lightweight threads / user threads are then scheduled by the runtime onto these pre-deployed OS threads. Roughly.

But how is the Haskell runtime structured - is it monolithic, or made up of seperate parts?

What I really want to know is how scalable and distributable the RT itself is across cores - for example, can I in theory have a 1000 core system and start a Haskell RT on 5% of the cores (either as 50 independent or distributed RTs)?

Don Stewart
  • 137,316
  • 36
  • 365
  • 468
J Fritsch
  • 3,338
  • 1
  • 18
  • 40
  • 9
    Too many questions. – Stephen C Sep 22 '12 at 11:36
  • @ StephenC: But I think they were run-up questions to the real issue, so I've edited to reduce clutter and emphasise the real question. – AndrewC Sep 22 '12 at 14:07
  • 1000-core shared memory systems must be NUMA with high inter-node penalties so the question may be how much NUMA support is already built in. @J Fritsch: You should be more specific - your current question is too vague. The answer will depend on particular architecture of the machine at hand and on your computational problem. – nponeccop Sep 22 '12 at 14:43
  • @nponeccop I don;t think about a specific system. I recently read that e.g. the Erlang VM itself should be getting ready soon to be distributable or to have multiple (communicating?) instances running each on a separate core. http://www.macs.hw.ac.uk/~trinder/RELEASEfactsheet.pdf – J Fritsch Sep 22 '12 at 15:11

1 Answers1

4

Design of the multicore runtime:

Cloud Haskell (distributed Haskell):

Don Stewart
  • 137,316
  • 36
  • 365
  • 468
  • Not really matching my question. I think that in last consequence and largest scale the RT must be itself distributable and ready for multicore. Not only enabling parallel processing for the applications that it executes. – J Fritsch Sep 22 '12 at 16:23
  • @JFritsch I think you need to read (the links in) this answer more carefully. – Daniel Wagner Sep 22 '12 at 19:22
  • @JFritsch the links above describe the architecture of the runtime on multicore and distributed systems. They are the primary reference material for such information. – Don Stewart Sep 22 '12 at 19:53
  • Thanks. I found a better starting point though: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts – J Fritsch Sep 22 '12 at 20:01