多核处理器上的Haskell运行时的结构

问题描述:

我知道Haskell运行时在每个内核上都会创建一个操作系统线程。轻量级线程/用户线程然后由运行时调度到这些预先部署的OS线程上。大致。多核处理器上的Haskell运行时的结构

但是,Haskell运行时结构是如何构造的 - 它是单块的,还是由单独的部分组成?

我真正想知道的是RT本身跨越核心的可扩展性和可分配性 - 例如,理论上我是否拥有1000核心系统,并在核心的5%上启动Haskell RT(50个独立或分布式RTs)?

+9

问题太多。 –

+0

@ StephenC:但我认为他们是真正问题的后续问题,所以我编辑过,以减少混乱并强调真正的问题。 – AndrewC

+0

1000核心共享内存系统必须具有高节点间惩罚的NUMA,因此问题可能在于已经构建了多少NUMA支持。@J Fritsch:您应该更具体 - 您当前的问题太模糊。答案将取决于机器的特定架构和您的计算问题。 – nponeccop

+0

不是真的符合我的问题。我认为,在最后的结果和最大的规模上,RT必须本身可分配并准备好用于多核。不仅为其执行的应用程序启用并行处理。 –

+0

@JFritsch我认为你需要更仔细地阅读(这个链接)这个答案。 –

+0

@JFritsch上面的链接描述了多核和分布式系统上运行时的体系结构。它们是这些信息的主要参考材料。 –