在不同的核心上运行独立模拟(并行化)

时间:2015-10-02 07:05:03

标签: bash parallel-processing

我试图在群集上多次使用不同的参数运行相同的模拟。这样做我想在一个核心上运行一个模拟。我有24个核心,需要运行大约70个模拟。 参数由路径,顶层文件夹和第二层指定,每个叶子中都有一个特定的运行脚本,它接受这些参数并运行模拟。

我需要帮助的脚本,因此应该找到所有叶子,然后运行位于那里的每个脚本。应该这样做,以便我(几乎)所有时间都在每个可用核心上运行23个叶子脚本。

我已经做了我自己的,可以在这里看到:

#jump to working directory
if [ -z "$SLURM_SUBMIT_DIR" ]; then
    echo "Running from cmd in $PWD"
else 
    cd "$SLURM_SUBMIT_DIR"
    echo "Nodes: $SLURM_NODELIST"
    echo "Running from queue in $PWD"
fi

find * -mindepth 2  -name run.sh | xargs -n 1 -P 24 bash
然而,管道到xargs,正确地开始前23次模拟,但一旦完成,它就不会开始新的模拟。我怎么能纠正这个?

0 个答案:

没有答案