InfoQ ホームページ Threading に関するすべてのコンテンツ
-
RubiniusがEngineYardのAppCloudに登場、1.9とGIL除去に関する作業は継続中
EngineYardはRubiniusをAppCloud PaaSサービスに提供し始めた。InfoQはEvan Phoenix氏にRubiniusの状態、新しいパフォーマンスツール、GIL除去の状況について聞いた。
-
MacRuby まとめ: 0.7 リリース,GCD ベースの Web サーバ,BridgeSupport
MacRuby 0.7 が公開された。通常のパフォーマンスや互換性の改良に加えて,Ruby 1.9.2 との互換性も向上している。Snow Leopard の Grand Central Dispatch (GCD) との密な結合を実証するため,ControlTower という Rack ベースの Web サーバもリリースされている。さらに,新しい BridgeSupport によって,すべての API へのアクセスとスクリプト記述が可能になった。
-
Rubinius 1.1 - そしてGILの将来
Rubinius 1.1がリリースされた。JITと性能が改善され、デバッグ機能とプロファイリング機能が強化された。また、GILのアルゴリズムも見直された。しかし、GILは間もなく過去のものになるだろう。RubiniusプロジェクトのHydraと名付けられたブランチでは、GILのないRubiniusが育てられている。JRuby、IronRuby、MacRubyのようなGILのないVMの仲間入りするのも時間の問題だ。InfoQはこのHydraブランチについてEvan Phoenix氏に話を聞いた。
-
JRuby Roundup:JRuby-Profで高速プロファイリングが可能に、JRuby::Synchronizedで同期の自動化
JRuby-Profは、新しいオーバヘッドの小さいJRuby用のプロファイラで、単純なJavaプロファイラと違って、きれいなRuby固有のレポートを生成する。JRubyの新しいフィーチャであるJRuby::Synchronizedモジュールは、拡張すれば、クラスの全てのメソッドをsynchronizedにできる。
-
動的言語総まとめ : PythonのGILが徹底改善されるも廃止はされない。SqueakがAndroidに移植された。
Pythonの高速化を支援するUnladen SwallowプロジェクトはメインストリームのPythonへ統合することを提案した。このプロジェクトの目標のひとつはGILを削除することだった。 Antoine Pitrou氏によるPythonの新しいGILはマルチコアCPU上で、よりスムーズに動くようになり、今までよりも邪魔にならなくるだろう。また、Squeak Smalltalk が Android上へ移植された。
-
Clojure 1.1,効率のためにトランジェントとチャンクシーケンスを追加
Clojure 1.1 RC1 が公開された。永続的データ構造に可変性の制御機能を与える "トランジェント(Tranjent)",遅延シーケンスを効率化する "チャンクシーケンス(Chunked Sequence)" の導入によって,関数プログラミングのコンストラクタに関するオーバーヘッドが改善されている。InfoQ では,これら改良点がどのように動作するかを調査した。
-
MacRuby 0.5ベータが登場。JIT、AOT、GCDサポート、GILの削除を実現
MacRuby 0.5の最初のベータがリリースされた。これは新しいVM、JIT、AOTを備え、GILの削除を実現している。InfoQはMacRubyコアチームにインタビューして、MacRubyの状況とMacRubyを使ってiPhoneアプリが書けるかなどについて聞いてみた。
-
Rubyのスレッディングとガベージコレクションの今後 - 笹田耕一氏インタビュー
Ruby 1.9.2に何が入るのか、グローバルインタープリタロック(もしくはグローバルVMロック)の状況、1.9.xに世代別GCが入るのには何が必要なのか、などについて、InfoQはRuby 1.9.xのVM開発者である笹田耕一氏に質問した。
-
Blackboard による Ruby でのタプルスペース永続性の調査
Ruby 1.8 のグリーンスレッドは,以前からその性能が批判されている。Luc Castera氏は RubyNation コンファレンスでRuby とタプルスペースによる並列プログラミングの発表を行い,Ruby でのタプルスペース実装方式として,Rinda と Redisを用いたBlackboard(とErlangへの移植計画)の2つを紹介した。
-
MacRuby、GILをなくして平行スレッドを得る
MacRubyはexperimentalブランチでRuby 1.9のGIL(グローバルインタプリタロック)を取り除き、JRubyやIronRubyの仲間入りをした。
-
Rich Hicky氏、Clojureの特徴と実装について語る
QCon London 2009 でのこのインタビューの中で、Rich Hickey氏はClojureについて語っている。議論の中でClojureのSTMサポートの背後にある考えや、Clojureが他にどんな並行性プリミティブをサポートしているか、将来どんなプリミティブが追加されそうか、などが語られている。他にも、ClojureのAOTサポートや、マルチメソッドの役割とその実装について、Clojureの他のシステムへの移植について、など満載である。
-
Rubyパフォーマンス総まとめ:Heap Stackによる1.8.xのスレッドの高速化、MacRuby AOT、ZenProfileとEventHook
Joe Damato氏による新しいパッチはheap stackを利用してRuby 1.8.xのグリーンスレッドの効率を改善する。コンテキストスイッチの度ごとにスタック全体をコピーする代わりに、そのパッチは異なるスタックの交換だけを行う。Ryan Davis氏は効率的なプロファイリングのためにzenprofileとevent_hookをリリースした。さらに、MacRubyのLLVMを用いた事前コンパイラに関する作業が開始されている。
-
-
RubyのMVM APIの共同研究が始まる
RubyでマルチコアCPUマシンを利用することは、これまで、問題のあるテーマであった。Ruby 1.8までは、Rubyのインタプリタはユーザスペース・スレッディングを使用していた。つまり、スレッドはRubyのインタプリタによってスケジュールされているということである。
-
Article: Rubyの並行性、アクター、およびRubinius - MenTaLguY氏へのインタビュー
Ruby 1.9でのファイバー (コルーチン) の追加、および最近のErlangおよびアクターの人気など、あまり知られていない概念がRubyプログラミングの世界に入ってきている。並行性を考えたときにRubyの世界で何が使用可能であるかを大まかに理解するため、長年RubyコミュニティのメンバーであるMenTaLguY氏に話を伺った。