« 【感想】Kansai.pm第9回ミーティング | トップページ | プロジェクト管理=ソフトウェア構成管理 »

2008/06/02

MapReduceメモ

MapReduceの説明で良い記事があったのでメモ。

下記2つは、丸山先生の解説。
短いけれど、本質を突いている。

[jjug-members] MapReduceのアルゴリズム

[jjug-members] MapReduceのアルゴリズム2

下記は、オープンソースのGoogleクローンHadoopの解説。
丁寧ですごく分かりやすい。

Hadoop、hBaseで構築する大規模分散データ処理システム ~[初級] Google基盤ソフトウェアのオープンソースクローンを使ってみる 1

MapReduceの計算モデルが威力を発揮する状況は、1テラバイトのテキストファイルの読み込みや膨大なバッチ処理など、コンピュータのメモリにロードできない場合。
Map→ソート→Reduceという単純なアルゴリズムで、DVD1枚のGrepを0.2秒で処理しきってしまう威力。

プログラミング設計の基本パターンは分割統治。
その代表例としてオブジェクト指向設計がずっと叫ばれてきたが、いい加減飽きた。

もう一つの分割統治のパターンは、関数型言語やUnixのPipeAndFilterのように、膨大な処理を小さなプロセスに分割して並列に走らせること。
今後のプログラミング言語は、並列計算を実現できるような仕組みが必要だろう。

並列処理が有効に効く状況は、マルチコアCPU、Webネットワーク、バッチ処理など。
つまり、組み込み系でも、業務系でも、今後、関数型言語の発想によって、アーキテクチャが今と根本的に変わる可能性がある。

|

« 【感想】Kansai.pm第9回ミーティング | トップページ | プロジェクト管理=ソフトウェア構成管理 »

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: MapReduceメモ:

« 【感想】Kansai.pm第9回ミーティング | トップページ | プロジェクト管理=ソフトウェア構成管理 »