並列セルラーオートマトンのページ/Parallel Cellular Automata.

updated in Sept. 16, 1999.

Welcome to the World of Cellular Automaton!


セルラーオートマトンとその並列化


セルラーオートマトン(CA)とは、有限状態をもち現在の状態と近傍との演算だけで 次の状態が決まる、抽象化された計算機構であり、1950年代から1960年代にかけて 一世を風びした。 特に、機械が自分自身を作り出すことができるかどうかの問題に対して、肯定的に 解いたフォンノイマンの自己増殖機械の他、ライフゲームのような単純ではあるが、 カオス的な振舞いを持つものに魅力を感じたものは少なくない。
そのセルラーオートマトンが、最近新しいシミュレーションの手法として甦ってきた。 人工生命や物理現象のシミュレーションなどの分野においてである。特に、 流体力学では、格子ガスモデルが、ナビエストークス方程式との等価性についても 証明がなされている。
米国バージニア州Radford大学の J. Dana Eckartは、このセルラーオートマトンによる シミュレーターを書くための言語 Cellangを開発した。これには、コンパイラと視覚化 ツールがあり、UNIX上で動作する。これは、フリーソフトとしても 入手可能である。
Cellangで、たとrば、ライフゲームのプログラムは次のように書く。
2 dimensions of 0..1
sum := [ 0, 1] + [ 0,-1] + [ 1, 0] + [-1, 0] +
       [ 1,-1] + [ 1, 1] + [-1,-1] + [-1, 1]
cell := 1 when (sum = 2 & cell = 1) | sum = 3
     := otherwise

富士総合研究所解析研究グループ、アックス(京都)、および、慶應義塾大学安村研究室では、 Dr. Eckartの協力も得て、このたび、 Cellangの並列化コンパイラを開発し、視覚化ツールを 一部拡張した。 この並列版Cellangコンパイラは、PVMを用いた並列化されたCコードを出力する。 そのソフトは、次のサイトから、ftp可能である:
ftp://ftp.axe-inc.co.jp/pub/fujiric/

cellangを用いた流体計算のサンプルは次の通り。
FlatPlateの流線. Time=1000.
FlatPlateのベクトル表示. Time=1000.
粒状体の表示例.

粒状体シミュレーション(Granular Material Simulation).

case1 case2
具体的な、流体における計算結果は次の通りである。
  • FlatPlate-FlowLine T=1000 (151kB)
  • FlatPlate-FlowLine T=3000 (178kB)
  • FlatPlate-FlowLine T=5000 (191kB)
  • FlatPlate-FlowLine T=10000 (213KB)
  • FlatPlate-FlowLine T=15000 (209kB)
  • FlatPlate-FlowLine T=20000 (241KB)
  • FlatPlate-FlowLine T=25000 (233kB)
  • FlatPlate-FlowLine T=30000 (238KB)
  • FlatPlate-FlowLine T=35000 (243kB)
  • FlatPlate-FlowLine T=40000 (239KB)
  • FlatPlate-FlowLine T=45000 (236kB)
  • FlatPlate-FlowLine T=55000 (238kB)
  • FlatPlate-FlowLine T=55000-1 (93kB)
  • FlatPlate-FlowLine T=55000-4-epot (479kB)
  • FlatPlate-FlowLine T=55000-8 (263kB)
  • FlatPlate-FlowLine T=55000-32 (234kB)
  • FlatPlate-FlowLine T=55000-64 (228kB)
  • FlatPlate-FlowLine T=55000-128 (168kB)
  • FlatPlate-FlowLine T=65000 (235kB)
  • FlatPlate-FlowLine T=65000-1 (98kB)
  • FlatPlate-FlowLine T=75000 (231kB)
  • FlatPlate-FlowLine T=85000 (237kB)
  • FlatPlate-FlowLine T=95000 (235kB)
  • FlatPlate-FlowLine T=95000-1 (93kB)
  • FlatPlate T=1000 (186kB)
  • FlatPlate T=3000 (190kB)
  • FlatPlate T=5000 (190kB)
  • FlatPlate T=10000 (216kB)
  • FlatPlate T=15000 (217kB)
  • FlatPlate T=20000 (228kB)
  • FlatPlate T=25000 (229kB)
  • FlatPlate T=30000 (225kB)
  • FlatPlate T=35000 (218kB)
  • FlatPlate T=450000 (217kB)
  • FlatPlate T=55000 (219kB)
  • Density=65000 (69kB)

  • セルラーオートマトン関連のリンクは次の通り。
  • J. Dana Eckart (Father of Cellang).
  • Cellang (Cellular Automaton Language)
  • Cellular Automaton by Santafe.

  • 謝辞

    なお、本並列コンパイラは 情報処理振興事業協会(IPA)の 「創造的ソフトウェア育成事業」のテーマとして開発したものである。
    安村のホームページに 戻る