2009年5月29日金曜日

並列計算の意義

並列計算ほど今の教育で認知されていないものはないかもしれない。
昔は並列化する理由として、問題内に潜在的にある並列度を引き出すことで性能が向上できると説明していた。しかし、遅延は隠ぺいできても性能そのものが向上するわけではなかった。結局早くはならないのであまり見向きもされなかった。
しかし、今では、マルチコアのように元々並列に適したマシンがあるのだから、これを有効に使わなければならないと言えるようになってきた。そして、並列化すれば実際に早くなる。
ところが、早く計算するための並列プログラミングは、教育現場でほとんど教えられていない。むしろネットワークプログラミングや分散プログラミングの方が進んでいるといってもよい。これらはインターネットの進歩とともに受け入れられた。インターネットを使えないプログラミングはさすがに誰の目にも無意味だと映ったのだろう。
しかし、分散計算は並列計算に属する。つまり、逐次、並列、分散という順に学習しなければ、本当の分散は理解できない。にもかかわらず中間の並列はほとんど無視されている。そろそろ、そのような状況は見直されるべきだろう。そうでなければ、マルチコアを活かしたアプリケーションが開発できない。