LLVM 2.6リリース

 10月23日、オープンソースのコンパイラインフラストラクチャ環境「Low Level Virtual Machine(LLVM)」の新版「LLVM 2.6」がリリースされた。C/C++/Objective-Cフロントエンド「Clang」が公式に追加されたほか、JVM/CLI仮想環境の改善や、コンパイラがコード生成に使用できるランタイムライブラリ「compiler-rt」といった新たなツールキットの追加などが行われている。

Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム

 インテル コンパイラーの特徴の1つに「自動ベクトル化」がある。これはSSE(Streaming SIMD Extensions)と呼ばれるCPUの機能を利用することで数値演算の高速化を図るものだ。インテル コンパイラーは最新のCore i7といったCPUに搭載されているSSE4.2に対応しており、現行のほとんどのインテルCPUにおいて高速化が期待できる。本記事では、インテル コンパイラーでのSSEの使用と、その効果について解説する。

オープンソース化された並列化テンプレートクラスライブラリ「Intel Threading Building Blocks」入門

 C++で並列アプリケーションを実装するためのテンプレートライブラリとして、インテルがリリースしている「Intel Threading Building Blocks」(TBB)がある。TBBはインテル コンパイラーやインテル Parallel Studioといったインテルのコンパイラ製品に付属しているほか、オープンソース版も公開されている。本記事ではこのTBBの概要と、基本的な使い方を解説する。

STマイクロ子会社、GPUプログラミングに対応した新コンパイラ発表

 STマイクロエレクトロニクスは2009年6月30日、高性能並列化コンパイラと開発ツールのセット製品「PGI Release 9.0」を発表した。米NVIDIAの「CUDA」対応GPUを内蔵したx86-64プロセッサ・ベースのLinuxシステム上で、GPUプログラミングモデル「PGI Accelerator」をサポートする初の製品という。HPC分野でのGPU利用に対応する。

Parallel Studioを活用したソフトウェアの並列化:AACエンコーダを高速化する

 プログラムの高速化が強く求められている分野の1つに、画像処理や音声処理、動画処理といったマルチメディア処理が挙げられる。これらのプログラムは処理すべきデータ量も多く、また行う処理も非常に複雑である。そのため、PCの処理速度が向上した現在でも「時間がかかる処理」の代表であり、このような処理にこそ並列化による処理速度の高速化が期待されている。本記事ではフリーの音声エンコーダ「FAAC」をインテルの並列プログラミング支援ツール「Parallel Studio」を使って並列化し、その処理速度を高速化する試みを紹介する。

並列アプリケーションを作ってみよう

 インテルのCoreシリーズCPUが登場して以来、マルチコアCPUは爆発的に普及している。現在では比較的低価格なCPUでも複数のコアを搭載するようになり、現在販売されているPCのほとんどはマルチコアに対応しているといっても過言ではない。しかし、まだマルチコアCPUの性能を生かす、並列処理を行っているアプリケーションは多くない。

トランス・ニュー・テクノロジー、データ構造や関数を自動生成するツール「GommaDof」β版公開

 トランス・ニュー・テクノロジー(本社:東京都荒川区)は、安全で高効率なデータ構造と、それらを扱う関数を自動生成するコードジェネレータ「GommaDof(Generator of memory manager and Database-oriented framework)」(ごまどうふ)β版バイナリの無償配布を2009年5月29日開始した。バグやパフォーマンス低下が発生しやすいメモリまわりの煩雑な管理から開発者を解放するという。

マルチコア時代の新開発ツール「インテル Parallel Studio」

 インテルが新しい開発ツール「インテル Parallel Studio」を発表した。Parallel StudioはマルチコアCPUで高いパフォーマンスを発揮するソフトウェアを開発するためのツールで、並列化機能および強力な最適化機能を備えたコンパイラや並列化関連ライブラリ、デバッガ、プロファイラから構成されている。本記事では、このParallel Studioの機能や特徴を紹介する。

ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る

 従来は高級サーバーでしか採用されていなかったマルチCPU/マルチコアが、一般的なPCにも普及しつつある。このようなマルチCPU/マルチコア環境において、高速に動作するアプリケーションを開発するために注目されているのが「並列化」技術である。本記事では、この並列計算の基本的な考え方やそのメリット、利用できるライブラリなどについて紹介する。

