
実は一つ前のentryで電脳進化論を取り上げたのには、理由がある。
→を取り上げたかったのだ。
あ、もちろん弾さんが手がけるであろうParrotネイティブなOSも期待してますよ?
多分それもparrotが普及するにつれ手をつけてしまうと思うのだけど、手をつけたくてつけたくて、手をつけられるだけの経験を曲がりなりにもつんだと思ったら逝ってしまったのが、このConnection Machine。
それがどんなものかは、画像をclickしてwikipediaを見て、さらに出来れば少なくとも電脳進化論にも目を通してほしい。
Connection Machineは、並列計算機のスターだった。
今私はCPUが二つ載ったノートパソコンでこれを書いているが、Connection Machineはそんなもんじゃない。65536もプロセッサーを持っていたのだ。
しかし、本当に画期的だったのはそのことじゃなくて、Virtual Processorという概念を持っていた事。
Virtual Memoryはすでにおなじみだろう。物理的には存在しないMemoryをあたかも存在しているように見せること。今ではパソコンにまで行き渡っている技術だ。
それに対し、Virtual Processorというのは、物理的に存在しないProcessorをあたかも存在しているように扱う技術。
例えば、画像処理を考えてみる。ここでは仮に画像をθだけ回転させる処理を考えてみる。今のCPUを使ったアルゴリズムだと、こんな感じだ。
for my $x (0..$width-1){ for my $y (0..$height-1){ my $nx = $x * cos($theta) - $y * sin($theta); next if $nx < 0 || $nx >= $width; my $ny = $x * sin($theta) + $y * cos($theta); next if $ny < 0 || $ny >= $height; $new_pix[$ny][$nx] = $old_pix[$y][$x]; } }
これに対して、connection machineでは、こんな感じになる。
$self->set_pixel($black); BLOCK:{ my $nx = $self->x * cos($theta) - $self->y * sin($theta); last if $nx < 0 || $nx >= $width; my $ny = $self->x * sin($theta) + $self->y * cos($theta); last if $ny < 0 || $ny >= $height; $self->send_pixel(processor[$ny][$nx]); } $self->receive_pixel();
そう。すべての画素にprocessorを一つあてて、それらが同時処理するため、loopが消滅してしまうのだ。
これはプログラムの考え方を根底から変える。当然それにあった環境が必要で、connection machineにもC*という言語が用意されていたようにおぼろげに記憶している。電脳進化論のすごかったのはそこで、このことをきちんと立花隆は見抜いていた。
そのConnection Machineとそれを作ってたThinking Machineが倒産したのは1994年。干支一つも前のことだ。
今時の並列処理は、あまり「並列であることを意識させない」ものばかりだ。プログラムから見て、プロセッサーは一つ、アドレスはリニアというのがあたりまえの環境でソフトウェアエンジニア達は育ってきた。CPU屋もコンパイラー屋も、そうでないことを知りつつも、いかにそれらをコードに意識させないかということにしのぎを削ってきた。今ではregisterからHDDまで、四段階ぐらいのcacheがあるのが当たり前だ(L1-L3 Cache + RAM; 本当はHDDにもcacheがあるけどそれは数えてない)。
確かに下の階層は、上の階層のためにある。しかし、それが下の階層の進化を妨げることもあるような感じがする。それは確かに投資金額からして、下の階層ほど金がかかる。アプリケーションなら資本金200万円から始められるが、CPUを作るには2000億かかる。それゆえ上の階層に行けば行くほど進化は早く、人々、特に若者の目はそちらに行きがちだ。
しかし、それが本当によかったのだろうか?これは熟成なのだろうか遅行なのだろうか。
実際ある階層での革命は、一つ下の階層の革命から始まっている場合が多い。Webにしてからが、TCP/IPあってのことだ。上の階層での「改革」についていこうとして、下の階層の進歩がむしろ止まってしまうということはないのだろうか?
今時の「悟天OS」がイマイチぶっとんでないのは、いづれもぶっとびにはほど遠いハードウェア上で開発されているからかも知れない。
しかし消費電力の観点から、"Massively Parallel for the Rest of us"というのもありなのではないだろうか....
電脳進化論からもう14年。速度、容量といった「量」の変化は大いにあったが、質の変化はどうなのだろう....
Dan the Disconnected Man
失礼