Show page source of FrontPage #91703

{{{ html
<div class="hpcpp-toppage">
}}}

{{{ html
<div style="background:#065EA5;">
<img src="//sourceforge.jp/projects/hpc-parallel/wiki/FrontPage/attach/intel_banner.jpg" alt="intel_banner.jpg" id="emb-intel_banner.jpg-1" title="" class="embed-image" width="650" height="120">
</div>
}}}

{{{ comment
[[Embed(intel_banner.jpg)]]
}}}

 HPC/並列プログラミングポータルでは、HPC(High Performance Computing)プログラミングや並列プログラミングに関する情報を集積・発信しています。

{{{ html
<div style="width: 510px; margin:0 auto;">
<img src="/projects/hpc-parallel/wiki/FrontPage/attach/icc2.png" style="width:230px; margin-right: 40px;">
<img src="/projects/hpc-parallel/wiki/FrontPage/attach/paralel.png" style="width:230px;">
</div>
}}}

== 新着トピックス ==

[[Include(NewTopics)]]

== 注目キーワード/トピックス ==
{{{ html
<div class="hpcpp-keywords">
}}}
キーワード一覧:
[[PageOutline(start=3,depth=1,type=unordered)]]
{{{ html
</div>
}}}

=== インテル Parallel Studio XE

{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}

 インテルCPUの機能を最大限に活用するための開発ツールであり、強力な最適化機能を持つコンパイラを搭載している。また、それだけでなくデバッグに有用なプロファイラや、パフォーマンスチューニングに役立つ解析ツールも用意されている。

{{{ html
</div></div></div>
}}}

{{{ html
<div class="lead">
}}}

 * [高度な最適化機能や並列プログラミングサポートを提供する新開発ツール「インテル_Parallel_Studio_XE_2011」_p1 高度な最適化機能や並列プログラミングサポートを提供する新開発ツール「インテル Parallel Studio XE 2011」]

 インテルが開発ツール製品ラインを一新、より高いパフォーマンスを求める開発者に向けた開発ツール「インテル Parallel Studio XE 2011」をリリースした。コンパイラやデバッガ、プロファイラを含む総合開発パッケージであり、WindowsおよびLinux版が用意されている。

{{{ html
</div>
}}}


=== インテル Parallel Studio

{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}

 Visual Studioを使用するC/C++開発者向けに設計された、並列化を実装するための包括的なツールセット。インテル Parallel Studioを使用することで、マルチコア・プラットフォームの利点を活用するアプリケーションを素早く開発できる。

{{{ html
</div></div></div>
}}}

