首页 > 解决方案 > 对于某些域大小,forall 未完成

问题描述

我有以下代码对我学生的一个模块做奇怪的事情:

forall i in cpus.domain {
    cpus[i] = new CPU(schedulerToCPUs, "" + i);
    begin {
        cpus[i].start();
    }
    writeln("launched CPU: ", i);
}
writeln("done launching CPUs!");

打印出来的是它已经启动了所有的 CPU,但它没有达到writeln()最后。这只发生在大小cpus.domain大于 1 时。(当 CPU 的数量很大时似乎没问题,比如 50。我主要在 3 上进行测试。)

CPU类是我自己设计的。这只发生在这个学生的项目中。我不确定是什么导致了这个问题。我真的想要一些关于我可以从哪里开始寻找的建议。

标签: chapel

解决方案


推荐阅读