考虑在处理器核心上完成任务的时间是平均m
和标准差s
的分布。如果在n
核心上运行相同的任务,那么完成任务所需的时间的平均值和标准差是多少? (当其中一个核完成任务时,任务完成)
答案 0 :(得分:1)
这是一个统计问题,而不是其他任何问题。如果没有关于单个任务需要完成的时间t
的分布函数的信息,我只能给你一个提示:你需要为{{1}计算最小t
的分布函数您的任务,如here所示。然后使用它可以计算平均值和标准偏差。
编辑:
是否 - 以及多少 - 使用多个内核是值得的,取决于几个方面:
您需要做什么。如果 使用不同的输入运行相同的程序,则启动多个实例会产生 lot 。它可能不会将总时间减少到n
,并且每个实验仍然需要至少与之前一样多的时间,但整个系列所需的时间将显着减少。
另一方面,如果你希望用例如同样的任务来运行一个不同的种子,并保持收敛最快的种子,你可能会获得更少,正如我的答案的第一部分估计的那样。
您的任务并行化程度如何。 1/n
完全独立的任务是理想的情况。具有多个同步点等的n
个线程不将近乎有效。
您的硬件处理多项任务的能力如何。例如,如果这些任务中的每一个都需要大量内存,那么使用单个核心可能会比通过一次运行多个实例迫使系统使用交换空间/页面文件/操作系统调用的任何内容更快。 / p>