InfoQ ホームページ Parallel Programming に関するすべてのコンテンツ
-
Microsoft .NETでの並列プログラミング
Patterns&Practicesチームが、.NETで並列プログラムを書くためのガイダンスである『Microsoft .NETでの並列プログラミング』という書籍をリリースした。この本には、並列プログラミングのための6つのデザインパターンがサンプルコード付きで収録されている。
-
Aparapi:任意の計算タスクを実行するための新たな “Pure Java” API
InfoQはAparapiのαリリースを公開したAMDのGary Frost氏と情報交換した。AparapiはプログラマがGPU上で実行可能なロジックをJavaで書くことを可能にするAPIだ。GPUは極めて並列化されたハードウェアアクセラレーションチップであり、もともとグラフィックスレンダリング性能の向上のためにPCにインストールされたものだが、今やグラフィックスとは無関係な計算負荷の高いタスクにも進出している。
-
ハードウェアの観点からの並列化の進化
Brian Goetz氏とCliff Click氏は、先週行われたJavaOne conferenceにおいて、 ハードウェアの観点から、並列処理の進化について講演を行った。彼らは、 CPU設計者は将来、スループットをあげるための並列化に注力するようになるだろう と述べた。またアプリケーションの並列性を達成するための部分的なソリューションとして スレッドプールやFork/Join、Map/Reduceやアクターについても議論した。
-
進歩を見せる .NET のオプションパラメータ
オプションパラメータは最初から .NET に含まれていたが,C# でサポートされないこともあり,COM ライブラリ関連以外での使用はタブーである,という解釈が一般的だった。C# 4 でオプションパラメータがサポートされるようになるので,今後はレガシーなコード以外でも多く見られるようになりそうだ。また C# 以外にも,動的言語との相互運用性や変更不能(immutable)なデータ構造体,さらに ASP.NET MVC のさまざまな部分でも使われるようになるだろう。
-
.NET 並列処理拡張のためのパターンとサンプル
Microsoft は 2007 年から .NET の並列処理拡張 (Parallel Extensions) に取り組んでいるが,それでも .NET 4.0 に実装完成が間に合わなかった機能が数多く残っている。“フレームワークのコアに含めるには,アプリケーション依存性が強すぎる” 機能もあったが,その他は単純にテストとユーザフィードバックの不足が理由だ。代わりとして彼らは,一連のパターンとサンプルをリリースすることにした。
-
Accelerator V2を使ったマルチコアGPU/CPU上での並列プログラムの実行
現在、プレビュービルドとして提供されているAccelerator V2は、.NETのマネージ・ライブラリでマルチコアCPUやGPU上でのデータ並列プログラムを記述する際の手間を省いてくれるものだ。
-
Clojure総まとめ:Craneによる配布、Incanterによる算術計算、Leiningen 1.0によるビルド
Clojureインスタンスwの配布と遠隔操作のためのツールであるFlightCasterのオープンソースCraneは、現在EC2に特化されている。IncanterはClojureを使って簡単にR風の統計計算ができるClojureライブラリとツールである。また、ビルドと依存関係管理ツールであるLeiningen 1.0がリリースされた。
-
オープンソース・プロジェクトによりMicrosoftが生命工学の市場に参入
Microsoft Biology Foundation(MBF)は、.NETフレームワーク上に構築されたライブラリ群であり、オープンソースの伝統に基づいている。Microsoftは、車輪の再発明をすることなく、既に生物情報工学のコミュニティで利用されているファイルフォーマットを活用している。さらにMicrosoftにとってはめずしいことだが、MBFの将来バージョンに加えられる貢献を広く募集しているのだ。
-
Task Parallelライブラリの新しいキャンセルフレームワークのご紹介
.NETのTask Parallelライブラリは、ベータ2のためにモデルチェンジを行なった。パフォーマンスの向上に加えて、もっとも重要な変更は、おそらく新しいキャンセルフレームワークであろう。これは、親子関係をタスクの論理グループに自由に与えることができるキャンセルトークンによって置き換えるものである。
-
Googleの実験、新しい言語Go
GoはGoogleによる新しい���ープンソースの実験的プログラミング言語である。Cに似ているが、リフレクション、ガベージコレクタ、動的型、並行性、および、並列処理のような機能が追加されている。
-
.NET 4のキャンセルフレームワーク
.NET 4には、キャンセルに対応したアプリケーションやライブラリの構築を支援する新しい型が含まれる予定である。CancellationToken、 CancellationTokenSource、そしてキャンセル例外という新しい型は、協調的なキャンセルフレームワークを提供する。
-
MicrosoftがAxumをリリース
2週間前InfoQは、進化言語プロジェクトであるAxumをシップするというMicrosoftの計画を発表した。その一方で、Microsoftは早期リリース(v.0.1)のパッケージ化を完了し、ダウンロードで利用可能にした。
-
Axum - Microsoftによる並行性のためのアプローチ
AxumはMicrosoftのインキュベーション言語プロジェクトであり、分離やアクター、メッセージパッシングを通じて.NETに並列プログラミングモデルを提供するものだ。以前はMaestroと呼ばれていた。この言語はErlangから多くの概念を借り受けているが、C#風の構文を使っている。
-
並列プログラミングは難しい?Guy Blelloch 教授はそうではないと主張
Cilk Arts での評論において Guy Blelloch 教授は並列プログラミングは本来難しいものではなく、むしろ抽象化に関する問題であると主張している。Blelloch 氏が特定する3つの問題点は、並列的思考の訓練の欠如、並列的な実装のアルゴリズムからの分離、そして決定論である。それぞれの問題についての詳述の後、彼はなぜそれらが克服可能であると考えるのかを説明している。
-
関数型プログラミングとCoordination Data Structures
Coordination Data Structures (CDS) は.NET 4で計画されている新しいAPIであり、スレッドセーフなオブジェクトや主にコレクションを扱うものだ。そのCDSに、およそ6ヶ月の沈黙を経ていくつかの大きな更新があった。もっとも注目に値するのは関数型プログラミングの手法が導入されたことだ。これによってデザインパターンを使う必要性が軽減される。