SlideShare ist ein Scribd-Unternehmen logo
1 von 33
Downloaden Sie, um offline zu lesen
インテル® Xeon Phi™ コプロセッサー
搭載システムの紹介
および
オフロード・プログラミングと
ネイティブ実行の概要
インテル® ソフトウェア開発製品の紹介
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® ソフトウェア開発製品
3
Advanced Performance Distributed Performance
C++ および Fortran コンパイラー
インテル® MKL/インテル® IPP ライブラリー
と解析ツール
IA ベース・マルチコア・ノード上の
Windows* および Linux* 開発者向け
MPI クラスターツールと C++ および Fortran
コンパイラー、インテル® MKL/インテル® IPP
ライブラリーと解析ツール
IA ベースのクラスター上の Windows* および
Linux* 開発者向け
+
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® Paralel Studio XE 2013
インテル® Advisor XE
 インテル® C++ コンパイラー
 インテル® Fortran コンパイラー
 インテル® MKL
インテル® IPP
 インテル® TBB
インテル® Inspector XE
 インテル® VTune ™ Amplifier XE
インテル® ソフトウェア開発製品
(インテル Xeon ® Phi™ コプロセッサー対応ツール)
4
 詳細は各製品のリリースノートやドキュメント等をご参照ください
インテル® Cluster Studio XE 2013
インテル® Advisor XE
 インテル® C++ コンパイラー
 インテル® Fortran コンパイラー
 インテル® MKL
インテル® IPP
 インテル® TBB
インテル® Inspector XE
 インテル® VTune ™ Amplifier XE
 インテル® MPI ライブラリー
 インテル® Trace Analyzer/Collector
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® ソフトウェア開発製品の活用
5
For illustration only, potential future options subject to change without notice.
コンパイラー
ライブラリー
並列モデル
1 種類の
ソースコード
共通のソースコードから複数のプラットフォームへの対応が可能
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。6
インテル® Composer XE
ヘテロジニアス・コンパイルを提供するインテル® コンパイラー
インテル® MIC 対応数値演算ライブラリー(MKL)
インテル® MIC 対応インテル® デバッガー
並列化モデル言語拡張およびライブラリー
インテル® Composer XE でサポートする並列化モデル
IPP †
その他
CEAN OpenMP*
OpenCL*MKL
ライブラリー
Cilk
Cilk 配列表記
インテル® Cilk™ Plus
要素関数
SIMD
プラグマ
インテル® TBB
並列プログラミング・モデル
† ノート:インテル® IPP は現在インテル® Xeon PhiTM コプロセッサー非対応
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® デバッガー(IDB)
7
インテル®
Debug
サーバー
Target
Program
• ホストとターゲットを同時にデバッグ
• ホストのアプリケーションのデバッグを開始する
と、ターゲットのアプリケーションは自動的にデ
バッグモードに入る
• ホストとターゲットのデバッグには、ホスト側の
デバッガーを利用する
• デバッガーは、ホストとターゲットのプログラム
を同期して、停止/再開できる
• 双方で C++ と FORTRAN を完全にサポート
• 将来のバージョンでは、1 つの GUI の中に 1
つの仮想アプリケーションのみを表示できるよう
にする
• 1 つ以上のオフロードカードをカバーするように
拡張可能
ホスト
プログラム
ターゲット
プログラム
インテル®
デバッガー
インテル®
デバッグ
サーバー
ユーザー
※ 備考:ターゲットとは、インテル® Xeon Phi™ コプロセッサー
を指す
※ 詳細は、製品ドキュメントまたは以下のサイトをご参照ください。
http://software.intel.com/en-us/articles/debugging-on-intel-xeon-
phi-coprocessor-use-case-overview
http://software.intel.com/en-us/articles/debugging-intel-xeon-phi-
coprocessor-targeted-applications-on-the-command-line
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® VTune™ Amplifir XE
8
インテル® VTune™ Amplifier XE パフォーマンス・プロファイラーは、
オフロード実行およびネイティブ実行モデルにおけるインテル® MIC の
パフォーマンスを解析します。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® MIC 対応インテル® MPI
9
Foo( )
Main( )
Foo( )
MPI_*( )
Main( )
Foo( )
MPI_*( )
Main( )
Foo( )
MPI_*( )
Main( )
Foo( )
MPI_*( )
Main( )
Foo( )
MPI_*( )
マルチコア主体 メニ―コア主体
マルチコアホスト
一般向けシリアル
&パラレル計算
メニ―コアホスト
高度に並列化さ
れたコード
シンメトリック
バランスが要求さ
れるコード
Xeon
MIC
インテル® Xeon
Phi™
コプロセッサー
インテル®
Xeon®
プロセッサー
オフロード
高度に並列化された
フェーズを含むコード
 柔軟なプログラミング/実行モデルを提供
インテル® Xeon Phi™ コプロセッサー向け
プログラミング概要
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
ベンチマーク
11
ベンチマーク詳細は以下のサイトをご参照ください。
 http://www.intel.com/content/dam/www/public/us/en/documents/performance-briefs/xeon-phi-
