昨日の記事を紹介したところ,いくつかコメントを頂いて,なかでもハッとさせられたのはxargsだと-Pオプションで並列実行させられるので,イマドキのマルチコア環境だと効率的に処理できるのでは?というもの.
というわけで,やってみた.
12個のファイルを作って,そのあと6つずつ並列に処理をさせている.-Pオプションを付けないと,"echo @; sleep 1"が順次実行される.sleep 1 が効くので,1秒毎に処理が行われていく様子を確認することができる.このケースでは,全部実行し終わるのに12秒かかる.
一方,上記の例では,-P6として「6つ並列に実行せよ」と指示している.すると,12個のうち半分の6個が一気に実行される.1秒後に残りの6つが実行されるので,結果として12個のファイルを2秒で処理できている.
まあ,この例は少し恣意的ではあり,並列実行がどのCPUに割当られて本当に並列に実行されるかどうかは環境依存でもある.しかし,マルチコア環境だと効果的に働きそうだということは分かるだろう.
0 件のコメント:
コメントを投稿