マルチスレッド/並列プログラミングの必携ツール「インテル Parallel Studio」徹底活用

 Intel Core 2シリーズの登場以来、一般的なPCにおいてもマルチコアCPUが普及しつつある。それとともに注目を浴びつつあるのが、プログラムの並列化/マルチスレッド化だ。そんな中、インテルから、並列プログラミングを強力にサポートする開発ツール「インテル Parallel Studio」(以下、Parallel Studio)が登場した。

インテル コンパイラーの実力を測る――インテル コンパイラー版MySQLは本当に速いのか?

 インテルが開発している「インテル コンパイラー」は、インテルCPUに最適化された高速なバイナリを生成するということで知られており、Oracleなどパフォーマンスを求めるベンダーで採用されているほか、科学計算用アプリケーション、3Dグラフィックソフトなど、さまざまなソフトウェアのコンパイルに利用されている。

 しかし、「インテル コンパイラーはパフォーマンスが高い」とだけ言われても、なかなかピンと来ない人も多いのではないだろうか。そこで、インテル コンパイラーでコンパイルされたバイナリをベンチマークテストし、実際どの程度の性能向上が見込まれるのかを調べてみよう。

「インテル コンパイラー」で高速に動作するバイナリを作成しよう

 インテルが開発している「インテルコンパイラー」は、インテルCPUに最適化された高速なバイナリを生成するということで知られている。そのため、大量の数値計算が必要とされるシミュレーションの分野や3D CGなどの画像処理、科学技術分野などのソフトウェアで多く採用されている。

 しかし、「インテルコンパイラーはパフォーマンスが高い」とだけ言われても、なかなかピンと来ない人も多いのではないだろうか。また、一般的なソフトウェアでも性能向上の恩恵に預かれるのかも興味深いところだろう。

 そこで本特集では、このインテル コンパイラーでコンパイルされたソフトウェアについてそのパフォーマンスを調査するとともに、インテル コンパイラーでのコンパイルテクニックや、性能解析ツール「インテル VTune パフォーマンス・アナライザー」を使ってパフォーマンスチューニングを行う方法なども解説する。

テクマトリックス、C/C++対応テストツール最新版「Parasoft C++test 7.2」日本語版を発売

 テクマトリックス(本社:東京都港区)は2009年2月9日、米Parasoftが開発したC/C++対応テストツールの最新バージョン「Parasoft C++test 7.2」日本語版を発売した。C/C++ソフトウェア開発の単体テストと静的検証を自動化する自動ユニットテストツールで、組み込みソフトウェア環境のサポートなどを充実させた。

コンパイラを変えるだけでパフォーマンス向上、インテル コンパイラーの実力を見る

 「よりパフォーマンスの高いプログラムを作成するにはアセンブラを駆使すべし」という話を聞いたことがある人も多いだろう。これは、C/C++言語で記述されたプログラムには冗長な部分があるため、ノウハウを持つプログラマがアセンブラでチューニングしたプログラムの方が高いパフォーマンスを得られる、ということであった。しかし、現在では必ずしもこのことは当てはまらなくなっている。その理由は、コンパイラの進化と、CPUおよびPCアーキテクチャの複雑化にある。

インテル謹製の数値演算ライブラリ「MKL」を使ってプログラムを高速化

 各種スケジューリング処理やシミュレーション、統計処理、デジタル制御や信号処理などの分野では、多次元行列演算や高速フーリエ変換(FFT)、線形計画法など、さまざまな数学的処理が必要とされる。これらの処理に対するアルゴリズムはほぼ完成されており、フリー/商用を問わず、すでに多数の計算ライブラリがリリースされている。その1つが、インテルが提供する「インテル マス・カーネル・ライブラリ」(Intel Math Karnel Library、以下MKL)だ。