【问题标题】:Add more cores to the parallel running processes in GNU parallel为 GNU 并行中的并行运行进程添加更多内核
【发布时间】:2017-04-27 10:59:41
【问题描述】:

我正在使用 GNU 并行来并行运行多个作业。

我想知道 GNU 并行是否包含一个命令,该命令允许向已经并行运行的进程添加 n 多个内核。

你有什么建议吗?

【问题讨论】:

    标签: parallel-processing gnu-parallel


    【解决方案1】:

    如果您使用-j file,您可以更改file 的内容。来自man parallel

    --jobs 过程文件

    -j 过程文件

    --max-procs 过程文件

    -P 过程文件

    从文件中读取参数。使用 procfile 的内容作为 -j 的参数。例如。 procfile 可以包含字符串 100% 或 +2 或 10。如果在作业完成时更改了 procfile,则会再次读取 procfile 并计算新的作业数。如果数量低于以前,将允许正在运行的作业完成,但在达到所需的作业数量之前不会启动新的作业。这样就可以在 GNU 并行运行时更改同时运行的作业数量。

    【讨论】:

    • 好的,这很有趣。目前我有 5 个进程正在运行,所以根据你所说的,我应该通过编写实例 +2 来修改 procfile(如果我想再添加 2 个内核)。但是我不知道 procfile 是什么以及在哪里可以找到。
    • 只有在使用 proc 文件启动时才能执行此操作:parallel --jobs myprocfile ...。然后您可以在此处更改 myprocfile。如果您没有以此启动 GNU Parallel,则无法更改它。
    • 谢谢!我将使用此选项运行分析。
    • 我有另一个“幼稚”的问题,我想作为评论提出。我使用以下命令并行运行: nohup ls *.R | time parallel -j4 R CMD BATCH &,因为我想做你建议的 procfile 我想停止并行运行并重新启动一个新的。我该怎么办?
    • echo 4 > myprocfile ; nohup time parallel -j myprocfile R CMD BATCH ::: *.R 或者如果屏幕可用screen parallel -j myprocfile R CMD BATCH ::: *.R CTRL-A d.
    猜你喜欢
    • 2015-01-30
    • 1970-01-01
    • 2013-01-31
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2015-08-23
    相关资源
    最近更新 更多