InfoQ ホームページ Concurrency に関するすべてのコンテンツ
-
ハードウェアの観点からの並列化の進化
Brian Goetz氏とCliff Click氏は、先週行われたJavaOne conferenceにおいて、 ハードウェアの観点から、並列処理の進化について講演を行った。彼らは、 CPU設計者は将来、スループットをあげるための並列化に注力するようになるだろう と述べた。またアプリケーションの並列性を達成するための部分的なソリューションとして スレッドプールやFork/Join、Map/Reduceやアクターについても議論した。
-
Microsoftのソフトウェアトランザクショナルメモリに関する実験が終了
Dana Groff氏は、Microsoftが行っていた.NET Framework向けソフトウェアトランザクショナルメモリの実験の終了をアナウンスした。STM.NETとして知られているこの研究プロジェクトは、並列処理問題を取り扱う時に、明示的なロックの代替手段として、2008年から始まった。
-
.NET 並列処理拡張のためのパターンとサンプル
Microsoft は 2007 年から .NET の並列処理拡張 (Parallel Extensions) に取り組んでいるが,それでも .NET 4.0 に実装完成が間に合わなかった機能が数多く残っている。“フレームワークのコアに含めるには,アプリケーション依存性が強すぎる” 機能もあったが,その他は単純にテストとユーザフィードバックの不足が理由だ。代わりとして彼らは,一連のパターンとサンプルをリリースすることにした。
-
ヒープサイズを増やしてもガベージコレクションの停止時間を短いままに: Cliff Click博士とのQ&A
ヒープサイズとガベージコレクションの停止時間にある強い相関関係が、Javaアプリケーションのスケーラビリティを制限する大きな要因のひとつになっている。そして、こうした状況を改善しようと、研究開発にかなりの労力が費やされている。Azulのソリューションについて、現在、Azul SystemsのチーフJVMアーキテクトであり、以前、HotSpot Server Compilerのアーキテクト兼リード開発者であったCliff Click博士に話をうかがった。
-
JRuby Roundup:JRuby-Profで高速プロファイリングが可能に、JRuby::Synchronizedで同期の自動化
JRuby-Profは、新しいオーバヘッドの小さいJRuby用のプロファイラで、単純なJavaプロファイラと違って、きれいなRuby固有のレポートを生成する。JRubyの新しいフィーチャであるJRuby::Synchronizedモジュールは、拡張すれば、クラスの全てのメソッドをsynchronizedにできる。
-
Akka - アクターによりスケーラビリティ、フォールトトレランス、並行性、リモーティングをシンプルに実現する
本日、Akkaチームは、Java仮想マシン用のアクターフレームワークAkkaのversion 0.7をリリースした。Akkaでは、メッセージベースのアクター、ソフトウェアトランザクションメモリ、適切なフォールト処理戦略によるソリューションにより、これからの並行性の課題を解決しようとしている。Akkaの背景にある意図、現状と採用状況、今後の計画について、Jonas Bonér氏に話を聞いた。
-
ConcurrentDictionaryは、.NET 4.0の新しいスレッドセーフなHashtable
ConcurrentDictionaryは、.NET 4.0で大幅に強化されるパラレルと並列プログラミングに対する礎石である。しかし、それについて調べる前に、以前のバージョンの.NETの問題点について確認してみよう。
-
動的言語総まとめ : 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 では,これら改良点がどのように動作するかを調査した。
-
Task Parallelライブラリの新しいキャンセルフレームワークのご紹介
.NETのTask Parallelライブラリは、ベータ2のためにモデルチェンジを行なった。パフォーマンスの向上に加えて、もっとも重要な変更は、おそらく新しいキャンセルフレームワークであろう。これは、親子関係をタスクの論理グループに自由に与えることができるキャンセルトークンによって置き換えるものである。
-
.NET 4.0 ベータ2でCoordination Data Structuresライブラリが改善
Coordination Data Structures (CDS)は、直接使うこともできるし、複雑な並列処理フレームワークの構成要素としても利用できるデータ構造だ。CDSはバリア機構のような先進的な同期の仕組みや、数種類のスレッドセーフなコレクション、非同期処理の結果を取得するいくつかの異なる方法を提供する。
-
Googleの実験、新しい言語Go
GoはGoogleによる新しいオープンソースの実験的プログラミング言語である。Cに似ているが、リフレクション、ガベージコレクタ、動的型、並行性、および、並列処理のような機能が追加されている。
-
Scalaのアクターのための性能を犠牲にしないで競合安全性を確保する型システム
Philipp Haller氏とMartin Odersky氏が紹介するのはScalaのアクターが安全にメッセージを送受信するための型システムだ。EPFL Scalaコンパイラの拡張として定式化されたこの“オブジェクト能力型”システムはオブジェクトの能力に対する検証と外部向けの一意性に基づいている。この仕組みは、性能を犠牲にすることなく競合に対する安全性を確保し、メッセージ送受信の既存の方法にある無視できない限界を取り除く。
-
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の仲間入りをした。