« 2011年5月29日 - 2011年6月4日 | トップページ | 2011年6月26日 - 2011年7月2日 »

2011年6月20日 (月)

Exhaustive Lock Dependency Emulator その1 並列処理の総当り

マルチスレッドまたはマルチプロセスの最も簡易な lock/unlock 機構において、その依存を総当たり的に調べるプログラムを(Perlで)書いた。

総当たり的なので、特に工夫があるといえるわけではなく、おそらく他の方が特に言及することなく為していることについて、たまたま私もプログラムする順番が回ってきたぐらいのことになると思う。「車輪の再発明」だが、調べるよりは自分で作ったほうが早い部類の話で、記号論理をやった人間にとって示唆に富む部分があるという印象を受けたので、ブログに書いておくことにした…といったところ。

これはマルチプロセス環境を Perl 上でエミュレートするという話ではまったくない。プログラム自体は、シングルプロセスで終了する形をとる。

アイデアのキモは、シングルプロセス環境ではあるがプロセスを順に何度も起動し、unlock があったときに環境をすべて保存し、lock があったときに以前 unlock された環境に切り換わると考えることにより、lock/unlock のシミュレーションができたと考える点にある。

続きを読む "Exhaustive Lock Dependency Emulator その1 並列処理の総当り"

2011-06-20 02:54:31 (JST) in Perl, シミュレーション, 関数型言語・定理証明器 | | コメント (2) | トラックバック (3)