CAM-PC(CAM 6)

| コメント(0)


CAM-PC(CAM 6)を久しぶりに動作させてみた。などと書いても、そんな物など知らないという人がほとんどだろう。という訳で、WIKIにリンクを張っておく。

かれこれ20年も前に、MITで開発されたセルオートマトン用の並列計算機である。計算機と言っても、PC-AT互換機のXTバス(!)に挿入する特殊なカードの形状をしている。256x256のセル空間内で、オートマトンのシミュレーションを並列処理することに特化して開発されたもので、MIT内では「CAM 6」と呼ばれていた。これをベンチャー企業のAutomatrixが「CAM-PC」の名称で販売していたのである。1990年代初頭の頃の話だ。

当時、グラフィックスワークステーション上で動作するCAD開発に携わっていた私は、Xウィンドウ上で、ジョン・コンウェイライフゲームを作って遊んでいたものだが、ネットニュースでこのCAM-PCが発売されることを知り、大枚20万円近くをはたいて個人輸入したのであった。1992年末のことである。

この並列計算機は、セルオートマトンに用途を限定すれば、当時最先端であったスパコンのCray-2とほぼ同等の性能と謳われていた。確かに、毎秒60フレームでリアルタイム表示されるセルオートマトンは、驚異的なスピードであった。(ここに掲載した動画は、実機の約半分の速度である)

セルオートマトンのルールは、柔軟に定義することが可能となっており、そのためのツールとして、FORTHで書かれたCAM-FORTHというアプリケーションが附属していた。このツールを用いて、拡張されたFORTHのワードを用いて様々なセルオートマトンのルールとその表示方法を指定することができる仕組みとなっていた。

ホストPC上で動作するCAM-FORTHは、状態遷移のルールと、そのルックアップテーブルを生成し、これをデータとしてCAM-PCに転送する。実際のシミュレーションは、総てCAM-PC内部で完結して実行されるので、ホストPCとはXTバスで接続されているだけで十分なのである。

出力は、水平同期15kHzのデジタルRGBモニタを、カードの出力端子に接続して行い、シミュレーションの制御やルールの設定等は、ホストPCに接続されたVGAモニタから行うため、二つのモニタが必要である。今となっては、入手困難なデジタルRGBモニタと、20年近く前に購入した486DXのホストPCは、いまだに私の机の上にある。

これらのマシンは、現状では動作しているが、何せ年代ものなので、いつまで動作するか全く判らない。そこで、シミュレーションのムービーを作成して、往年の並列マシンを偲ぶよすがにしようと思ったのである。

前置きが長くなったが、第一回は、前述のコンウェイのライフゲームである。参考までにCAM-FORTHで書かれたルールの設定を以下に示しておく。(FORTHの知識があれば、ある程度の内容は理解できると思う)

\ Life (read screen 0)                                   16Feb89nhm
NEW-EXPERIMENT N/MOORE
: 8SUM         NORTH SOUTH WEST EAST N.EAST S.EAST N.WEST S.WEST
+ + + + + + + ;
: LIFE         8SUM { 0 0 CENTER 1 0 0 0 0 0 } >PLN0 ;
MAKE-TABLE LIFE
HALF 0 RND>PL

50%のランダムスープからスタートしたセルの状態遷移は、約1200ステップで、終局状態に到達する。このルールでは、静止したセルは赤、生成したセルは緑、死滅したセルは青で表示される。終局状態では、多数の安定的なパターンと何種類かの振動パターンが見られる。

なお、セル空間は、「ラップアラウンド」されている。つまり、上下端と左右端がそれぞれつながっており、有限ながら端のない平面を構成している。トーラスの表面を思い浮かべると解りやすい。

ところで、20年前はスパコン並みの計算能力を有していたこのハードウェアも、現在の最先端の汎用CPUの処理能力にはとても及ばない。CPUの進化がそれだけ早かったということだが、今では、完全にソフトウェアで同等以上の性能を引き出すことが可能だ。興味のある方は、Cellabをダウンロードして試してみると良いだろう。CAM-PCのように、インタラクティブにルールの変更をすることはできないものの、CやPascalでルールテーブルをコンパイルして様々なシミュレーションを行うことが可能だ。(因みに、現在はフリーウェアになっているこのソフトは、当初、Autodesk社から「CA-LAB」という商品名でDOSアプリケーションとして市販されていたものである)

Powered by

automatrix

コメントする

アーカイブ