xargs 並列処理(-P オプション)と時間計測

bioinfomatics では、計算対象となるファイルがたくさんで・サイズが大きいので、並列化は重要なテーマです。

find と xargs は組み合わせて使うことが多いので、並列化をパターンで覚えると良いですね!

新しいLinuxの教科書

xargs 実行コマンドの並列化

xargs の -P オプションを使うと、xargsに引数として渡したコマンドを並列に実行します。

例では、探索したファイル(3個)に「少し時間のかかる処理」を実行したのですが、計測時間が約1/3になりました。

並列化なし

$ SECONDS=0; find . -name "*.file" | xargs -I %% some_command %%; echo $SECONDS
214

並列化あり

$ SECONDS=0; find . -name "*.file" | xargs -I %% -P 3 some_command %%; echo $SECONDS
72

並列化の効果を計測する

環境変数 SECONDS (シェルの起動秒数を保持)を利用すると、簡単に時間を計測できます。

$ SECONDS=0; find . -name "*.file" | xargs -I %% -P 3 some_command %%; echo $SECONDS
72

参考書籍など

わかりやすいと評判の本です。

新しいLinuxの教科書

タイトルとURLをコピーしました