Manticore!

shelarcyさんによるManticore TL
4
shelarcy(しぇらーしぃ) @shelarcy

Manticore で使われている BOM という中間言語の由来について、メモっておきたいと思います。

2010-02-28 11:31:21
shelarcy(しぇらーしぃ) @shelarcy

ANF と CPS という略語の平均をとってつけた BOL という中間言語 [http://bit.ly/cUWLfq] があって、その BOL の後継言語が BOM ですか……。

2010-02-28 11:31:27
shelarcy(しぇらーしぃ) @shelarcy

前にこの記述を見たときは素通りしましたが、改めて考えてみると凄いネーミングセンスですね。

2010-02-28 11:36:03
shelarcy(しぇらーしぃ) @shelarcy

Manticore では vporc(所謂 OS のスレッド)ごとに locall heap と global heap を割り当てて、immutable な値に関しては基本 local heap で並列に GC するみたいですね。

2010-02-28 14:44:51
shelarcy(しぇらーしぃ) @shelarcy

で、local heap が満杯になってくると、一番若い世代のデータを覗いて global heap に移し、最終的に vporc (で実行される Manticore プロセス)を全て止めて global heap に対して逐次的な GC を行なうと。

2010-02-28 14:51:49
shelarcy(しぇらーしぃ) @shelarcy

さて、local heap の並列 GC ですが、(基本的に)global heap や他の local heap から local heap へのポインタの参照を持たないので、 local heap の GC はロックなしで並列に行なえるそうです。

2010-02-28 15:00:43
shelarcy(しぇらーしぃ) @shelarcy

なお、Manticore では基本的には mutable な値を持たない(SML の参照型の機能を削ってある)ので、global heap で使用される共有変数もそんなに多くはならなそうですね。

2010-02-28 15:02:03
shelarcy(しぇらーしぃ) @shelarcy

スレッド間での値のやり取りには、メッセージングを使用します。(一応、CML の IVar や MVar、それと STM を実装する予定もあるそうですが、現在のところは未実装だそうです。)

2010-02-28 15:05:21
shelarcy(しぇらーしぃ) @shelarcy

local heap の GC は Copying GC、global heap の GC は……参照してある論文を読まないと分からなそうですね。Manticore の実装はまだ公開されていないので、現時点ではソースコードから読み取ることは不可能ですし。

2010-02-28 15:08:43
shelarcy(しぇらーしぃ) @shelarcy

あっ、メッセージングを使うのは CML のスレッドを使う時だけです。Haskell(GHC)と同じく、並列配列や並列変数(pval)などで implicit にスレッドを扱う場合には、値のやり取りは全て言語の裏側で行なわれます。

2010-02-28 15:11:45
shelarcy(しぇらーしぃ) @shelarcy

.。oO(話がこんがらかって誰得感が増してきた気がします……)

2010-02-28 15:20:28
shelarcy(しぇらーしぃ) @shelarcy

しょうがないので最後にこれだけ。この Manticore の並列 GC を、著者は "locally-concurrent/globally-sequential" collector と呼んでいるそうです。

2010-02-28 15:25:33
shelarcy(しぇらーしぃ) @shelarcy

ここまでつぶやいてきた Manticore の GC の話は、"Implicitly-threaded parallelism in Manticore" という論文の 5.4 に載っているので、きちんと整理された形で知りたければそちらを読んで下さい。

2010-02-28 15:28:21
shelarcy(しぇらーしぃ) @shelarcy

この論文は Manticore のページで公開されています。 http://manticore.cs.uchicago.edu/

2010-02-28 15:29:34
shelarcy(しぇらーしぃ) @shelarcy

@fibre_bundle あっ、ありがと〜☆♫ 今から出かけるので、Manticore のお話はまた後でしますね。

2010-02-28 15:31:21