Jun 3, 2005

Gridable Type構想 (2)

このエントリーではMovable Typeを用いて「グリッドする」ことを目的としたGridable Type構想を紹介する。(2)はGridable Typeの基盤となる「トラックバックパッシングモデル」について議論する。

トラックバックパッシングモデル

Gridable Typeで用いられる代表的なプログラミングモデルであるトラックバックパッシングモデルについてここでは述べる。このモデルは、ブログで用いると不愉快でしかないトラックバックを有効に活用した並列プログラミングモデルである。

メッセージパッシングは分散メモリ型の並列計算機やクラスタ上で広く利用されているが、トラックバックパッシングはほとんど使われていない。よく見かけるのはトラックバックバッシングである。

トラックバックパッシングモデルでは、アプリケーションは自律したプロセスの集合として動作し、各プロセスが独立した記憶域を持つ。このモデルでは、プロセスはトラックバックを受信することで起動し、トラックバックを送信することで他のプロセスと通信する。メッセージパッシングモデルではメッセージを通信する送信側プロセスと受信側プロセスが明示的にメッセージのやり取りを行う必要があるが、トラックバックパッシングモデルではトラックバックの通信は常に新規のプロセスの生成を伴うためこのような必要はない。

トラックバックパッシングモデルのセマンティックスは、並列計算技術におけるActive Messagesのものに類似していると言える。Active Messages同様、トラックバックの受信側メッセージハンドラ(この場合プロセスとほぼ同義)は非同期に実行されなければならない。また、トラックバックのメッセージングもPUT型・GET型の二種類に分類できる。

PUTメッセージ送信時には非同期に起動された受信側ハンドラがメッセージの受信を行い、計算を行う。送信側はブロックする必要はない。GETメッセージ送信時には非同期に起動された受信側ハンドラがメッセージの受信を行い、少量の計算を行い、送信側に戻り値を返す。ただし、送信側が戻り値が返されるまでブロックすると処理が直列化されてしまうので意味がない。

PUT/GETのいずれにしても送信側が別プロセスを起動してバックグラウンドでトラックバックパッシングすることが性能上の要求から望ましい。そのためのコンストラクトとしてMTにはMT::Util::start_background_taskが用意されている。

さらに続きます。そろそろ「ブログを使ってバカ論文を書く」試みであることは伝わっているのだろうか。嘘は書いていないし、普通に実装すればプログラミングシンポジウムくらいなら出せる。「MTのアプリケーション」としては面白い試みかもしれないが、問題は「グリッド技術」としては意味がないことだ。面白いだけでは意味がない。

About Me

My Photo

つくばで働く研究者

Total Pageviews

Amazon

Copyright 2012 Ogawa::Buzz | Powered by Blogger
Design by Web2feel | Blogger Template by NewBloggerThemes.com