【发布时间】:2015-01-12 19:51:29
【问题描述】:
我的目标是在一个集群上并行运行 10,000 个左右的 Julia 编码模拟(每个模拟独立于所有其他模拟)。每个模拟都有一个要输出的数字(以及关于哪个模拟产生了这个数字的 3 列信息)。因此,强制每个模拟打印在单独的文件上对我来说听起来有点愚蠢。
我是否可以安全地要求所有这些模拟写入同一个文件,或者如果两个模拟恰好同时写入文件,这可能会导致错误?什么是最好的解决方案?
【问题讨论】:
-
如果所有这些模拟在一个程序中一起运行,只要您处理代码中的任何争用,您就可以写入文件。如果您有单独的实例运行相同的代码,我建议创建一个中间层来执行实际的编写并处理那里的任何资源争用。
-
所有模拟都相互独立运行。 10000个模拟中,有4组2500个模拟。在每个集合中,参数完全相同(只有种子不同),而参数在集合之间不同。我不知道什么是中间层,而且我认为我并不真正理解资源争用的概念。谢谢!
-
对于这种情况,可以在函数内执行模拟,并且可以并行生成 10,000 个函数实例。然后主程序将负责收集函数每个实例的输出并将结果写入文件。 parallel computing 上的 Julia 文档详细介绍了如何并行生成任务并收集结果。
标签: file parallel-processing julia