「Deterministic Concurrency」を見た開発者がEdward LeeとJoe Armstrongの協働を夢想

Deterministic Concurrency [video]

Hacker Newsで共有された「Deterministic Concurrency」と題する動画をめぐり、コメント欄ではEdward Leeの名前がすぐに挙がった。彼の著名な論文「The problem with threads」などが多くの示唆を与えてきたことに触れ、もしLeeとJoe Armstrongが協働していたら何が起きていただろうか、という想像が語られている。

タイトルを読んですぐに「Edward Lee」だと思った。そして案の定……彼の画期的な論文「The problem with threads」やその他の著作は多くの人に影響を与えてきた。LeeとJoe Armstrongが協働していたら何が起きていただろうか、ぜひ見てみたかった。
  1. yvdriess

    並行計算や並列計算を扱うときには、「determinate(確定性)」という用語を使うと便利だと感じています[1,2]。これは結果の等価性(同じ結果)に焦点を当てるもので、「deterministic(決定論的)」は出来事の正確に同じ順序(スケジュール)を意味するものとして残しておけます。

    [1] Jack Dennis と Arvind による用法: https://cacm.acm.org/opinion/the-resurgence-of-parallelism/#...

    [2] 元々は Karp & Miller によって定義されました: https://www.jstor.org/stable/2946247

  2. anonymousDan

    決定論的/安定したマルチスレッドは、しばらく前のシステム研究で活発な領域だったのを覚えています。私の記憶では、主に性能の問題から、あまり採用されなかったようです。動画全体は見ていませんが、彼らの見解を聞くのは興味深いでしょう。

  3. CoolestBeans

    爽快な投稿ですね。これは私のレベルをはるかに超えています。興味深いのは、なぜ決定論的モデルが欲しくなるかを説明することで、なぜ非決定論的モデルが欲しくなるかも明確になった点です。気にする特性を不変にできる方法さえあれば、実際の実装は何でもよくなります。また、障害に対処するために決定論的な並行性モデルを使いたくない場合もあるでしょう。要は、実際の実装が経験する非決定性を回避することです。これは Erlang の考え方で、システムには非決定論的な部分があることを受け入れつつ、そこからの回復は決定論的であるとします。おそらく Reactor モデルでは障害を入力としてモデル化し、障害回復をモデル化できるでしょう。

    Reactor モデルの興味深い点は、2つの決定論的プロセスを組み合わせると自動的に非決定論的になる、ということを受け入れなくてよいことです。これは実世界のシステムにとって非常に有用なはずです。

この日のほかの記事

2026-09-28