順番としては、最初2つが古いシステムの設計、次が新しいシステムの設計、最後が新しいシステムの利用。 以下、その時に取ったメモを見ながら書いています。勝手に解釈している所もあり、間違ったことが混じっている可能性ありです。また、とても長いエントリになりそうなため、後半部は別にしました。 ごく簡単な並列処理スクリプトシステムの設計と実装 当時スクウェアで使われていた、ACTORモデル (wikipedia:アクターモデル) を扱う言語、ATEL (Active Time Event Language, エーテル) について。前回 IGDA SIG-GT 12「ゲームにおけるスクリプト言語の現状」に引き続き、クロノトリガーっぽいイベントをサンプルに使用。 Final Fantasy 4, 5の頃は、上から順番に処理が流れる形式だった。その頃は同時にキャラを動かそうとすると、 MES 「さあ、しゅっ
アクターモデル(英: actor model)とは、1973年、カール・ヒューイット、Peter Bishop、Richard Steiger が発表した並行計算の数学的モデルの一種[1]。アクターモデルでは、並行デジタル計算の汎用的基本要素として「アクター」という概念を導入している。アクターモデルは並行性の理論的理解のフレームワークとして使われるほか、並行システムの実装の理論的基礎としても利用されてきた。 アクターモデルはそれ以前の計算モデルとは異なり、物理法則を発想の基本としている。他にも、LISP言語、Simula言語、ケーパビリティ・システム、パケット通信、初期のSmalltalkなどの影響を受けている。アクターモデルは「数百・数千のマイクロプロセッサから構成され、個々にローカルメモリを持ち、高性能通信ネットワークで通信を行う並列コンピュータが近い将来登場するとの予測」から開発され
ここ数日「ScalaのActorが良く分からない」と一人嘆いていたのですが、なんかとっかかりになりそうな情報を見つけました。 アクターモデル むかーしむかし、アメリカの大学の偉い教授が「アクターモデル」という研究をしていました。これは「並行計算の数学的モデルの一種」というもので、なんだかよくわからないけど難しい数学の研究なのだそうです。 で、ScalaのActorフレームワークはこの難しい研究を実装しているようです。ScalaのActorを理解して使うにはこのアクターモデルというものを学んだ方が近道のような気がしました。 というわけで、場末のプログラマーにも理解できるようにアクターモデルを親切丁寧に解説してくれるサイトや本はないかと探したのですが、そんな上手い話はありませんでした。残念です。 Erlang 絶望的な気持ちになっていたときに↓の記事をみつけました。 アクターモデル - GIO
(いえ、どうせ前から広めたいとは思ってたので、ちょっと便乗。) これからマルチコア当り前時代になるし並行処理を扱えるようになりたい。でも並行処理って難し過ぎる。そんな諸氏に朗報です。簡単かつ安全にマルチスレッドを扱える方法があります。 それは、メッセージパッシングによるスレッド間情報共有です。Erlangのようなアクターモデルと言った方がピンとくる人もいるかもしれません。メッセージパッシングの世界にはロックもシグナルも登場しません。あるのは、スレッド間で共有する通信路だけです。なぜ通信路だけで、排他制御が出来るのでしょうか?新しいスレッドを作って、そのスレッドが持つ文字列を読み書きするメッセージパッシングスタイルのプログラムを見れば一目瞭然です。 (* 細かい事は若干単純化したサンプルプログラムです。*) let start_server init_msg = let ch = (* 通信
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く