{{{ html
<div class="lead">
}}}


 * [並列化支援ツール「Parallel_Advisor」やC_C__言語拡張「Cilk」が追加、並列アプリケーション開発ツール「Parallel_Studio_2011」の新機能_p1 並列化支援ツール「Advisor」やC/C++言語拡張「Cilk」が追加、並列アプリケーション開発ツール「Parallel Studio 2011」の新機能]

 Windows向けの並列アプリケーション開発支援ツールスイート「インテル Parallel Studio」の最新バージョン「[http://www.xlsoft.com/jp/products/intel/parallel/index.html?sft9 インテル Parallel Studio 2011]」がリリースされた。Parallel Studio 2011では並列化の効果やその際に発生しうる問題を分析するツール「インテル Parallel Advisor」が新たに追加されたほか、並列プログラミング向けのC/C++言語拡張「インテル Cilk Plus」や並列化支援ライブラリ「インテル Array Building Blocks」(ベータ版)に対応するなど、大幅なアップデートが行われている。本記事では、これら新機能を中心にParallel Studio 2011を紹介していく。

 *  [インテル_Parallel_Composerの新機能――並列プログラムを容易に実装できる「インテル_Cilk_Plus」入門_p1 インテル Parallel Composerの新機能――並列プログラムを容易に実装できる「インテル Cilk Plus」入門]

 並列プログラミング向けのコンパイラやデバッガ、各種ライブラリを提供するインテル Parallel Compsoserには、並列プログラミング向けの言語拡張「インテル Cilk Plus」が含まれている。これを利用することで既存のプログラムを容易に並列化したり、より簡潔にアルゴリズムを記述できる。本記事では、このCilk Plusについて機能や使い方を説明する。

 *  [並列化すべき個所を自動診断する新ツール「インテル_Parallel_Advisor」を使ってみよう_p1 並列化すべき個所を自動診断する新ツール「インテル Parallel Advisor」を使ってみよう]

 インテル Parallel Studio 2011に新たに搭載されたツール「インテル Parallel Advisor」は、並列化したいプログラムを関数・命令レベルで分析し、並列化すべき個所を提案する分析ツールだ。並列化によりパフォーマンスの向上が期待できる個所を検出できるだけでなく、並列化により発生するメモリ関連の問題なども事前に検出できる。本記事ではこのインテル Parallel Advisorを使用し、実際にプログラムの分析や並列化を行う例を紹介する。

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

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

 * [サンプルコードで知るParallel_Studioの並列化機能_p1 サンプルコードで知るParallel Studioの並列化機能]

 「インテル Parallel Studio」はマルチスレッドやOpenMPなどを使用した、並列処理を行うプログラムの開発を支援するツールである。本記事では、Parallel Studioに含まれる並列化機能や強力な最適化機能、並列化関連ライブラリ、デバッガ、プロファイラといった機能や、使い方の例などを紹介していく。

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

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

{{{ html
</div>
}}}

=== インテル Composer XE(インテル コンパイラー)
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
インテルが開発する、最新CPUに向けた最適化機能や自動的にコードをベクトル化/並列化する機能などを備えたコンパイラ製品。これを使用してプログラムを再コンパイルするだけでもパフォーマンスの向上が期待できる。Windows版/Linux版/Mac OS版のC++およびFortranコンパイラが提供されている。
{{{ html
</div></div></div>
}}}

{{{ html
<div class="lead">
}}}

 * [アセンブラコードで見るC___Composer_XEの強力な最適化機能_p1 アセンブラコードで見るC++ Composer XEの強力な最適化機能]

 インテル C++ Composer XEには、強力な最適化機能を備えるコンパイラが含まれている。インテルCPUが備えるSSEやAVXといった機能を効率的に利用するコードや、マルチコアによる並列処理を行うコードを自動的に生成できるのが特徴だ。本記事ではインテル C++ Composer XEが持つさまざまな最適化機能を紹介するとともに、コンパイラが出力するアセンブラコードをチェックしてその効果を探っていく。

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

 インテル コンパイラーは、CPUメーカーが開発しているということで、最新のCPUへ向けた最適化やそれらが備えるSSE 4.1といった命令セットへの対応、そして自動並列化機能など、パフォーマンスの高いバイナリコードを生成する機能を備えている。しかし、コンパイラを変えることで本当にパフォーマンスが変わるのか、またその違いはどの程度なのか気になる方も多いだろう。そこで本記事では工学分野などで使われる数値演算プログラムを例に、生成したコードのパフォーマンスを検証する。

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

 インテルが開発している「インテル コンパイラー」はOracleなどパフォーマンスを求めるベンダーで採用されているほか、科学計算用アプリケーション、3Dグラフィックソフトなど、さまざまなソフトウェアのコンパイルに利用されている。そこで、インテル コンパイラーでコンパイルされたバイナリをベンチマークテストし、実際どの程度の性能向上が見込まれるのかを調べてみよう。

{{{ html
</div>
}}}

=== インテル Atom プロセッサー向け ソフトウェア開発ツール・スイート

{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}

 Moblinプラットフォームでのソフトウェア開発に対応した開発ツール。これは、Atomに最適化されたバイナリを出力できるコンパイラ「インテル C++ コンパイラー 11.1 Linux版」と、アプリケーション向けライブラリ「インテル インテグレーテッド・パフォーマンス・プリミティブ 6.1 Linux版」、プロファイラ「インテル VTune パフォーマンス・アナライザー 9.1 Linux版」、「インテル アプリケーション・デバッガー 2.0 Linux版」をバンドルした製品となる。

{{{ html
</div></div></div>
}}}

{{{ html
<div class="lead">
}}}


 * [Moblinアプリケーション開発はじめの一歩_p1 Moblinアプリケーション開発はじめの一歩]

 Moblinはさざまな機器での利用を視野に入れて設計・開発されたプラットフォームであり、中核となる「Moblin Core」と呼ばれるコンポーネント群をベースに機器やアプリケーション独自のUIを構築できるようになっている。Moblinアプリケーションを開発するに当たって、まずはMoblinプラットフォームの概要と、Moblin Core向けの開発環境構築方法について解説しておこう。


 * [Moblinアプリケーションのクロスコンパイルとインテル_コンパイラーによるパフォーマンス改善_p1 Moblinアプリケーションのクロスコンパイルとインテル コンパイラーによるパフォーマンス改善]

 Moblinアプリケーション開発は実機と開発環境が異なるクロスコンパイル環境で行うため、通常のLinux向けアプリケーションとは若干開発手順が異なる。本記事ではIDEを使ったMoblinアプリケーション開発の基本的手順と、インテル コンパイラーを利用してMoblinアプリケーションをコンパイルするための設定方法などを紹介する。


 * [リモートデバッガ_プロファイラを利用したデバッグ&性能解析_p1 リモートデバッガ/プロファイラを利用したデバッグ&性能解析]

 ネットブックやMIDといったリソースの少ないマシンで動作するアプリケーションをデバッグする場合、実行環境とは異なるマシンでアプリケーションの動作状況をモニタリングするリモートデバッグが有用だ。本記事ではEclipseやgdbserver、そして「インテル アプリケーション・デバッガー」といったツールを使用してリモートデバッグを行う基本的な手順を紹介する。また、アプリケーションのパフォーマンスを調査するプロファイリングをリモート環境で行う方法も解説する。


{{{ html
</div>
}}}


=== SSE
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
 インテルCPUに備えられている演算命令群。もともとはマルチメディア向け演算機能としてリリースされたが、現在ではさまざまなアプリケーションで利用できる、多数の命令セットが追加されている。SSE命令を利用することで、複数の演算が並列かつ高速に実行でき、プログラムのパフォーマンス向上が期待できる。
{{{ html
</div></div></div>
}}}

{{{ html
<div class="lead">
}}}
 * [アセンブラコードで見るC___Composer_XEの強力な最適化機能_p1 アセンブラコードで見るC++ Composer XEの強力な最適化機能]

 インテル C++ Composer XEには、強力な最適化機能を備えるコンパイラが含まれている。インテルCPUが備えるSSEやAVXといった機能を効率的に利用するコードや、マルチコアによる並列処理を行うコードを自動的に生成できるのが特徴だ。本記事ではインテル C++ Composer XEが持つさまざまな最適化機能を紹介するとともに、コンパイラが出力するアセンブラコードをチェックしてその効果を探っていく。

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

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

{{{ html
</div>
}}}

=== 並列化
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
 アプリケーション内で、スレッドなどを使用して複数の処理を並列に同時実行させることを「並列処理」と呼び、並列処理を行うようにプログラムを改良することを「並列化」と呼ぶ。今日では複数のコアを備えるマルチコアCPUが普及しつつあるが、マルチコアCPUは複数の処理を同時実行できるため、プログラムを並列化することでパフォーマンスの向上が期待できる。
{{{ html
</div></div></div>
<div class="lead">
}}}

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

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

 並列処理は、一般には実装が難しい、という印象があるが、「OpenMP」や「Threading Building Blocks」といった並列化技術を利用することで、並列化へのハードルは大幅に低くなる。また、インテルの開発製品「Parallel Studio」に含まれる「Parallel Composer」には、独自の並列化支援機能を備えたC/C++コンパイラが含まれている。本記事では、このような技術を利用した並列処理の実装方法を、簡単な画像処理アプリケーションを例に説明していこう。

{{{ html
</div>
}}}

=== プログラムのパフォーマンス分析
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
 作成したプログラムのパフォーマンスに問題がある場合、性能解析ツールを利用して問題点を分析するのが一般的だ。性能解析ツールには様々なものがあるが、その中でも高機能なものとしてインテルが開発する性能解析ツール「インテル VTune パフォーマンス・アナライザー」がある。VTunesを利用してプログラムを解析することで、パフォーマンスが低下する原因を特定することが可能だ。
{{{ html
</div></div></div>
<div class="lead">
}}}
 * [VTune_Amplifier_XEとInspector_XEでmemcachedの高速化にチャレンジ_p1 VTune Amplifier XEとInspector XEでmemcachedの高速化にチャレンジ]

 ソフトウェア開発において、テストやデバッグは設計やコーディング以上に重要な工程である。これらの工程において、プログラム中の問題検出やパフォーマンス解析に役立つ強力なツールがインテル Parallel Studio XEに含まれる「インテル VTune Amplifier XE」や「インテル Inspector XE」だ。本記事ではこれらのツールを用いてmemcachedのチューニングを行い、高速化を試みた事例を紹介する。

 * [パフォーマンス解析ツール「VTune」でアプリケーションを高速化_p1 パフォーマンス解析ツール「VTune」でアプリケーションを高速化]

 作成したプログラムのパフォーマンスに問題がある場合、性能解析ツールを利用して問題点を分析するのが一般的だ。性能解析ツールには様々なものがあるが、その中でも高機能なものとしてインテルが開発する性能解析ツール「インテル VTune パフォーマンス・アナライザー」がある。本記事ではパフォーマンスの問題が発見されたプログラムを対象に、このインテル VTune パフォーマンス・アナライザーを使用して問題点の調査とパフォーマンスの改善を行う例を紹介する。

{{{ html
</div>
}}}


=== OpenMP
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
 OpenMPはさまざまなプラットフォームで利用できる、並列プログラミングを実装するためのAPIである。C/C++およびFORTRANで利用でき、既存のコード中の並列化したい部分にプラグマの形で命令を埋め込むことで、比較的容易にプログラムを並列化できる。
{{{ html
</div></div></div>
<div class="lead">
}}}
 * [ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る_p1 ソフトウェア高速化の鍵は「並列化」:いま注目される並列化技術を知る]

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

 * [インテル_コンパイラーで試す次世代C__規格「C__0x」_p1 インテル コンパイラーで試す次世代C++規格「C++0x」]

 インテル コンパイラーではOpenMP 3.0やC++ラムダ関数、並列コンパイルといった、新規格や最近注目されている機能がいち早く取り入れられている。本記事では、インテル コンパイラーが採用した新規格について解説する。

{{{ html
</div>
}}}

=== Threading Building Blocks
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
 「Threading Building Blocks」(TBB)は、並列処理を実装するためのC++向けテンプレートライブラリだ。スケーラビリティに優れており、また柔軟に処理を実装できる点が特徴である。TBBはインテル コンパイラーやインテル Parallel Studioといったインテルのコンパイラ製品に付属しているほか、オープンソース版も公開されており、特にC++で記述されたプログラムを並列化するのに有用である。
{{{ html
</div></div></div>
<div class="lead">
}}}
 * [オープンソース化された並列化テンプレートクラスライブラリ「Intel_Threading_Building_Blocks」入門_p1 オープンソース化された並列化テンプレートクラスライブラリ「Intel Threading Building Blocks」入門]

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

{{{ html
</div>
}}}

=== C++0x
{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}
 最近では関数型プログラミングやジェネリックプログラミングといった新しいプログラミングパラダイムの影響を受け、C++の機能を拡張すべくISO/IECのC++標準化委員会によって現在検討されているC++の新仕様が「C++0x」である。C++0xはまだ策定中であるが、インテル コンパイラーなど一部のコンパイラはC++0xの機能の一部をすでにサポートしている。
{{{ html
</div></div></div>
<div class="lead">
}}}
 * [インテル_コンパイラーで試す次世代C__規格「C__0x」_p1 インテル コンパイラーで試す次世代C++規格「C++0x」]

 インテル コンパイラーではOpenMP 3.0やC++ラムダ関数、並列コンパイルといった、新規格や最近注目されている機能がいち早く取り入れられている。本記事では、インテル コンパイラーが採用した新規格について解説する。

{{{ html
</div>
}}}

=== Moblin

{{{ html
<div class="description"><div class="r2"><div class="r3">
}}}

 ネットブックやモバイルインターネット端末(MID)といった、インターネット接続機能を備える小型・低消費電力端末向けのLinuxベースOS。各種ライブラリやツールキットといった開発リソースが充実しており、またWebブラウザやマルチメディアプレーヤーを含む各種アプリケーションも多く開発されているため、低コストでのシステム構築が可能というのが訴求ポイントとなっている。

{{{ html
</div></div></div>
}}}

{{{ html
<div class="lead">
}}}


 * [Moblinアプリケーション開発はじめの一歩_p1 Moblinアプリケーション開発はじめの一歩]

 Moblinはさざまな機器での利用を視野に入れて設計・開発されたプラットフォームであり、中核となる「Moblin Core」と呼ばれるコンポーネント群をベースに機器やアプリケーション独自のUIを構築できるようになっている。Moblinアプリケーションを開発するに当たって、まずはMoblinプラットフォームの概要と、Moblin Core向けの開発環境構築方法について解説しておこう。


 * [Moblinアプリケーションのクロスコンパイルとインテル_コンパイラーによるパフォーマンス改善_p1 Moblinアプリケーションのクロスコンパイルとインテル コンパイラーによるパフォーマンス改善]

 Moblinアプリケーション開発は実機と開発環境が異なるクロスコンパイル環境で行うため、通常のLinux向けアプリケーションとは若干開発手順が異なる。本記事ではIDEを使ったMoblinアプリケーション開発の基本的手順と、インテル コンパイラーを利用してMoblinアプリケーションをコンパイルするための設定方法などを紹介する。


 * [リモートデバッガ_プロファイラを利用したデバッグ&性能解析_p1 リモートデバッガ/プロファイラを利用したデバッグ&性能解析]

 ネットブックやMIDといったリソースの少ないマシンで動作するアプリケーションをデバッグする場合、実行環境とは異なるマシンでアプリケーションの動作状況をモニタリングするリモートデバッグが有用だ。本記事ではEclipseやgdbserver、そして「インテル アプリケーション・デバッガー」といったツールを使用してリモートデバッグを行う基本的な手順を紹介する。また、アプリケーションのパフォーマンスを調査するプロファイリングをリモート環境で行う方法も解説する。


{{{ html
</div>
}}}



== 新着記事 ==


[[Include(Latest)]]


== インテル ソフトウェア最新情報 ==

[[Include(IntelNews)]]

== 関連リンク ==

 * [http://www.xlsoft.com/jp/products/intel/compilers/compiler_j.html?sfwiki インテル コンパイラー日本語版ページ]
 * [http://www.xlsoft.com/jp/products/intel/download.html?sfwiki インテル コンパイラー30日評価版ダウンロードページ]
 * [http://www.xlsoft.com/jp/products/intel/parallel/index.html?sfwiki インテル Parallel Studio 30日評価版ダウンロードページ]
 * [http://www.xlsoft.com/jp/products/intel/article/guide/index.html?sfwiki マルチスレッド・アプリケーション開発のためのインテル・ガイド]
 * [http://www.intel.co.jp/jp/software/products/ インテル社のインテルソフトウェア開発製品ページ]
 * [http://software.intel.com/en-us/intel-compilers/ 米IntelのIntel Compilerページ]


{{{ html
</div><!-- id="hpcpp-toppage" -->
}}}