并行实例每个 运行 并行代码?
Parallel instances each running parallelized code?
使用 rstan
,我正在 运行ning 一个并行使用 4 个内核的代码。我可以访问一台具有 32 个内核的计算机,我需要 运行 3 个相同代码在不同数据集上的实例,以及另外 3 个稍微不同代码在相同数据集上的实例,总共 6 个模型。我很难确定什么是完成此任务的最佳方法。理想情况下,计算机将在每个型号上 运行ning 4 个核心,一次总共 运行ning 个 24 个核心。
我以前用过很多次parallel
包,但我认为它不能处理这种“并行并行”。我也知道 RStudio 中的 Jobs 功能,但 rstan
的优点之一是它以交互方式向您展示链条的进展情况,因此理想情况下我希望能够看到这些更新。这可以通过同时打开 6 个不同的 RStudio 会话来实现吗?我尝试 运行 一次两个,但我不确定它们是否也 运行 彼此平行,所以任何澄清都很好。
我建议改为使用批处理作业。原则上,由于您没有那么多模型,您可以简单地尝试编写 9 个不同的 R 脚本并将它们存储为例如 model1.R、model2.R、...、model6.R .这样,您就可以尝试在命令行中提交作业,如下所示:
R CMD BATCH --vanilla model1.R model1.Rout &
这将 运行 第一个批处理模式脚本并将标准输出输出到日志文件 model1.Rout。这样,您只需打开该文件即可检查作业的状态。当然,您需要为每个模型运行上述命令。
使用 rstan
,我正在 运行ning 一个并行使用 4 个内核的代码。我可以访问一台具有 32 个内核的计算机,我需要 运行 3 个相同代码在不同数据集上的实例,以及另外 3 个稍微不同代码在相同数据集上的实例,总共 6 个模型。我很难确定什么是完成此任务的最佳方法。理想情况下,计算机将在每个型号上 运行ning 4 个核心,一次总共 运行ning 个 24 个核心。
我以前用过很多次parallel
包,但我认为它不能处理这种“并行并行”。我也知道 RStudio 中的 Jobs 功能,但 rstan
的优点之一是它以交互方式向您展示链条的进展情况,因此理想情况下我希望能够看到这些更新。这可以通过同时打开 6 个不同的 RStudio 会话来实现吗?我尝试 运行 一次两个,但我不确定它们是否也 运行 彼此平行,所以任何澄清都很好。
我建议改为使用批处理作业。原则上,由于您没有那么多模型,您可以简单地尝试编写 9 个不同的 R 脚本并将它们存储为例如 model1.R、model2.R、...、model6.R .这样,您就可以尝试在命令行中提交作业,如下所示:
R CMD BATCH --vanilla model1.R model1.Rout &
这将 运行 第一个批处理模式脚本并将标准输出输出到日志文件 model1.Rout。这样,您只需打开该文件即可检查作业的状态。当然,您需要为每个模型运行上述命令。