私は100種類の入力フォルダに対して〜100回Pythonスクリプトを実行するforループを持っています。 Pythonスクリプトは2つのコアで最も効率的で、50のコアが利用できます。ですから、私は一度に25のフォルダ上でスクリプトを実行するためにGNU並列を使用したいと思います。GNU並列を使用してループのためのbashを並列化する
はここ(正常に動作しますが、もちろんの連続である)ループのための私ですが、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個のフォルダをスクリプトに追加します。
すべてのヒントが喜んで受け取りました。
gah! 2つの簡単なソリューション。私は最初のことを考えなかっただろうが、2番目を試してみるべきだった。ありがとう。 – roblanf