【问题标题】:Parallel instances each running parallelized code?每个运行并行代码的并行实例?
【发布时间】:2021-02-01 21:40:18
【问题描述】:

使用rstan,我正在运行一个并行使用 4 个内核的代码。我可以访问具有 32 个内核的计算机,我需要在不同的数据集上运行 3 个相同代码的实例,并在相同的数据集上运行另外 3 个稍微不同的代码实例,总共 6 个模型。我很难弄清楚实现这一目标的最佳方法是什么。理想情况下,计算机将在每个型号上运行 4 个内核,一次运行总共 24 个内核。

我之前多次使用parallel 包,但我认为它不能处理这种“并行并行”。我也知道 RStudio 中的 Jobs 功能,但 rstan 的好处之一是它以交互方式向您展示链的进展情况,因此理想情况下我希望能够看到这些更新。这可以通过同时打开 6 个不同的 RStudio 会话来实现吗?我尝试一次运行两个,但我不确定它们是否也彼此并行运行,所以任何澄清都会很好。

【问题讨论】:

    标签: r rstan


    【解决方案1】:

    我建议改用批处理作业。原则上,由于您没有那么多模型,您可以简单地尝试编写 9 个不同的 R 脚本并将它们存储为例如 model1.R、model2.R、...、model6.R。有了它,您可以尝试在命令行中提交作业,如下所示:

    R CMD BATCH --vanilla model1.R model1.Rout &
    

    这将以批处理模式运行第一个脚本并将标准输出输出到日志文件 model1.Rout。这样,您只需打开该文件即可检查作业的状态。当然,您需要为每个模型运行上述命令。

    【讨论】:

    • 我猜批处理作业是 RStudio 作业在后台做什么?这就是我最终对这个特定问题所做的事情。
    猜你喜欢
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多