我正在运行一个非常并行的软件。我需要运行大约 400 个完全不相互依赖的命令,所以我只是将它们分叉出来,并希望拥有更多的 CPU 意味着每单位时间执行更多的进程。
代码:
foreach cmd ($CMD_LIST)
$cmd & #fork it off
end
很简单。这是我的测试结果:
在 1 个 CPU 上,这需要 1006 秒,即 16 分 46 秒。
使用 10 个 CPU,这需要 600 秒或 10 分钟!
为什么不将花费的时间(大约)除以 10?感觉这里被骗了=(
编辑 - 当然,我愿意提供您想知道的其他详细信息,只是不确定什么是相关的,因为用最简单的术语来说,这就是我正在做的事情。