【发布时间】:2017-06-05 11:01:31
【问题描述】:
我有一个 for 循环,它在 100 个不同的输入文件夹上运行 Python 脚本约 100 次。 python 脚本在 2 个内核上效率最高,我有 50 个内核可用。所以我想一次使用 GNU 并行在 25 个文件夹上运行脚本。
这是我的 for 循环(工作正常,但当然是连续的),python 脚本需要一堆输入变量,包括在两个内核上运行的 -p 2:
for folder in $(find /home/rob/PartitionFinder/ -maxdepth 2 -type d); do
python script.py --raxml --quick --no-ml-tree $folder --force -p 2
done
这是我将其并行化的尝试,但不起作用:
folders=$(find /home/rob/PartitionFinder/ -maxdepth 2 -type d)
echo $folders | parallel -P 25 python script.py --raxml --quick --no-ml-tree {} --force -p 2
我遇到的问题(也许只是众多问题中的第一个)是我的 folders 变量不是一个列表,所以它实际上只是将一长串 100 个文件夹作为 {} 传递给脚本.
感谢所有提示。
【问题讨论】:
标签: python unix gnu-parallel