product-family-performance-brief.pdf
 http://software.intel.com/en-us/intel-mkl#pid-12768-1295
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® Xeon Phi™ コプロセッサー
プラットフォーム概要
12
ホスト CPU
インテル® Xeon® プロセッサー
ホスト・プラットフォーム
QPI
x16 PCIe Xeon Phi™
インテル® Xeon Phi™ コプロセッサー
GDDR5
IBA 10GbE
IBA 10GbE
ノードあたり
1-4 コプロセッサー
ノードあたり
1-2 CPU
DDR3
DDR3
GDDR5
x16 PCIe
ホスト CPU
Xeon Phi™
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。13
インテル® Xeon Phi™ コプロセッサーを利用した
システム構成例
インテル®
Xeon® プロセッサー
インテル®
Xeon Phi™
コプロセッサー
GDDRメモリー
DRAMメモリー
インテル® Xeon Phi™ コプロセッサー搭載サーバー
RHEL
SUSE
Linux*
Linux*
IP アドレス
IP アドレス
ディスク領域
HDD、NAS
NFS など
コプロセッサー
Host システム
PCI-Express PCI-Express
IP アドレス
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
インテル® Xeon Phi™ コプロセッサーを利用した
システム構成例(複数ノードの構成例)
14
インテル®
Xeon® プロセッサー
インテル®
Xeon Phi™
コプロセッサー
GDDR
メモリー
DRAMメモリー
RHEL
SUSE
Linux*
IPアドレス
IP アドレス
NIC
NIC
他のノード
$ ping Xeon サーバー
$ ssh user@Xeon サーバー
$ ping コプロセッサー
$ ssh user@コプロセッサー
インテル® Xeon® Phi™ コプロセッサー搭載サーバー
コプロセッサー
Host システム
PCI-Express
ブリッジ
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
実行モデルの概要
15
MAIN()
XEON®
結果出力
MAIN()
XEON®
XEON
PHI™
MAIN()
XEON®
XEON
PHI™
MAIN()
XEON®
XEON
PHI™
MAIN()
コンパイラー
ライブラリー
ランタイムシステム
マルチコア単独実行
シリアルおよび
中度な並列コード 高度な並列コード
結果出力 結果出力 結果出力 結果出力
オフロード実行 シンメトリック実行 メニ―コア単独実行
(ネイティブ実行)
ソース
コード
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。16
ヘテロジニアス・プログラミングについて
~はじめに~
• CPU とコプロセッサーの命令セットは似ていますが同一ではありません。
• CPU とコプロセッサーはメインメモリーを共有しません。
「オフロード実行」と「ネイティブ実行」
 オフロード実行:プログラムの特定の処理をインテル® Xeon Phi™
コプロセッサーにオフロードして実行するモデル
 ネイティブ実行:インテル® Xeon Phi™ コプロセッサー上でのみ
プログラムを実行させるモデル
インテル® コンパイラーは、
 CPU とコプロセッサー両方のバイナリーを生成することができます。
 オフロード実行用プログラムを記述するための言語拡張が提供されます。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
