【问题标题】:Appending text file for parallel simulation output为并行仿真输出附加文本文件
【发布时间】:2017-02-06 20:23:46
【问题描述】:

我正在使用多核系统运行 R 模拟。我正在监控的模拟结果是一个长度为 900 的向量。我的计划是在每次模拟结束后将此向量(逐行)附加到文本文件中(使用 write.table)。我的模拟从 1:1000 开始。当我在笔记本电脑上工作时,结果很好,因为工作是连续的。当我工作时,我将模拟划分为集群,并且可能存在先写谁的冲突。我提出索赔的原因是我什至在我的文本文件的第一列(此列用于存储模拟索引)中获得了甚至不可能的值。如果您需要示例代码,我可以附上。

【问题讨论】:

  • 这是一个带有foreach 包的related post。也许comments here 是相关的。还有this post,虽然第二个是julia
  • 谢谢。您在第二个建议中给出的评论很有帮助

标签: r multiprocessing cluster-computing simulation


【解决方案1】:

没有办法使用尊重顺序的并行线程写入文本文件。每个线程都有自己的缓冲区,并且没有指示何时适合写入,因为没有交叉通信。所以会发生什么,他们都会同时尝试同一个文件,即使在另一个线程的写入过程中,这就是为什么你在第一列中得到不可能的值的原因。

解决方案是为每个线程写入单独的文件,或者将值作为多线程应用循环的输出返回。然后依次组合最后的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多