著者
笹田 耕一 松本 行弘 前田 敦司 並木 美太郎
雑誌
情報処理学会論文誌プログラミング(PRO) (ISSN:18827802)
巻号頁・発行日
vol.48, no.SIG10(PRO33), pp.1-16, 2007-06-15

本論文ではスクリプト言語Ruby 用仮想マシンYARV: Yet Another RubyVM における並列実行スレッド処理機構の実装について述べる.Ruby はその使いやすさから世界中で広く利用されているプログラム言語である.Ruby の特徴の1 つにマルチスレッドプログラミングに対応しているという点があるが,現在広く利用されているRuby 処理系は移植性を高めるため,すべてユーザレベルでスレッド制御を行っている.しかし,このスレッド実現手法では,実行がブロックしてしまう処理がC 言語レベルで記述できない,並列計算機において複数スレッドの並列実行による性能向上ができないなどの問題がある.そこで,現在筆者らが開発中のRuby 処理系YARV において,OS やライブラリなどによって提供されるネイティブスレッドを利用するスレッド処理機構を実装し,複数スレッドの並列実行を実現した.並列化にあたっては,適切な同期の追加が必要であるが,特に並列実行を考慮しないC 言語で記述したRuby 用拡張ライブラリを安全に実行するための仕組みが必要であった.また,同期の回数を減らす工夫についても検討した.本論文では,これらの仕組みと実装についての詳細を述べ,スレッドの並列実行によって得られた性能向上について評価した結果を述べる.

言及状況

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

Twitter (4 users, 4 posts, 17 favorites)

わからないことが多すぎるので1.9以降のRubyスレッドの成り立ちから知りたくて読んでみた。すごい勉強になりました。 Ruby 用仮想マシンYARVにおける並列実行スレッドの実装 https://t.co/H2WFg91guo
[Ruby 用仮想マシンYARVにおける並列実行スレッドの実装](https://t.co/MmdJW8unm6) この論文では、M:N で N がネイティブスレッドだな。 しかし、この論文では M:N はダメだと結論している https://t.co/AMGUoGqxPI
今取ってる講義の先生の研究実績を調べてたらYARVのThread実装に関わっていたらしい。意外なところで自分が普段使ってる言語と繋がりがあるもんだなぁ https://t.co/JOheEQ2znA

収集済み URL リスト