GNU parallel for easy multiprocessing

tags: linux

などで GNU parallel の紹介がされていて,ちょうど自分がやりたかったことにマッチしてうれしい.

インストール

http://ftp.gnu.org/gnu/parallel/ から parallel-latest.tar.bz2 をダウンロードし,

$ bzip2 -d parallel-latest.tar.bz2
$ tar xvf parallel-latest.tar
$ cd parallel-??????
$ ./configure --prefix=$HOME/local/ && make && make install

としてインストールした.

並列処理

自分の場合,多くのディレクトリ内( smpl_*/smd/ 内 )で smd というプログラムを実行したかった.

$ parallel --bar -j 12 "cd {}/smd/; ~/src/nap/pmd/smd > out.smd; cd ../.." ::: smpl_*

とすると12プロセス並列で実行してくれる. --bar オプションで進捗状況表示もしてくれるから便利.