GNU Parallel - 多个命令

Leo*_*Leo 4 gnu-parallel

我想在几个输入上运行几个长时间运行的进程。例如:

solver_a problem_1
solver_b problem_1
...
solver_b problem_18
solver_c problem_18
Run Code Online (Sandbox Code Playgroud)

我知道如何为同一个命令运行多个参数——这是核心用例。这更像是相反的情况:同一参数的多个命令

当然,您始终可以并行运行多个实例 - 但是在调度资源时,这些实例是否位于同一台机器上或同一用户下?

Mar*_*ell 5

我认为您希望GNU Parallel通过 3 个求解器中的每一个来运行 18 个问题中的每一个:

parallel echo solver_{1} problem_{2} ::: {a..c} ::: {1..18}
Run Code Online (Sandbox Code Playgroud)

样本输出

solver_a problem_1
solver_a problem_2
solver_a problem_3
solver_a problem_4
...
...
solver_c problem_16
solver_c problem_17
solver_c problem_18
Run Code Online (Sandbox Code Playgroud)

或者,更快地更改其他参数:

parallel echo solver_{2} problem_{1} ::: {1..18} ::: {a..c}
Run Code Online (Sandbox Code Playgroud)

  • 当我对具有多个参数的问题运行求解器时,我经常使用“--shuf”,因为这样我就可以相当快地绘制整个输入范围的结果。该图通常可以显示一种趋势,无需运行全套,而是停下来并专注于看起来有希望的范围。我不知道这是否与此相关。 (4认同)