著者
中川 博貴 笹田 耕一
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.5, no.4, pp.1-16, 2012-09-04

我々はオブジェクト指向スクリプト言語Rubyにおいて,マルチコアプロセッサによる並列プログラミングを効率的,かつユーザが扱いやすい形で実現することを目指し,Rubyオブジェクトのプロセス間転送・共有を行うTeleporterライブラリを開発した.既存のプロセス間通信機構でオブジェクトを転送するには,オブジェクトをバイナリ列に変換してから送信し,受信側でそれをオブジェクトに復元する必要があり,そのオーバヘッドが問題となっていた.そこでTeleporterでは通信路にプロセス間共有メモリを利用することで,オブジェクトを従来の機構よりも軽量なシリアライズ,もしくはシリアライズを行わずに転送するようにし,オーバヘッドの少ない通信を実現した.さらにプロセス間でRubyオブジェクトを安全に共有する仕組みについて設計し,実装を行った.Teleporterはユーザが手軽に利用できることを目指すため,Ruby処理系の改修を行わずにRubyの拡張ライブラリとして実装した.本稿では,開発したTeleporterの設計と実装,そしてAPIについて詳細に述べる.また,Teleporterを用いた評価結果を示し,その考察を示す.

言及状況

はてなブックマーク (1 users, 2 posts)

Twitter (2 users, 2 posts, 0 favorites)

@_ko1 記憶が正しければ、フラグチェックは共有オブジェクトの各メソッドの冒頭でやってます。循環参照の件は既知で、今後の課題とこの論文の 5.2.3 の最後にちょろっと書いてあります https://t.co/YgOw82skbQ
このTeleporterライブラリ公開されてないんかな?githubにはなさそう。/Rubyオブジェクトの効率的なプロセス間転送・共有機構の設計と実装 http://t.co/MdKmGOytBW

収集済み URL リスト