2019年2月13日水曜日

セル・オートマトン

ソースコードは下記アドレス


1次元のセル・オートマトンにルール30を適用して得た画像。

一部Repaを使ってみました。







以下のインストール が必要。

$ cabal update -v
$ cabal install repa -v
$ cabal -v install repa-io
$ cabal install parallel -v

コンパイルは

$ ghc -O2 -threaded -rtsopts --make -XFlexibleContexts -eventlog cellA.hs

作成された実行ファイルを実行します。

$ ./cellA 110 +RTS -N2 -l

ルールはコマンドライン引数で与えます。

eventlog が作成されます。

$ threadscope cellA.eventlog

 一応2コアで動いています。



ルール110の実行例。

$ display a.bmp

ルール45
ルール225

Haskell Process

Haskellの System.Processは便利ですが、問題もあります。 単一スレッドでの逐次処理を保証していない。(想像です。) 次のようなスクリプトを書いてみた。 --a.hs main = print [1..10] --t.hs import Sy...