== 記事一覧 ==
{{{ html
<div class="hpcpp-keywords">
}}}
[[PageOutline(start=2,depth=2,type=unordered)]]
{{{ html
</div>
}}}
== 並列プログラミング関連記事一覧 ==
{{{ html
<div class="lead">
}}}
=== [オープンソース化された並列化テンプレートクラスライブラリ「Intel_Threading_Building_Blocks」入門_p1 オープンソース化された並列化テンプレートクラスライブラリ「Intel Threading Building Blocks」入門]
[[Thumb(マルチスレッド_並列プログラミングの必携ツール「インテル_Parallel_Studio」徹底活用:d71bc3443c46cdafce23cd43aa9b0475.png, float=right)]]
C++で並列アプリケーションを実装するためのテンプレートライブラリとして、インテルがリリースしている「Intel Threading Building Blocks」(TBB)がある。TBBはインテル コンパイラーやインテル Parallel Studioといったインテルのコンパイラ製品に付属しているほか、オープンソース版も公開されている。本記事ではこのTBBの概要と、基本的な使い方を解説する。
=== [Parallel_Studioを活用したソフトウェアの並列化:AACエンコーダを高速化する_p1 Parallel Studioを活用したソフトウェアの並列化:AACエンコーダを高速化する]
[[Thumb(マルチスレッド_並列プログラミングの必携ツール「インテル_Parallel_Studio」徹底活用:0bfd66f200c4106ccdb85ce137dffab2.png, float=right)]]
処理の高速化が強く求められている分野の1つに、画像処理や音声処理、動画処理といったマルチメディア処理が挙げられる。これらのプログラムは処理すべきデータ量も多く、また行う処理も非常に複雑である。そのため、PCの処理速度が向上した現在でも「時間がかかる処理」の代表であり、このような処理にこそ並列化による処理速度の高速化が期待されている。本記事ではフリーの音声エンコーダ「FAAC」をインテルの並列プログラミング支援ツール「インテル Parallel Studio」を使って並列化し、その処理速度を高速化する試みを紹介する。
=== [並列アプリケーションを作ってみよう_p1 並列アプリケーションを作ってみよう]
[[Thumb(マルチスレッド_並列プログラミングの必携ツール「インテル_Parallel_Studio」徹底活用:7085e1c160d55145b9f68dd599651e14.png, float=right)]]
インテルのCoreシリーズCPUが登場して以来、マルチコアCPUは爆発的に普及している。現在では比較的低価格なCPUでも複数のコアを搭載するようになり、現在販売されているPCのほとんどはマルチコアに対応しているといっても過言ではない。しかし、まだマルチコアCPUの性能を生かす、並列処理を行っているアプリケーションは多くない。本記事では、このような技術を利用した並列処理の実装方法を、簡単な画像処理アプリケーションを例に説明していく。
=== [サンプルコードで知るParallel_Studioの並列化機能_p1 サンプルコードで知るParallel Studioの並列化機能]
[[Thumb(マルチスレッド_並列プログラミングの必携ツール「インテル_Parallel_Studio」徹底活用:f5165db65a4aa05c5033febccd3b6f0f.png, float=right)]]
「インテル Parallel Studio」はマルチスレッドやOpenMPなどを使用した、並列処理を行うプログラムの開発を支援するツールである。本記事では、Parallel Studioに含まれる並列化機能や強力な最適化機能、並列化関連ライブラリ、デバッガ、プロファイラといった機能や、使い方の例などを紹介していく。
=== [マルチコア時代の新開発ツール「インテル_Parallel_Studio」_p1 マルチコア時代の新開発ツール「インテル Parallel Studio」]
[[Thumb(マルチスレッド_並列プログラミングの必携ツール「インテル_Parallel_Studio」徹底活用:67c5132f1600e1929f88df6501af97bf.png, float=right)]]
インテルが新しい開発ツール「インテル Parallel Studio」を発表した。Parallel StudioはマルチコアCPUで高いパフォーマンスを発揮するソフトウェアを開発するためのツールで、並列化機能および強力な最適化機能を備えたコンパイラや並列化関連ライブラリ、デバッガ、プロファイラから構成されている。本記事では、このParallel Studioの機能や特徴を紹介する。
=== [ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る_p1 ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る]
[[Embed(マルチスレッド_並列プログラミングの必携ツール「インテル_Parallel_Studio」徹底活用:b449076af9fac911ff9d5dd089041dfd.png, float=right)]]
従来は高級サーバーでしか採用されていなかったマルチCPU/マルチコアが、一般的なPCにも普及しつつある。このようなマルチCPU/マルチコア環境において、高速に動作するアプリケーションを開発するために注目されているのが「並列化」技術である。本記事では、この並列計算の基本的な考え方やそのメリット、利用できるライブラリなどについて紹介する。
{{{ html
</div>
}}}
== HPCプログラミング関連記事一覧 ==
{{{ html
<div class="lead">
}}}
=== [Windows_7に完全対応したインテル_コンパイラー_11.1_p1 Windows 7に完全対応したインテル コンパイラー 11.1]
[[Embed(Windows_7に完全対応したインテル_コンパイラー_11.1_p1:8f54717302884a063a5179201400f3b5.png, float=right)]]
Windows 7の導入にあたり、いままで使っていたアプリケーションや開発ツールが新しい環境でも正しく動作するか気になっているユーザーも多いだろう。そこで本記事では、Windows 7環境でのインテル コンパイラーやVisual Studioといった開発ツールの動作確認や、Windows 7向けのWindows SDKの導入、そしてパフォーマンス検証など、Windows 7上での開発環境の利用について紹介する。
=== [インテル_コンパイラー_1000本ノックプロジェクト_p1 インテル コンパイラー 1000本ノックプロジェクト]
インテル コンパイラーはVisual C++やGCCといったコンパイラと高い互換性を備えている。そのため、多くのソフトウェアではほとんど修正を行うこと無しにインテル コンパイラーでのコンパイルが可能であるが、ソフトウェアによってはコンパイル時の設定にコツがあったり、ソースコードの修正等が必要な場合もある。本記事では、さまざまなオープンソースソフトウェアをインテル コンパイラーでコンパイルし、そのコンパイル方法や注意点を紹介する。
=== [インテル_コンパイラーで試す次世代C__規格「C__0x」_p1 インテル コンパイラーで試す次世代C++規格「C++0x」]
インテル コンパイラーではOpenMP 3.0やC++ラムダ関数、並列コンパイルといった、新規格や最近注目されている機能がいち早く取り入れられている。本記事では、インテル コンパイラーが採用した新規格について解説する。
=== [Core_i7のSSE4.2にも対応、インテル_コンパイラーで作るSSE対応プログラム_p1 Core i7のSSE4.2にも対応、インテル コンパイラーで作るSSE対応プログラム]
[[Embed(新しくなったインテル_コンパイラー_11.1日本語版を使って最新環境向けビルドにチャレンジ:374dabfcc13d28994c5fd879106d2ce3.jpg, float=right)]]
インテル コンパイラーの特徴の1つに「自動ベクトル化」がある。これはSSE(Streaming SIMD Extensions)と呼ばれるCPUの機能を利用することで数値演算の高速化を図るものだ。インテル コンパイラーは最新のCore i7といったCPUに搭載されているSSE4.2に対応しており、現行のほとんどのインテルCPUにおいて高速化が期待できる。本記事では、インテルコンパイラーでのSSEの使用と、その効果について解説する。
=== [インテル_コンパイラーでビルドする高速Firefox_p1 インテル コンパイラーでビルドする高速Firefox]
[[Embed(「インテル_コンパイラー」で高速に動作するバイナリを作成しよう:4d68dafd07f1b05eab4deb7324331de2.png, float=right)]]
近年、そのパフォーマンス競争が盛んに行われている分野として、Webブラウザが挙げられる。たとえばSafari 4のベータ版は自らを「世界最高速」とうたうなど、それぞれのWebブラウザが自身の高速性をアピールしているが、それではWebブラウザのコンパイルにインテル コンパイラーを利用することでパフォーマンスを向上できないだろうか? そこで、Firefoxの最新版であるFirefox 3.1 ベータ2について、Windows環境でインテル コンパイラーを使用してコンパイルし、そのパフォーマンスを調査してみた。
=== [パフォーマンス解析ツール「VTune」でアプリケーションを高速化_p1 パフォーマンス解析ツール「VTune」でアプリケーションを高速化]
[[Embed(「インテル_コンパイラー」で高速に動作するバイナリを作成しよう:3d7a1f94b79951b6e0e7cc613b9899f6.gif, float=right)]]
作成したプログラムのパフォーマンスに問題がある場合、性能解析ツールを利用して問題点を分析するのが一般的だ。性能解析ツールには様々なものがあるが、その中でも高機能なものとしてインテルが開発する性能解析ツール「インテル VTune パフォーマンス・アナライザー」がある。本記事ではパフォーマンスの問題が発見されたプログラムを対象に、このインテル VTune パフォーマンス・アナライザーを使用して問題点の調査とパフォーマンスの改善を行う例を紹介する。
=== [インテル_コンパイラーでオープンソースソフトウェアをコンパイルしよう_p1 インテル コンパイラーでオープンソースソフトウェアをコンパイルしよう]
[[Embed(「インテル_コンパイラー」で高速に動作するバイナリを作成しよう:a6b24cd245ec6d5a1bf5648d1b972733.gif, float=right)]]
インテルの「インテル C++ コンパイラー」は高速なバイナリを生成するということで知られている。しかし、インテル C++ コンパイラーはVisual C++やGCCとの互換性を備えているものの、完全に同一というわけではない。そこで、有名なオープンソースソフトウェアについてインテル C++ コンパイラーでのコンパイルを行い、どの程度の修正でコンパイルが可能なのか、またそのパフォーマンスはどうなのか、調査してみよう。
=== [インテル_コンパイラーの実力を測る――インテル_コンパイラー版MySQLは本当に速いのか?_p1 インテル コンパイラーの実力を測る――インテル コンパイラー版MySQLは本当に速いのか?]
[[Embed(「インテル_コンパイラー」で高速に動作するバイナリを作成しよう:9e7da1d763a185915fa542ae2b0f0b6b.png, float=right)]]
Linux World 2005で発表された「Improving MySQL Server Performance with Intel C++ Compiler」というレポートでは、インテルコンパイラーを利用することでMySQLのパフォーマンスを最大2.55倍向上できた、と報告されている。しかし、本当にこのような大幅なパフォーマンス向上が期待できるのだろうか? 本記事では、インテル コンパイラーでコンパイルされたMySQLバイナリを使用し、本当にこのようなパフォーマンス向上が見られるのか、比較・調査を行う。
=== [「最適化・並列化コードを生み出す最新コンパイラ「インテル_コンパイラー」サンプルコード_p1 「最適化・並列化コードを生み出す最新コンパイラ「インテル コンパイラー」サンプルコード]
本特集内で使用したサンプルコード全文を掲載しています。
=== [マルチメディア処理から信号処理まで幅広く活用できる高速ライブラリ「IPP」_p1 マルチメディア処理から信号処理まで幅広く活用できる高速ライブラリ「IPP」]
[[Embed(最適化・並列化コードを生み出す最新コンパイラ「インテル_コンパイラー」:629ba89db9abe6fe692853c7a077b7bd.png, float=right)]]
インテル C++ コンパイラーに付属するライブラリの1つに「インテル インテグレーテッド・パフォーマンス・プリミティブ」(IPP)がある。IPPは動画や音声、画像などの処理に向けた関数を備えたライブラリなのだが、実際のところIPPがどのようなものなのか分からない方も多いだろう。そこで本記事では、IPPには何が含まれており、またどのような用途に使えるのかを紹介する。
=== [インテル謹製の数値演算ライブラリ「MKL」を使ってプログラムを高速化_p1 インテル謹製の数値演算ライブラリ「MKL」を使ってプログラムを高速化]
[[Embed(最適化・並列化コードを生み出す最新コンパイラ「インテル_コンパイラー」:ed53f50682f66f4bb47aa788cdeb0eb7.png, float=right)]]
各種スケジューリング処理やシミュレーション、統計処理、デジタル制御や信号処理などの分野では、多次元行列演算や高速フーリエ変換(FFT)、線形計画法など、さまざまな数学的処理が必要とされる。インテル コンパイラーに付属する「インテル マス・カーネル・ライブラリ」(MKL)はこのような処理を高速に実行する数値演算ライブラリで、同社のCPUで高速に動作するよう最適化されているだけでなく、並列処理にも対応しているのが特徴だ。本記事ではMKLが備えている機能を紹介するとともに、フリーのライブラリとのパフォーマンスを比較する。
=== [コンパイラを変えるだけでパフォーマンス向上、インテル_コンパイラの実力を見る_p1 コンパイラを変えるだけでパフォーマンス向上、インテル コンパイラーの実力を見る]
[[Embed(最適化・並列化コードを生み出す最新コンパイラ「インテル_コンパイラー」:64d920633d55f029433279e1b83e5ae9.png, float=right)]]
コンパイラが持つ最適化機能を利用することで、冗長なソースコードから効率の良いバイナリコードを生成できる。そして、よりパフォーマンスを追求したいなら、インテル製CPUに向けた高い最適化を謳う「インテル コンパイラー」を検討したい。本記事では、インテル コンパイラーの特徴や使い方を紹介するとともに、生成したコードのパフォーマンスがVisual C++やGCC3、GCC4と比べてどの程度違うのか、検証を行う。
{{{ html
</div>
}}}