GNU Parallelを使用すると、次のことができます。
parallel script-to-run.sh input/ output/ {} ::: {0..99}
CPUコアごとに1つのジョブを実行したくない-P8
場合は、追加します。
反対xargs
に、入力にスペース、 '、または "が含まれている場合でも、正しいことを実行します(ただし、ここではそうではありません)。また、異なるジョブからの出力が混在しないようにするため、出力を使用すると、 2つの異なる仕事から半列にならないことが保証されています。
GNU Parallelは一般的な並列処理機能であり、同じマシンまたはsshにアクセスできる複数のマシンでジョブを簡単に並列実行できます。
4つのCPUで実行する32の異なるジョブがある場合、並列化する簡単な方法は、各CPUで8つのジョブを実行することです。
代わりに、GNU Parallelは、終了時に新しいプロセスを生成します。つまり、CPUをアクティブに保ち、時間を節約します。
インストール
GNU Parallelがディストリビューション用にパッケージ化されていない場合は、ルートアクセスを必要としない個人インストールを行うことができます。これを行うことにより、10秒で実行できます。
$ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
fetch -o - http://pi.dk/3 ) > install.sh
$ sha1sum install.sh | grep 67bd7bc7dc20aff99eb8f1266574dadb
12345678 67bd7bc7 dc20aff9 9eb8f126 6574dadb
$ md5sum install.sh | grep b7a15cdbb07fb6e11b0338577bc1780f
b7a15cdb b07fb6e1 1b033857 7bc1780f
$ sha512sum install.sh | grep 186000b62b66969d7506ca4f885e0c80e02a22444
6f25960b d4b90cf6 ba5b76de c1acdf39 f3d24249 72930394 a4164351 93a7668d
21ff9839 6f920be5 186000b6 2b66969d 7506ca4f 885e0c80 e02a2244 40e8a43f
$ bash install.sh
その他のインストールオプションについては、http://git.savannah.gnu.org/cgit/parallel.git/tree/READMEを参照してください。
もっと詳しく知る
その他の例を参照してください:http://www.gnu.org/software/parallel/man.html
イントロビデオを見る:https://www.youtube.com/playlist?list = PL284C9FF2488BC6D1
チュートリアルをウォークスルーします:http://www.gnu.org/software/parallel/parallel_tutorial.html
サポートを受けるためにメーリングリストにサインアップしてください:https://lists.gnu.org/mailman/listinfo/parallel