ソフトウェア構成概要(オフロード実行モデル)
17
Linux* ホスト インテル® Xeon Phi™ コプロセッサー
インテル® Xeon Phi™ コプロセッサー用
ライブラリー、ツール、ドライバー
システムレベル
ユーザーレベル
PCI-E バス
Linux* OS Linux* μOS
PCI-E バス
インテル® Xeon Phi™ コプロセッサー
通信およびアプリケーション起動サポート
システムレベル
ユーザーレベル
ホスト側オフロード・
アプリケーション
ユーザーコード
オフロード・ライブラリー、
ユーザーレベル・ドライバー、
ユーザーAPI/ライブラリー
ターゲット側オフロード・
アプリケーション
ユーザーコード
オフロード・ライブラリー、
ユーザーAPI/ライブラリー
• アプリケーション実行時にホ
ストから動的に転送される。
• 1プロセスとして “micuser”
によって実行される。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
ソフトウェア構成概要(ネイティブ実行モデル)
18
Linux* ホスト インテル® Xeon Phi™ コプロセッサー
システムレベル
ユーザーレベル
PCI-E バス
Linux* OS Linux* μOS
PCI-E バス
システムレベル
ユーザーレベル
ssh
または
telnet
で接続
ターゲット側ネイティブ・
アプリケーション
ユーザーコード
標準 OS ライブラリー
インテル® ライブラリー
サード・パーティー ・ライブラリー
仮想端末
インテル® Xeon Phi™ コプロセッサー用
ライブラリー、ツール、ドライバー
インテル® Xeon Phi™ コプロセッサー
通信およびアプリケーション起動サポート
• 予め実行ファイルをコプロ
セッサーに転送しておく。
• コプロセッサーの仮想端
末にログインして実行す
る。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
非共有型オフロードコードの例(PI の計算)
19
#include <stdio.h>
#include <stdlib.h>
#define INTERVALS 1000000000
int main(void)
{
int i;
double x, pi=0.0;
double Step = 1.0 / INTERVALS;
#pragma omp parallel for private(x) reduction(+:pi)
for (i=0; i<INTERVALS; ++i)
{
x = Step * ((double)i-0.5);
pi += 4.0 / (1.0 + x*x);
}
pi = Step * pi;
printf("Pi = %lf¥n", pi);
}
オフロード
セクション
オフロード宣言子の追加#pragma offload target(mic)
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
非共有型オフロード宣言子
20
C/C++ シンタックス 意味
オフロードプラグマ #pragma offload <指示句>
<ステートメント>
次のステートメントを
MIC またはCPUで実行
変数/関数用
キーワード
__attribute__(( target(mic)))
もしくは、
__declspec( target(mic) )
CPU および MIC 用に変数の
アロケート、関数のコンパイルを
行う
コードブロック用
プラグマ
#pragma offload_attribute(push,
target(mic))
#pragma offload_attribute(pop)
CPU および MIC 用にファイル
全体またはコードブロックを指定
データ転送 #pragma offload_transfer target(mic) データ転送開始 (非同期)
データ転送開始と完了 (同期)
Fortran シンタックス 意味
オフロード宣言子 !dir$ omp offload <指示句>
<ステートメント>
次の OpenMP parallel 構文
を MIC で実行
!dir$ offload <指示句>
<ステートメント>
次のステートメントを
MIC で実行
変数/関数用
キーワード
!dir$ attributes offload:<mic> :: <ret-
name> もしくは <var1,var2,...>
CPU および MIC 用に関数/
変数コンパイル
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
非共有型オフロード宣言子(続き)
21
節 シンタックス 意味
ターゲット指定 target(name[:#]) 実行する MIC カードの指定
条件付きオフロード if (condition) Boolean 表現
入力 in (var-list modifiersopt) ホストから MIC へコピー
出力 out (var-list modifiersopt) MIC からホストへコピー
入力および出力 inout (var-list modifiersopt) ホストから MIC へコピーしオフ
ロード後ホストへコピー
コピーしないデータ nocopy (var-list modifiersopt) データは MIC に存在
非同期オフロード signal(signal-slot) 非同期オフロードの開始
非同期オフロード wait(signal-slot) 非同期オフロードの完了待ち
修飾子 シンタックス 意味
ポインター長を指定 length (element-count-expr) 複数のポインター要素をコピー
メモリー割当て制御 alloc_if ( condition ) 条件が真ならメモリー割り当て
メモリー解放制御 free_if ( condition) 条件が真ならメモリー解放
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
非共有型オフロード修飾子の例
22
float reduction(float *data, int numberOf)
{
float ret = 0.f;
#pragma offload target(mic) in(data:length(numberOf))
{
#pragma omp parallel for reduction(+:ret)
for (int i=0; i < numberOf; ++i)
ret += data[i];
}
return ret;
}
$ source /opt/intel/bin/compilervars.sh intel64
$ icc sample_offload.c –O2 –openmp –o sample_offload
$ ./sample_offload
インテル® コンパイラーによるコンパイルと実行例:
← 環境設定
← コンパイル
← 実行
ノート: “length”修飾子に指定する値は要素
数でありバイト数ではない。
コンパイラーはデータタイプをすでに
知っている。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
非共有型オフロードによるデータ転送イメージ
23
#pragma offload 文で指定される in/out 変数のデフォルト動作
• オフロードの開始時:
① MIC(コプロセッサー) に領域が確保される
② in 変数は Host から MIC に転送される。
• オフロードの終了時:
④ out 変数は MIC から Host に転送される。
⑤ MIC 上の in および out 変数の領域が解放される。(inout 変数についても同様)
Host MIC
(コプロセッサー)
#pragma offload inout(pA:length(n))
{...}
Allocate
1
Copy back
4
Copy over
2
Free
5
pA
3
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。24
ネイティブ実行モデルの概要
 インテル® Xeon Phi™ コプロセッサー上で直接実行される
モデル
• ホスト上で、コンパイラー・オプション “-mmic” を指定してコンパイルす
る。(既存コードもそのまま再コンパイル)
• コンパイルした実行バイナリー、関連データファイル、必要ランタイム・ラ
イブラリーは scp や ftp でインテル® Xeon Phi™ コプロセッサーに事
前にコピーする必要がある。
• ベクトル化、インテル® MKL、OpenMP*、インテル® TBB、インテル®
Cilk™ Plus、インテル® MPI などが利用可能。
• プログラムは高度に並列化されていることが望まれる。コプロセッサー
上 でのシリアル実行はホスト CPU より遅くなる。
• アプリケーション実行の際、ホストとメモリー量が異なることを考慮する
必要がある。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
ネイティブ実行モデルのコンパイル/実行例
25
# source /opt/intel/bin/compilervars.sh intel64
# icc -mmic -openmp pi.c -o pi.out.mic
# scp pi.out.mic root@mic0:
# scp /opt/intel/composerxe/lib/mic/libiomp5.so root@mic0:
# ssh root@mic0
# export LD_LIBRARY_PATH=./
# ./pi.out.mic
コンパイルと実行準備の例:
コプロセッサーへのログインとプログラムの実行例:
※青文字は、NFS (ネットワークファイルシステム) などでファイルを共有し
ていない場合に、実行する必要があるコマンドです。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
ネイティブ実行モデルのコンパイル/実行例
( micnativeloadex ツールの利用)
26
$ source /opt/intel/bin/compilervars.sh intel64
$
$ icc -mmic -openmp omp_app.cpp
$
$ export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/lib/mic
$
$ /opt/intel/mic/bin/micnativeloadex a.out
ノート: SINK_LD_LIBRARY_PATH 環境変数に MIC 用のランタイム・ライブラリーの
ディレクトリーを設定することで、micnativeloadex が自動で必要な依存ライブラ
リーをコプロセッサーにコピーする。
また “micnativeloadex a.out -l” で依存ライブラリーをチェック可能。
“micnativeloadex”ツールでネイティブ実行作業を簡略化できる。
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。27
float *restrict A, *B, *C;
for(i=0;i<n;i++){
C[i] = A[i] + B[i];
}
1
addss %xmm1, %xmm2
B0
A0+
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。28
float *restrict A, *B, *C;
for(i=0;i<n;i++){
C[i] = A[i] + B[i];
}
SIMD
(Single Instruction Multiple Data)
1
B3 B2 B1 B0
A3 A2 A1 A0+
•[SSE] float 4
addps %xmm1, %xmm2
•[AVX] float 8
vaddps %ymm1, %ymm2, %ymm3
•[MIC] float 16
vaddps %zmm1, %zmm2, %zmm3
( )
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。29
スカラー演算とSIMD演算の比較
for (i=0; i<40000; i++)
c[i] = a[i] + b[i];
.B1.2::
movss xmm0, A[rcx+r9*4]
addss xmm0, B[rdx+r9*4]
movss C[r8+r9*4], xmm0
inc r9
cmp r9, 40000
jl .B1.2
スカラー演算
コード例
addss : Scalar Single-FP Add
single precision FP data
scalar execution mode
.B1.2::
vmovups ymm0, A[rcx+r9*4]
vaddps ymm1,ymm0,B[rdx+r9*4]
vmovups C[r8+r9*4], ymm1
add r9, 8
cmp r9, 40000
jb .B1.2
SIMD 演算
コード例(AVX)
vaddps : Packed Single-FP Add
single precision FP data
packed execution mode
8要素ずつ
5,000回の処理
1要素ずつ
40,000回の処理
ループを展開(アンロール)し、パックドSIMD命令を活用して
コードの処理効率を高める最適化技術をベクトル化と呼んでいる
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。30
SIMD
® Pentirm® (1993)
® SMID Extensions (SSE in 1997 SSE4.2 in 2008)
MMX® (1997)
® AVX (AVX in 2011 AVX2 in 2013)
® MIC ( ® Xeon Phi™ in 2012)
コアの演算性能を最大限に発揮させるためにはベクトル化が必須
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。31
-mmic
(-mmic )
® Xeon® E5-2600 +
® Xeon Phi™
$ icc hoge.c -O3 -xAVX
® Xeon Phi™
$ icc hoge.c -O3 -mmic
Intel Information Technology
© 2013 Intel Corporation. 無断での引用、転載を禁じます。
*その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。32
最適化に関する注意事項
インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可
能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3
(インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれま
す。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロ
セッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特
定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当
する製品のユーザー・リファレンス・ガイドを参照してください。
改訂 #20110804
本資料の情報は、現状のまま提供され、本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかか
わらず、いかなる知的財産権のライセンスを許諾するものではありません。製品に付属の売買契約書『Intel‘s Terms and
Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売
や使用に関する明示または黙示の保証(特定目的への適合性、商品適確性、あらゆる特許権、著作権、その他知的財産権
の非侵害性への保証を含む)に関してもいかなる責任も負いません。
性能に関するテストや評価は、特定のコンピューター・システム、コンポーネント、またはそれらを組み合わせて行ったもので
あり、このテストによるインテル製品の性能の概算の値を表しているものです。システム・ハードウェアの設計、ソフトウェア、
構成などの違いにより、実際の性能は掲載された性能テストや評価とは異なる場合があります。システムやコンポーネントの
購入を検討される場合は、ほかの情報も参考にして、パフォーマンスを総合的に評価することをお勧めします。インテル製品
の性能評価についてさらに詳しい情報をお知りになりたい場合は、http://www.intel.com/performance/ (英語) を参
照してください。
© 2013 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Intel Xeon Phi、Xeon、
Xeon Inside、Cilk、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。
* その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。
商標および最適化に関する注意事項について
CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 2

Weitere ähnliche Inhalte

Was ist angesagt?

[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
Insight Technology, Inc.
 

Was ist angesagt? (20)

Ansible使いたい
Ansible使いたいAnsible使いたい
Ansible使いたい
 
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
あなたのAppleにもEFIモンスターはいませんか? by Pedro Vilaça - CODE BLUE 2015
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
 
第15回「インテル® Xeon® プロセッサー E5 ファミリー 新登場!」(2012/03/22 on しすなま!) Iintel様資料
第15回「インテル® Xeon® プロセッサー E5 ファミリー 新登場!」(2012/03/22 on しすなま!) Iintel様資料第15回「インテル® Xeon® プロセッサー E5 ファミリー 新登場!」(2012/03/22 on しすなま!) Iintel様資料
第15回「インテル® Xeon® プロセッサー E5 ファミリー 新登場!」(2012/03/22 on しすなま!) Iintel様資料
 
第10回「高信頼性仮想化ソフトウェア「Avance™」」(2011/10/27 on しすなま!)
第10回「高信頼性仮想化ソフトウェア「Avance™」」(2011/10/27 on しすなま!)第10回「高信頼性仮想化ソフトウェア「Avance™」」(2011/10/27 on しすなま!)
第10回「高信頼性仮想化ソフトウェア「Avance™」」(2011/10/27 on しすなま!)
 
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
 
PCCC21:日本オラクル株式会社 「Oracle Cloud Infrastructure for HPC&AI」
PCCC21:日本オラクル株式会社 「Oracle Cloud Infrastructure for HPC&AI」PCCC21:日本オラクル株式会社 「Oracle Cloud Infrastructure for HPC&AI」
PCCC21:日本オラクル株式会社 「Oracle Cloud Infrastructure for HPC&AI」
 
Lpicl304セミナー資料20140727
Lpicl304セミナー資料20140727Lpicl304セミナー資料20140727
Lpicl304セミナー資料20140727
 
Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118Lpicl304Seminar Presentations on 20150118
Lpicl304Seminar Presentations on 20150118
 
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
ネットワークスイッチ構築実践 2.STP・RSTP・PortSecurity・StormControl・SPAN・Stacking編
 
20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町20160619_LPICl304 技術解説セミナー in AP浜松町
20160619_LPICl304 技術解説セミナー in AP浜松町
 
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
SFC デザイン言語WS(電子工作)第6回「PCとの連携・音」
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
20151114 _html5無料セミナー(OSC2015徳島)
20151114 _html5無料セミナー(OSC2015徳島)20151114 _html5無料セミナー(OSC2015徳島)
20151114 _html5無料セミナー(OSC2015徳島)
 
ネットワーク構築訓練 入門
ネットワーク構築訓練 入門ネットワーク構築訓練 入門
ネットワーク構築訓練 入門
 
ログについて改めて考えてみた
ログについて改めて考えてみたログについて改めて考えてみた
ログについて改めて考えてみた
 
POWER8ここだけの話
POWER8ここだけの話POWER8ここだけの話
POWER8ここだけの話
 
Android組み込み開発テキスト pandaboard es編
Android組み込み開発テキスト pandaboard es編Android組み込み開発テキスト pandaboard es編
Android組み込み開発テキスト pandaboard es編
 
Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007Ansible troubleshooting 101_202007
Ansible troubleshooting 101_202007
 
Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021Ansible automationplatform product updates 2021
Ansible automationplatform product updates 2021
 

Andere mochten auch

Xeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみたXeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみた
MITSUNARI Shigeo
 
Haskell Day2012 - 参照透過性とは何だったのか
Haskell Day2012 - 参照透過性とは何だったのかHaskell Day2012 - 参照透過性とは何だったのか
Haskell Day2012 - 参照透過性とは何だったのか
Kousuke Ruichi
 
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
MITSUNARI Shigeo
 
30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座
Sakiyama Kei
 
整数列圧縮
整数列圧縮整数列圧縮
整数列圧縮
JAVA DM
 

Andere mochten auch (20)

Xeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみたXeonphiハッカソンでexpを作ってみた
Xeonphiハッカソンでexpを作ってみた
 
Pvm presentation
Pvm presentationPvm presentation
Pvm presentation
 
LLDN / キミならどう書く Haskell 編 (自由演技)
LLDN / キミならどう書く Haskell 編 (自由演技)LLDN / キミならどう書く Haskell 編 (自由演技)
LLDN / キミならどう書く Haskell 編 (自由演技)
 
Haskell 6-module
Haskell 6-moduleHaskell 6-module
Haskell 6-module
 
Haskell Lecture 1
Haskell Lecture 1Haskell Lecture 1
Haskell Lecture 1
 
Intel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86optiIntel TSX HLE を触ってみた x86opti
Intel TSX HLE を触ってみた x86opti
 
Haskell超入門 Part.1
Haskell超入門 Part.1Haskell超入門 Part.1
Haskell超入門 Part.1
 
PFI Seminar 2010/02/18
PFI Seminar 2010/02/18PFI Seminar 2010/02/18
PFI Seminar 2010/02/18
 
Haskell Day2012 - 参照透過性とは何だったのか
Haskell Day2012 - 参照透過性とは何だったのかHaskell Day2012 - 参照透過性とは何だったのか
Haskell Day2012 - 参照透過性とは何だったのか
 
CPUに関する話
CPUに関する話CPUに関する話
CPUに関する話
 
MICの解説
MICの解説MICの解説
MICの解説
 
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
 
SICPの紹介
SICPの紹介SICPの紹介
SICPの紹介
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座30分で博士号がとれる画像処理講座
30分で博士号がとれる画像処理講座
 
21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)21世紀の手法対決 (MIC vs HSIC)
21世紀の手法対決 (MIC vs HSIC)
 
整数列圧縮
整数列圧縮整数列圧縮
整数列圧縮
 
Deep Learning in real world @Deep Learning Tokyo
Deep Learning in real world @Deep Learning TokyoDeep Learning in real world @Deep Learning Tokyo
Deep Learning in real world @Deep Learning Tokyo
 
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core GuidelinesBoost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
 
フォトンマッピング入門
フォトンマッピング入門フォトンマッピング入門
フォトンマッピング入門
 

Ähnlich wie CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 2

Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
 
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
シスコシステムズ合同会社
 
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
シスコシステムズ合同会社
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Atsuhiro Kubo
 

Ähnlich wie CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 2 (20)

【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
【de:code 2020】 AI on IA 最新情報 ~ CPU で AI を上手に動かすための 5 つのヒント ~
 
Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-Ansibleはじめよぉ -Infrastructure as Codeを理解-
Ansibleはじめよぉ -Infrastructure as Codeを理解-
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
 
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
10/2勉強会資料 ~IaaSを知る前にサーバを知ろう~
 
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
 
ITPro Expo 2014: Microsoft + Cisco UCS  (Cisco Unified Computing System)  サーバ
ITPro Expo 2014: Microsoft + Cisco UCS  (Cisco Unified Computing System)  サーバITPro Expo 2014: Microsoft + Cisco UCS  (Cisco Unified Computing System)  サーバ
ITPro Expo 2014: Microsoft + Cisco UCS  (Cisco Unified Computing System)  サーバ
 
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACI とUCS Director により 実現される自動化 クラウド基盤
 
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
【Interop tokyo 2014】 “FlexPod” Cisco ACIとUCS Directorにより実現される自動化 クラウド基盤
 
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテストEclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
 
20130203 oss-db-lpi
20130203 oss-db-lpi20130203 oss-db-lpi
20130203 oss-db-lpi
 
20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー20130203 OSS-DB Exam Silver 技術解説無料セミナー
20130203 OSS-DB Exam Silver 技術解説無料セミナー
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
 
C++ AMPを使ってみよう
C++ AMPを使ってみようC++ AMPを使ってみよう
C++ AMPを使ってみよう
 
20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート20170804 IOS/IOS-XE運用管理機能アップデート
20170804 IOS/IOS-XE運用管理機能アップデート
 
IOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデートIOS/IOS-XE 運用管理機能アップデート
IOS/IOS-XE 運用管理機能アップデート
 
【GOJAS Meetup-08】Splunk Insights for Infrastructure 2018-07-10
【GOJAS Meetup-08】Splunk Insights for Infrastructure 2018-07-10【GOJAS Meetup-08】Splunk Insights for Infrastructure 2018-07-10
【GOJAS Meetup-08】Splunk Insights for Infrastructure 2018-07-10
 
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
Apache Spark 3.0新機能紹介 - 拡張機能やWebUI関連のアップデート(Spark Meetup Tokyo #3 Online)
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
PCCC22:インテル株式会社 テーマ2「次世代インテル® Xeon™ プロセッサーを中心としたインテルのHPC-AI最新情報」
PCCC22:インテル株式会社 テーマ2「次世代インテル® Xeon™ プロセッサーを中心としたインテルのHPC-AI最新情報」PCCC22:インテル株式会社 テーマ2「次世代インテル® Xeon™ プロセッサーを中心としたインテルのHPC-AI最新情報」
PCCC22:インテル株式会社 テーマ2「次世代インテル® Xeon™ プロセッサーを中心としたインテルのHPC-AI最新情報」
 

Mehr von Computational Materials Science Initiative

Mehr von Computational Materials Science Initiative (20)

MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE! の設定
MateriApps LIVE! の設定MateriApps LIVE! の設定
MateriApps LIVE! の設定
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
ALPSチュートリアル
ALPSチュートリアルALPSチュートリアル
ALPSチュートリアル
 
How to setup MateriApps LIVE!
How to setup MateriApps LIVE!How to setup MateriApps LIVE!
How to setup MateriApps LIVE!
 
MateriApps LIVE!の設定
MateriApps LIVE!の設定MateriApps LIVE!の設定
MateriApps LIVE!の設定
 
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習MateriApps: OpenMXを利用した第一原理計算の簡単な実習
MateriApps: OpenMXを利用した第一原理計算の簡単な実習
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
CMSI計算科学技術特論C (2015) ALPS と量子多体問題②
 
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
CMSI計算科学技術特論C (2015) ALPS と量子多体問題①
 

CMSI計算科学技術特論B(15) インテル Xeon Phi コプロセッサー向け最適化、並列化概要 2

  • 1. インテル® Xeon Phi™ コプロセッサー 搭載システムの紹介 および オフロード・プログラミングと ネイティブ実行の概要
  • 3. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® ソフトウェア開発製品 3 Advanced Performance Distributed Performance C++ および Fortran コンパイラー インテル® MKL/インテル® IPP ライブラリー と解析ツール IA ベース・マルチコア・ノード上の Windows* および Linux* 開発者向け MPI クラスターツールと C++ および Fortran コンパイラー、インテル® MKL/インテル® IPP ライブラリーと解析ツール IA ベースのクラスター上の Windows* および Linux* 開発者向け +
  • 4. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® Paralel Studio XE 2013 インテル® Advisor XE  インテル® C++ コンパイラー  インテル® Fortran コンパイラー  インテル® MKL インテル® IPP  インテル® TBB インテル® Inspector XE  インテル® VTune ™ Amplifier XE インテル® ソフトウェア開発製品 (インテル Xeon ® Phi™ コプロセッサー対応ツール) 4  詳細は各製品のリリースノートやドキュメント等をご参照ください インテル® Cluster Studio XE 2013 インテル® Advisor XE  インテル® C++ コンパイラー  インテル® Fortran コンパイラー  インテル® MKL インテル® IPP  インテル® TBB インテル® Inspector XE  インテル® VTune ™ Amplifier XE  インテル® MPI ライブラリー  インテル® Trace Analyzer/Collector
  • 5. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® ソフトウェア開発製品の活用 5 For illustration only, potential future options subject to change without notice. コンパイラー ライブラリー 並列モデル 1 種類の ソースコード 共通のソースコードから複数のプラットフォームへの対応が可能
  • 6. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。6 インテル® Composer XE ヘテロジニアス・コンパイルを提供するインテル® コンパイラー インテル® MIC 対応数値演算ライブラリー(MKL) インテル® MIC 対応インテル® デバッガー 並列化モデル言語拡張およびライブラリー インテル® Composer XE でサポートする並列化モデル IPP † その他 CEAN OpenMP* OpenCL*MKL ライブラリー Cilk Cilk 配列表記 インテル® Cilk™ Plus 要素関数 SIMD プラグマ インテル® TBB 並列プログラミング・モデル † ノート:インテル® IPP は現在インテル® Xeon PhiTM コプロセッサー非対応
  • 7. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® デバッガー(IDB) 7 インテル® Debug サーバー Target Program • ホストとターゲットを同時にデバッグ • ホストのアプリケーションのデバッグを開始する と、ターゲットのアプリケーションは自動的にデ バッグモードに入る • ホストとターゲットのデバッグには、ホスト側の デバッガーを利用する • デバッガーは、ホストとターゲットのプログラム を同期して、停止/再開できる • 双方で C++ と FORTRAN を完全にサポート • 将来のバージョンでは、1 つの GUI の中に 1 つの仮想アプリケーションのみを表示できるよう にする • 1 つ以上のオフロードカードをカバーするように 拡張可能 ホスト プログラム ターゲット プログラム インテル® デバッガー インテル® デバッグ サーバー ユーザー ※ 備考:ターゲットとは、インテル® Xeon Phi™ コプロセッサー を指す ※ 詳細は、製品ドキュメントまたは以下のサイトをご参照ください。 http://software.intel.com/en-us/articles/debugging-on-intel-xeon- phi-coprocessor-use-case-overview http://software.intel.com/en-us/articles/debugging-intel-xeon-phi- coprocessor-targeted-applications-on-the-command-line
  • 8. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® VTune™ Amplifir XE 8 インテル® VTune™ Amplifier XE パフォーマンス・プロファイラーは、 オフロード実行およびネイティブ実行モデルにおけるインテル® MIC の パフォーマンスを解析します。
  • 9. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® MIC 対応インテル® MPI 9 Foo( ) Main( ) Foo( ) MPI_*( ) Main( ) Foo( ) MPI_*( ) Main( ) Foo( ) MPI_*( ) Main( ) Foo( ) MPI_*( ) Main( ) Foo( ) MPI_*( ) マルチコア主体 メニ―コア主体 マルチコアホスト 一般向けシリアル &パラレル計算 メニ―コアホスト 高度に並列化さ れたコード シンメトリック バランスが要求さ れるコード Xeon MIC インテル® Xeon Phi™ コプロセッサー インテル® Xeon® プロセッサー オフロード 高度に並列化された フェーズを含むコード  柔軟なプログラミング/実行モデルを提供
  • 10. インテル® Xeon Phi™ コプロセッサー向け プログラミング概要
  • 11. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 ベンチマーク 11 ベンチマーク詳細は以下のサイトをご参照ください。  http://www.intel.com/content/dam/www/public/us/en/documents/performance-briefs/xeon-phi- product-family-performance-brief.pdf  http://software.intel.com/en-us/intel-mkl#pid-12768-1295
  • 12. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® Xeon Phi™ コプロセッサー プラットフォーム概要 12 ホスト CPU インテル® Xeon® プロセッサー ホスト・プラットフォーム QPI x16 PCIe Xeon Phi™ インテル® Xeon Phi™ コプロセッサー GDDR5 IBA 10GbE IBA 10GbE ノードあたり 1-4 コプロセッサー ノードあたり 1-2 CPU DDR3 DDR3 GDDR5 x16 PCIe ホスト CPU Xeon Phi™
  • 13. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。13 インテル® Xeon Phi™ コプロセッサーを利用した システム構成例 インテル® Xeon® プロセッサー インテル® Xeon Phi™ コプロセッサー GDDRメモリー DRAMメモリー インテル® Xeon Phi™ コプロセッサー搭載サーバー RHEL SUSE Linux* Linux* IP アドレス IP アドレス ディスク領域 HDD、NAS NFS など コプロセッサー Host システム PCI-Express PCI-Express IP アドレス
  • 14. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 インテル® Xeon Phi™ コプロセッサーを利用した システム構成例(複数ノードの構成例) 14 インテル® Xeon® プロセッサー インテル® Xeon Phi™ コプロセッサー GDDR メモリー DRAMメモリー RHEL SUSE Linux* IPアドレス IP アドレス NIC NIC 他のノード $ ping Xeon サーバー $ ssh user@Xeon サーバー $ ping コプロセッサー $ ssh user@コプロセッサー インテル® Xeon® Phi™ コプロセッサー搭載サーバー コプロセッサー Host システム PCI-Express ブリッジ
  • 15. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 実行モデルの概要 15 MAIN() XEON® 結果出力 MAIN() XEON® XEON PHI™ MAIN() XEON® XEON PHI™ MAIN() XEON® XEON PHI™ MAIN() コンパイラー ライブラリー ランタイムシステム マルチコア単独実行 シリアルおよび 中度な並列コード 高度な並列コード 結果出力 結果出力 結果出力 結果出力 オフロード実行 シンメトリック実行 メニ―コア単独実行 (ネイティブ実行) ソース コード
  • 16. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。16 ヘテロジニアス・プログラミングについて ~はじめに~ • CPU とコプロセッサーの命令セットは似ていますが同一ではありません。 • CPU とコプロセッサーはメインメモリーを共有しません。 「オフロード実行」と「ネイティブ実行」  オフロード実行:プログラムの特定の処理をインテル® Xeon Phi™ コプロセッサーにオフロードして実行するモデル  ネイティブ実行:インテル® Xeon Phi™ コプロセッサー上でのみ プログラムを実行させるモデル インテル® コンパイラーは、  CPU とコプロセッサー両方のバイナリーを生成することができます。  オフロード実行用プログラムを記述するための言語拡張が提供されます。
  • 17. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 ソフトウェア構成概要(オフロード実行モデル) 17 Linux* ホスト インテル® Xeon Phi™ コプロセッサー インテル® Xeon Phi™ コプロセッサー用 ライブラリー、ツール、ドライバー システムレベル ユーザーレベル PCI-E バス Linux* OS Linux* μOS PCI-E バス インテル® Xeon Phi™ コプロセッサー 通信およびアプリケーション起動サポート システムレベル ユーザーレベル ホスト側オフロード・ アプリケーション ユーザーコード オフロード・ライブラリー、 ユーザーレベル・ドライバー、 ユーザーAPI/ライブラリー ターゲット側オフロード・ アプリケーション ユーザーコード オフロード・ライブラリー、 ユーザーAPI/ライブラリー • アプリケーション実行時にホ ストから動的に転送される。 • 1プロセスとして “micuser” によって実行される。
  • 18. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 ソフトウェア構成概要(ネイティブ実行モデル) 18 Linux* ホスト インテル® Xeon Phi™ コプロセッサー システムレベル ユーザーレベル PCI-E バス Linux* OS Linux* μOS PCI-E バス システムレベル ユーザーレベル ssh または telnet で接続 ターゲット側ネイティブ・ アプリケーション ユーザーコード 標準 OS ライブラリー インテル® ライブラリー サード・パーティー ・ライブラリー 仮想端末 インテル® Xeon Phi™ コプロセッサー用 ライブラリー、ツール、ドライバー インテル® Xeon Phi™ コプロセッサー 通信およびアプリケーション起動サポート • 予め実行ファイルをコプロ セッサーに転送しておく。 • コプロセッサーの仮想端 末にログインして実行す る。
  • 19. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 非共有型オフロードコードの例(PI の計算) 19 #include <stdio.h> #include <stdlib.h> #define INTERVALS 1000000000 int main(void) { int i; double x, pi=0.0; double Step = 1.0 / INTERVALS; #pragma omp parallel for private(x) reduction(+:pi) for (i=0; i<INTERVALS; ++i) { x = Step * ((double)i-0.5); pi += 4.0 / (1.0 + x*x); } pi = Step * pi; printf("Pi = %lf¥n", pi); } オフロード セクション オフロード宣言子の追加#pragma offload target(mic)
  • 20. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 非共有型オフロード宣言子 20 C/C++ シンタックス 意味 オフロードプラグマ #pragma offload <指示句> <ステートメント> 次のステートメントを MIC またはCPUで実行 変数/関数用 キーワード __attribute__(( target(mic))) もしくは、 __declspec( target(mic) ) CPU および MIC 用に変数の アロケート、関数のコンパイルを 行う コードブロック用 プラグマ #pragma offload_attribute(push, target(mic)) #pragma offload_attribute(pop) CPU および MIC 用にファイル 全体またはコードブロックを指定 データ転送 #pragma offload_transfer target(mic) データ転送開始 (非同期) データ転送開始と完了 (同期) Fortran シンタックス 意味 オフロード宣言子 !dir$ omp offload <指示句> <ステートメント> 次の OpenMP parallel 構文 を MIC で実行 !dir$ offload <指示句> <ステートメント> 次のステートメントを MIC で実行 変数/関数用 キーワード !dir$ attributes offload:<mic> :: <ret- name> もしくは <var1,var2,...> CPU および MIC 用に関数/ 変数コンパイル
  • 21. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 非共有型オフロード宣言子(続き) 21 節 シンタックス 意味 ターゲット指定 target(name[:#]) 実行する MIC カードの指定 条件付きオフロード if (condition) Boolean 表現 入力 in (var-list modifiersopt) ホストから MIC へコピー 出力 out (var-list modifiersopt) MIC からホストへコピー 入力および出力 inout (var-list modifiersopt) ホストから MIC へコピーしオフ ロード後ホストへコピー コピーしないデータ nocopy (var-list modifiersopt) データは MIC に存在 非同期オフロード signal(signal-slot) 非同期オフロードの開始 非同期オフロード wait(signal-slot) 非同期オフロードの完了待ち 修飾子 シンタックス 意味 ポインター長を指定 length (element-count-expr) 複数のポインター要素をコピー メモリー割当て制御 alloc_if ( condition ) 条件が真ならメモリー割り当て メモリー解放制御 free_if ( condition) 条件が真ならメモリー解放
  • 22. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 非共有型オフロード修飾子の例 22 float reduction(float *data, int numberOf) { float ret = 0.f; #pragma offload target(mic) in(data:length(numberOf)) { #pragma omp parallel for reduction(+:ret) for (int i=0; i < numberOf; ++i) ret += data[i]; } return ret; } $ source /opt/intel/bin/compilervars.sh intel64 $ icc sample_offload.c –O2 –openmp –o sample_offload $ ./sample_offload インテル® コンパイラーによるコンパイルと実行例: ← 環境設定 ← コンパイル ← 実行 ノート: “length”修飾子に指定する値は要素 数でありバイト数ではない。 コンパイラーはデータタイプをすでに 知っている。
  • 23. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 非共有型オフロードによるデータ転送イメージ 23 #pragma offload 文で指定される in/out 変数のデフォルト動作 • オフロードの開始時: ① MIC(コプロセッサー) に領域が確保される ② in 変数は Host から MIC に転送される。 • オフロードの終了時: ④ out 変数は MIC から Host に転送される。 ⑤ MIC 上の in および out 変数の領域が解放される。(inout 変数についても同様) Host MIC (コプロセッサー) #pragma offload inout(pA:length(n)) {...} Allocate 1 Copy back 4 Copy over 2 Free 5 pA 3
  • 24. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。24 ネイティブ実行モデルの概要  インテル® Xeon Phi™ コプロセッサー上で直接実行される モデル • ホスト上で、コンパイラー・オプション “-mmic” を指定してコンパイルす る。(既存コードもそのまま再コンパイル) • コンパイルした実行バイナリー、関連データファイル、必要ランタイム・ラ イブラリーは scp や ftp でインテル® Xeon Phi™ コプロセッサーに事 前にコピーする必要がある。 • ベクトル化、インテル® MKL、OpenMP*、インテル® TBB、インテル® Cilk™ Plus、インテル® MPI などが利用可能。 • プログラムは高度に並列化されていることが望まれる。コプロセッサー 上 でのシリアル実行はホスト CPU より遅くなる。 • アプリケーション実行の際、ホストとメモリー量が異なることを考慮する 必要がある。
  • 25. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 ネイティブ実行モデルのコンパイル/実行例 25 # source /opt/intel/bin/compilervars.sh intel64 # icc -mmic -openmp pi.c -o pi.out.mic # scp pi.out.mic root@mic0: # scp /opt/intel/composerxe/lib/mic/libiomp5.so root@mic0: # ssh root@mic0 # export LD_LIBRARY_PATH=./ # ./pi.out.mic コンパイルと実行準備の例: コプロセッサーへのログインとプログラムの実行例: ※青文字は、NFS (ネットワークファイルシステム) などでファイルを共有し ていない場合に、実行する必要があるコマンドです。
  • 26. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 ネイティブ実行モデルのコンパイル/実行例 ( micnativeloadex ツールの利用) 26 $ source /opt/intel/bin/compilervars.sh intel64 $ $ icc -mmic -openmp omp_app.cpp $ $ export SINK_LD_LIBRARY_PATH=/opt/intel/composerxe/lib/mic $ $ /opt/intel/mic/bin/micnativeloadex a.out ノート: SINK_LD_LIBRARY_PATH 環境変数に MIC 用のランタイム・ライブラリーの ディレクトリーを設定することで、micnativeloadex が自動で必要な依存ライブラ リーをコプロセッサーにコピーする。 また “micnativeloadex a.out -l” で依存ライブラリーをチェック可能。 “micnativeloadex”ツールでネイティブ実行作業を簡略化できる。
  • 27. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。27 float *restrict A, *B, *C; for(i=0;i<n;i++){ C[i] = A[i] + B[i]; } 1 addss %xmm1, %xmm2 B0 A0+
  • 28. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。28 float *restrict A, *B, *C; for(i=0;i<n;i++){ C[i] = A[i] + B[i]; } SIMD (Single Instruction Multiple Data) 1 B3 B2 B1 B0 A3 A2 A1 A0+ •[SSE] float 4 addps %xmm1, %xmm2 •[AVX] float 8 vaddps %ymm1, %ymm2, %ymm3 •[MIC] float 16 vaddps %zmm1, %zmm2, %zmm3 ( )
  • 29. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。29 スカラー演算とSIMD演算の比較 for (i=0; i<40000; i++) c[i] = a[i] + b[i]; .B1.2:: movss xmm0, A[rcx+r9*4] addss xmm0, B[rdx+r9*4] movss C[r8+r9*4], xmm0 inc r9 cmp r9, 40000 jl .B1.2 スカラー演算 コード例 addss : Scalar Single-FP Add single precision FP data scalar execution mode .B1.2:: vmovups ymm0, A[rcx+r9*4] vaddps ymm1,ymm0,B[rdx+r9*4] vmovups C[r8+r9*4], ymm1 add r9, 8 cmp r9, 40000 jb .B1.2 SIMD 演算 コード例(AVX) vaddps : Packed Single-FP Add single precision FP data packed execution mode 8要素ずつ 5,000回の処理 1要素ずつ 40,000回の処理 ループを展開(アンロール)し、パックドSIMD命令を活用して コードの処理効率を高める最適化技術をベクトル化と呼んでいる
  • 30. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。30 SIMD ® Pentirm® (1993) ® SMID Extensions (SSE in 1997 SSE4.2 in 2008) MMX® (1997) ® AVX (AVX in 2011 AVX2 in 2013) ® MIC ( ® Xeon Phi™ in 2012) コアの演算性能を最大限に発揮させるためにはベクトル化が必須
  • 31. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。31 -mmic (-mmic ) ® Xeon® E5-2600 + ® Xeon Phi™ $ icc hoge.c -O3 -xAVX ® Xeon Phi™ $ icc hoge.c -O3 -mmic
  • 32. Intel Information Technology © 2013 Intel Corporation. 無断での引用、転載を禁じます。 *その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。32 最適化に関する注意事項 インテル® コンパイラーは、互換マイクロプロセッサー向けには、インテル製マイクロプロセッサー向けと同等レベルの最適化が行われない可 能性があります。これには、インテル® ストリーミング SIMD 拡張命令 2 (インテル® SSE2)、インテル® ストリーミング SIMD 拡張命令 3 (インテル® SSE3)、ストリーミング SIMD 拡張命令 3 補足命令 (SSSE3) 命令セットに関連する最適化およびその他の最適化が含まれま す。インテルでは、インテル製ではないマイクロプロセッサーに対して、最適化の提供、機能、効果を保証していません。本製品のマイクロプロ セッサー固有の最適化は、インテル製マイクロプロセッサーでの使用を目的としています。インテル® マイクロアーキテクチャーに非固有の特 定の最適化は、インテル製マイクロプロセッサー向けに予約されています。この注意事項の適用対象である特定の命令セットの詳細は、該当 する製品のユーザー・リファレンス・ガイドを参照してください。 改訂 #20110804 本資料の情報は、現状のまま提供され、本資料は、明示されているか否かにかかわらず、また禁反言によるとよらずにかか わらず、いかなる知的財産権のライセンスを許諾するものではありません。製品に付属の売買契約書『Intel‘s Terms and Conditions of Sale』に規定されている場合を除き、インテルはいかなる責任を負うものではなく、またインテル製品の販売 や使用に関する明示または黙示の保証(特定目的への適合性、商品適確性、あらゆる特許権、著作権、その他知的財産権 の非侵害性への保証を含む)に関してもいかなる責任も負いません。 性能に関するテストや評価は、特定のコンピューター・システム、コンポーネント、またはそれらを組み合わせて行ったもので あり、このテストによるインテル製品の性能の概算の値を表しているものです。システム・ハードウェアの設計、ソフトウェア、 構成などの違いにより、実際の性能は掲載された性能テストや評価とは異なる場合があります。システムやコンポーネントの 購入を検討される場合は、ほかの情報も参考にして、パフォーマンスを総合的に評価することをお勧めします。インテル製品 の性能評価についてさらに詳しい情報をお知りになりたい場合は、http://www.intel.com/performance/ (英語) を参 照してください。 © 2013 Intel Corporation. 無断での引用、転載を禁じます。Intel、インテル、Intel ロゴ、Intel Xeon Phi、Xeon、 Xeon Inside、Cilk、VTune は、アメリカ合衆国および / またはその他の国における Intel Corporation の商標です。 * その他の社名、製品名などは、一般に各社の表示、商標または登録商標です。 商標および最適化に関する注意事項について