WEKO3
-
RootNode
アイテム
Ruby用マルチ仮想マシンによる並列処理の実現
https://ipsj.ixsq.nii.ac.jp/records/81614
https://ipsj.ixsq.nii.ac.jp/records/8161420900a3a-3a48-4775-bcb4-93b9fd6c2257
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2012 by the Information Processing Society of Japan
|
|
オープンアクセス |
Item type | Trans(1) | |||||||
---|---|---|---|---|---|---|---|---|
公開日 | 2012-03-30 | |||||||
タイトル | ||||||||
タイトル | Ruby用マルチ仮想マシンによる並列処理の実現 | |||||||
タイトル | ||||||||
言語 | en | |||||||
タイトル | Parallel Processing on Multiple Virtual Machine for Ruby | |||||||
言語 | ||||||||
言語 | jpn | |||||||
キーワード | ||||||||
主題Scheme | Other | |||||||
主題 | 通常論文 | |||||||
資源タイプ | ||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_6501 | |||||||
資源タイプ | journal article | |||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属 | ||||||||
株式会社ネットワーク応用通信研究所 | ||||||||
著者所属 | ||||||||
株式会社ネットワーク応用通信研究所 | ||||||||
著者所属 | ||||||||
東京大学大学院情報理工学系研究科 | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Network Applied Communication Laboratory, Inc. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Network Applied Communication Laboratory, Inc. | ||||||||
著者所属(英) | ||||||||
en | ||||||||
Graduate School of Information Science and Technology, The University of Tokyo | ||||||||
著者名 |
笹田, 耕一
卜部, 昌平
松本, 行弘
平木, 敬
× 笹田, 耕一 卜部, 昌平 松本, 行弘 平木, 敬
|
|||||||
著者名(英) |
Koichi, Sasada
Shohei, Urabe
Yukihiro, Matsumoto
Kei, Hiraki
× Koichi, Sasada Shohei, Urabe Yukihiro, Matsumoto Kei, Hiraki
|
|||||||
論文抄録 | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | 我々は,高性能な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を用いた並列処理の現在の実装での性能評価について述べる. | |||||||
論文抄録(英) | ||||||||
内容記述タイプ | Other | |||||||
内容記述 | We are developing a high-performance Ruby interpreter. The current interpreter is a bytecode-based Virtual Machine (VM). However, the current VM does not support parallel processing because the VM is restricted to running at most one Ruby thread at time. Parallel processing using multiple processes requires additional overhead to transfer objects over some inter-process communication mechanism. Based on these challenges, we are developing a Multiple Virtual Machine (MVM) implementation which can run multiple Ruby VMs simultaneously in one process. Each individual VM manages an isolated object space. For MVM, we implemented a fast object transfer technique by taking advantage of sharing the same virtual address space. We also designed a programming interface (API) to use these features. Moreover, we extended dRuby, a remote method invocation framework, to make it easy for programmers to use MVM features. In order to keep compatibility with the current Ruby interpreter, we implemented MVM by replacing the current VM's use of process-global resources, such as C global variables and I/O resources, with the use of VM-local data structures. In this paper, we will describe the design and implementation of our MVM and its API. We will also show several performance evaluations of parallel processing in Ruby using our current MVM implementation. | |||||||
書誌レコードID | ||||||||
収録物識別子タイプ | NCID | |||||||
収録物識別子 | AA11464814 | |||||||
書誌情報 |
情報処理学会論文誌プログラミング(PRO) 巻 5, 号 2, p. 25-42, 発行日 2012-03-30 |
|||||||
ISSN | ||||||||
収録物識別子タイプ | ISSN | |||||||
収録物識別子 | 1882-7802 | |||||||
出版者 | ||||||||
言語 | ja | |||||||
出版者 | 情報処理学会 |