並列性忘却プログラミング

最近、「並列性忘却プログラミング」に関心をもっています。「並列性忘却」は”Parallelism-Oblivious”の和訳で、「並列性を意識しないでよい」ということを表しています。「脱並列性」というのもいいかも知れません。

「最近」といっても、実は、2007年7月26日〜27日に Parallelism-Oblivious Programming (POP) のワークショップを開催したので、その頃から考えていたことです。ワークショップについては

http://www.ipl.t.u-tokyo.ac.jp/~kmatsu/pop07/index-j.html

にプログラムがあります。そのときの発表スライドは

http://www.ipl.t.u-tokyo.ac.jp/~takeichi/attachments/POP.pdf

です。

「並列」(parallel) は1カ所にしか現れていませんが、もちろん(?)、「並列性忘却並列プログラミング」(Parallelism-Oblivious Parallel Programming)、すなわち、「並列性を意識しないで並列プログラムを開発する」方法を追究しようというものです。POPよりもPOPP とするほうがよいのかも知れません。

1970年代には構造化プログラミング (structured programming) の議論がありました。いろいろな側面がありましたが、その中で、「同じ処理を記述するにしても、行儀のよい書き方をしよう」という教えも説かれました。プログラムの書き手によってその作風がまちまちだと、分かりにくいプログラムはそれが正しいかどうかも確認できないし、他人には理解できないのは問題だ、ということでした。プログラミングのよい「スタイル」を考えようということでした。

最近の並列プログラミングの世界はどうでしょうか?最新の並列計算機のアーキテクチャが頻繁に変わるということもあり、また、性能を最大限に活かすようにプログラムをチューニングしようということもあってか、細部にわたって並列制御のコードを書き込むということが多いようです。並列プログラミングに望ましい「スタイル」というものを見つけ出すことはできないのでしょうか。そのような疑問の中から出てきたものが並列性忘却のアイデアです。

私の所属している研究科では、教員の研究をわかりやすく伝えるために、科学記者の方によるインタビュー記事をホームページに掲載しています。最近、掲載されたものが

http://www.i.u-tokyo.ac.jp/news/focus/100215_1.shtml

にあります。こちらもお読み下さい。

4 replies on “並列性忘却プログラミング”

  1. […] この表現は、2/16の記事「並列性忘却プログラミング」、 すなわちPOP (Parallelism-Oblivious Programming) でも注目されています。集合Aをxを生成する生成子(generator)ということもあります。Aを生成し、Pでテストするということを自然に表わていますので、Generate-and-Test の方式で解を得る一般的な計算を表現しているといえます。そして、この表現の中には、逐次的に実行しなければいけないというところがない(生成したものをテストするという順序だけ?)ので、並列化の自由度が高いという点で、「並列性を意識しないで並列プログラムを開発する」ことにピッタリだというわけです。 […]

  2. […] 余談になりますが、以前から、どうしようかと思っていたのですが、Parallelism-Oblivious Programmingよりも、上に書いたPOPPのほうが誤解がないと考え、これからはPOPPにしようと思います。一月前、2010/2/16の「並列性忘却プログラミング」にもそのようなことを書きました。 […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください