2008年1月30日 シェルで簡単にデータを並列処理する 最近はマルチコアのCPUが主流なので、CPUがボトルネックとなる一般的なプログラムの場合、単純に処理を複数のプロセスで同時に実行すると効率が良い。 起動するプロセス数だが、実行するマシンにおけるCPUのコア数に合わせるのが手っ取り早い。 入力データをどのように複数のプロセスに分担させるかだが、これも手っ取り早い方法がある。すべてのプロセスに入力データを読ませ、自分の担当行だけ処理させるのである。全体としてみれば、これですべての入力データが処理されることになる。 100万行のテキストファイルを4プロセスで処理させるのであれば、 プロセス1は1~25万行目プロセス2は25万1行目~50万行目プロセス3は50万1行目~75万行目プロセス4は75万1行目~100万行目以上のように各プロセスは自分の担当行だけ処理して、あとの行は読み飛ばせばよ