我试图在群集上多次使用不同的参数运行相同的模拟。这样做我想在一个核心上运行一个模拟。我有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次模拟,但一旦完成,它就不会开始新的模拟。我怎么能纠正这个?