著者
笹田 耕一 卜部 昌平 松本 行弘 平木 敬
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.5, no.2, pp.25-42, 2012-03-30

我々は,高性能なRuby処理系の開発を行っている.Ruby処理系は仮想マシン(VM)を用いて実現されているが,現在のVMでは,同時にたかだか1つのRubyスレッドのみ実行するという制約があり,並列実行をサポートしていない.また,複数のRubyプロセスを用いて並列実行すると,計算に必要となるオブジェクトの転送がプロセス間転送となり,オーバヘッドが大きいという問題がある.そこで,我々は1つのプロセスに複数のVMを並列に実行できるマルチ仮想マシン(MVM)の開発を行っている.各VMはオブジェクト空間を独立に管理するが,各VMが同一プロセス内にあることを活かしたVM間の高速なオブジェクト転送を行うことができる.また,これらの機能をRubyから利用するためのプログラミングインタフェース(API)を設計した.さらに,Rubyの遠隔メソッド呼び出し機構であるdRubyをMVM上で利用できるように拡張し,MVMの利用を容易に行うことができるようにした.MVMの実装は,現在の処理系との互換性を維持するため,既存の処理系のプロセス全体で共有されるデータ,たとえばC言語のグローバル変数やI/O資源などを,VMごとに保持するようデータ構造を変更することで行った.本論文では,開発しているMVMの設計と実装について述べ,MVMを用いるためのAPIを説明する.そして,MVMを用いた並列処理の現在の実装での性能評価について述べる.

言及状況

Twitter (3 users, 3 posts, 0 favorites)

@ChrisGSeaton the ones I can download are so old I'm not sure if they matter anymore. e.g. MVM https://t.co/L4cETF5uja I wish these papers weren't hidden
@niku_name Ruby のスレッド実装(ユーザレベルスレッド/グリーンスレッド)を捨てて、OS のネイティブスレッドにマッピングするのは、かなり大変だと思うので、こういうアプローチの方が有望かも、と思いました:  https://t.co/I7yBhGj4

収集済み URL リスト