インテル® Xeon Phi™ コプロセッサー開発者向けリソースガイド
この記事は、インテル® Xeon Phi™ コプロセッサーを使用してソフトウェア開発を始めようとする技術者向けに関連するリソースをまとめています。リソースガイドには、それぞれの役割ごとに 3 つのガイドがあります:
- 管理者 は、インテル® Xeon Phi™ コプロセッサーを搭載した 1 台以上のサーバー (クラスター構成も含みます) の管理責任者を指します。
- 開発者 は、インテル® Xeon Phi™ コプロセッサーを搭載したシステム向けにプログラミングを行う技術者を指します。
- 研究者 は、インテル® Xeon Phi™ コプロセッサーについて詳しく調査を行い、その技術を組織的に採用すべきかどうかを決定する役割を持つ人物を指します。
各ガイドには、それぞれの対象者に役立つ情報が記載されています。例えば、クラスターを保守するためのドキュメントは、管理者の興味を引きますが、開発者にとっては有用ではないかもしれません。同様に、プログラミング構文とセマンティクスは、開発者にとっては重要ですが、管理者には一般的でありません。各ガイドの内容は、対象に応じて編集されています。
このガイドで紹介されるリソースは、すべてを網羅したカタログというよりはスタートガイドであり、読者の皆さんがさらに習熟をすすめ、インテル® MIC コミュニティー1 に参加することを勧めるものです。インテル® Xeon Phi™ コプロセッサーの開発者ゾーン2 では、記事やドキュメント、ツール、トレーニング、フォーラム、ブログなどその他の豊富なリソースを掲載しています。
この記事で紹介するトピックは以下に分類されています。
- 開発者向け概要:
- 開発ガイドとプログラミング・リファレンス
- プログラミング・モデル
- コードサンプルとトレーニング
- ツールとライブラリー:
- 開発ツール
- ライブラリーとスクリプトのサポート
- アーキテクチャーと基盤:
- ハードウェア・アーキテクチャー
- ネットワーク基盤
開発者向け概要
基礎的なリソース- インテル® Xeon Phi™ コプロセッサー Developer Zone3 は、インテル® MIC アーキテクチャーに関連する技術者向けのリソースを提供します。
- インテル® Xeon® プロセッサーとインテル® Xeon Phi™ コプロセッサー向けプログラミングの概要4 は、インテル® Xeon Phi™ コプロセッサー向けのプログラミング理論と実践について触れています。
- インテル® メニー・インテグレーテッド・コア・アーキテクチャー・フォーラム (英語) 5 は、インテルによって運営されるパブリックなディスカッション・ボード (フォーラム) であり、開発者は、インテルとコミュニティーのエキスパートから質問の答えやアドバイスを受けられます。
- インテル® Xeon Phi™ コプロセッサー向けネイティブ・アプリケーションのビルド6 は、インテル® Xeon Phi™ コプロセッサーの Linux* システム上で直接実行するネイティブ・アプリケーションのビルド方法について説明します。
- インテル® Xeon Phi™ コプロセッサー・システム・ソフトウェア開発者ガイド (英語) 7 は、インテル® Xeon Phi™ コプロセッサー向けシステム・ソフトウェアのプログラミングの概念とガイドラインを紹介します。
- 以下のドキュメントは、開発者がインテル® Xeon Phi™ コプロセッサー向けアプリケーションの開発を始める際に役立ちます:
- インテル® Xeon Phi™ コプロセッサー命令セットアーキテクチャー・リファレンス・マニュアル (英語) 10 は、スキャッター/ギャザーそしてスゥイズルなどインテル® Xeon Phi™ コプロセッサー固有の命令について説明しています。
- インテル® Xeon Phi™ コプロセッサー向けの最適化とパフォーマンス・チューニング – パート 1: 最適化の基本11 は、インテル® Xeon Phi™ コプロセッサーでより高速に実行できるようにソフトウェアをチューニングする方法について説明します。
- インテル® Xeon Phi™ コプロセッサー向けの最適化とパフォーマンス・チューニング – パート 2: ハードウェア・イベントの理解と使用12 は、アーキテクチャーの概要、パフォーマンス解析に用いるイベントと評価基準の詳細を説明し、推奨するチューニングを紹介します。
- インテル® Xeon Phi™ コプロセッサーのパフォーマンス・モニタリング・ユニット (PMU) (英語) 13 は、ハードウェア・ベースのパフォーマンス・イベントとカウンターを使用したサンプリングと解釈方法を説明するプログラミング・ガイドです。
- インテル® Xeon Phi™ における OpenCL* (英語) 14 は、インテル® Xeon Phi™ コプロセッサー上で OpenCL* を利用するためのリソースを提供します。
- インテル® Xeon® プロセッサーとインテル® Xeon Phi™ コプロセッサーを含むマルチコアおよびメニーコア製品向けプログラミング (英語) 15 は、既存のプログラミング・モデルと “マルチコア環境向けに開発された” ツールがどのようにメニーコア・プロセッサーをサポートするかを紹介します。
- インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー向けプログラミングとコンパイル16 は、インテル® MIC アーキテクチャーを使用してパフォーマンスを向上するアプリケーションの適合性を判断する方法論を提示します。
- インテル® Xeon Phi™ コプロセッサー Developer Zone の“トレーニング” タブ17 は、開発者がインテル® MIC プログラミング・モデルを最大限に活用できるように支援するビデオチュートリアル、コードサンプル、書籍、そして外部トレーニング教材を紹介しています。
- インテル® Xeon Phi™ コプロセッサーのハイパフォーマンス・プログラミング18 は、インテル® MIC アーキテクチャー向けプログラミングの本質を解説する最初の書籍です。
- インテル® Xeon Phi™ コプロセッサー Developer Zone のコードサンプルは、 “トレーニング” タブ19 の “サンプルコード” でご覧いただけます。
- インテル® Composer XE スイートに含まれるコードサンプル20 は、製品のインストール後、次のファイルパスから入手できます (これらのインストール先は、システムごとに変えることができます。また、将来変更される可能性があります):
- /opt/intel/composerxe/Samples/ja_JP
- /opt/intel/composerxe/Documentation/ja_JP (いくつかのチュートリアルがあります)
- /opt/intel/mkl/examples/
- インテル® Xeon Phi™ コプロセッサー・ワークショップ: はじめに21 では、インテル® Xeon Phi™ コプロセッサー・入門および上級ワークショップ (英語) 22 から、最初に取り組むべきことを紹介します。最新のワークショップのコンテンツに関しては、”トレーニング資料 (英語) ” の欄をご覧ください。
- インテル® Xeon Phi™ コプロセッサー向けの外部トレーニングは、次の提供元から入手できます:
- Colfax Research23
- Texas Advanced Computing Center (TACC)24
- Acceleware25
- CAPS, the Manycore Programming Company (http://www.caps-entreprise.com/) 26
- Purdue University – Conte27
ツールとライブラリー
開発ツール- インテル® ソフトウェア開発ツールの詳細: パッケージ、リファレンス・ガイド、ユーザーガイド、BKM、サポート28 では、インテル® ソフトウェア開発ツールのパッケージについて紹介し、役立つドキュメントを見つけられます。
- インテル® Composer XE スイート29 は、 C、 C++、そして Fortran コンパイラーに加え、ライブラリーと各種プログラミング・モデルを提供します。Composer XE スイートのドキュメントは、次の場所から入手できます:
- インテル® C++ Composer XE ドキュメント (英語)(http://software.intel.com/articles/intel-c-composer-xe-documentation)30
- インテル® Fortran Composer XE ドキュメント (英語) (http://software.intel.com/articles/intel-fortran-composer-xe-documentation/)31
- インテル® Xeon Phi™ コプロセッサー Developer Zoneの “プログラミング” タブ32 では、インテル® Xeon Phi™ コプロセッサー向けのプログラミング・モデルとツール、デバッグ方法、コードの最適化に関する情報を取得できます。
- インテル® VTune™ Amplifier XE33 は、C、C++、C#、Fortran、アセンブリー、そして Java* コードのパフォーマンス解析と最適化のためのプロファイル・ツールです。
- インテル® SDK for OpenCL* Applications34 は、OpenCL アプリケーション向けのソフトウェア開発環境です。
- インテル® マス・カーネル・ライブラリー35 は、広く利用されているハイパフォーマンスな数学ライブラリーです。
- インテル® スレッディング・ビルディング・ブロック36 は、効率良く、より高レベルで、タスクベースの並列化を実行するための C++ テンプレート・ライブラリーです。
- インテル® MPI ライブラリー37 は、インテル® アーキテクチャー・ベースのクラスター向けに最適化されたメッセージ・パッシング・インターフェイス (MPI) ライブラリーです。
- インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャーで OpenMP* を利用する最も一般的な手法38 は、インテル® MIC アーキテクチャー向けに OpenMP* を利用する最も一般的な手法を紹介します。
- インテル® Xeon Phi™ コプロセッサー向けネイティブ・アプリケーションのビルド39 には、サードパーティーのライブラリーを構築するガイダンスに関連する情報が含まれています。
- スクリプト: コプロセッサーとホスト・プロセッサーは、標準的な Linux* を利用するため、一般的なスクリプト言語をサポートしています。コプロセッサー上の Linux* は、最小構成であるため、コプロセッサー向けのインタープリターをコンパイルする必要があることに留意してください。
アーキテクチャーと基盤:
ハードウェア・アーキテクチャー- インテル® Xeon Phi™ コプロセッサー – アーキテクチャー40 は、インテル® Xeon Phi™ コプロセッサーのハードウェア・アーキテクチャーの概要を紹介します。
- インテル® Xeon Phi™ コプロセッサーのアーキテクチャー概要 (英語) 41 では、インテル® MIC アーキテクチャーについて説明し、インテル® Xeon Phi™ コプロセッサーのハードウェアの概要とその実装について解説します。
- インテル® Xeon Phi™ コプロセッサーのアーキテクチャーとツール: The Guide for Application Developers42 は、インテル® Xeon Phi™ コプロセッサーのアーキテクチャーと、開発者がプログラミングで使用する並列データ構造ツールとアルゴリズムに関して包括的に紹介する書籍です。
ホストとコプロセッサーは、標準的な Linux* OS を使用し、一般的なネットワーク・プロトコルをサポートします。”サポート” とは、それらがデフォルトでインストールされていることを意味するものではないことに注意してください。詳細は、以下のドキュメントを参照してください。
- 以下のドキュメントには、高度な設定情報と手順が含まれています:
- インテル® Xeon Phi™ コプロセッサー・システム管理者ガイド (英語) 45 は、システム管理者の視点から、コプロセッサーの実行環境を理解するのに役立つ一般的な情報を提供します。
参考文献
以下のリストは、本文中でカバーされた URL と、Developer Zone でリソースを見つけるためのナビゲーションの両方を掲載しています。“MIC-IDZ” は、http://software.intel.com/mic-developer にあるインテル® Xeon Phi™ コプロセッサー Developer Zone の略です。”ISUS-DZ” は、https://www.izzz.us/article/idz/mic-developer/ の略です。
1 http://software.intel.com/en-us/forums/intel-many-integrated-core (英語) ナビゲーション: MIC-IDZ => Get Support => Intel® Many Integrated Core Architecture Forum2 https://www.izzz.us/article/idz/mic-developer/ ナビゲーション: ISUS-DZ
3 http://software.intel.com/en-us/mic-developer ナビゲーション: ISUS-DZ
4 https://www.izzz.us/wp-content/uploads/pdf/an-overview-of-programming-for-intel-xeon-processors-and-intel-xeon-phi-coprocessors_1.pdf ナビゲーション: ISUS-DZ
5 http://software.intel.com/en-us/forums/intel-many-integrated-core (英語) ナビゲーション: MIC-IDZ => Get Support => Intel® Many Integrated Core Architecture Forum
6 https://www.izzz.us/article/mic-article/building-a-native-application-for-intel-xeon-phi ナビゲーション: ISUS-DZ => プログラミング => プログラミング => “ネイティブ・アプリケーションのビルド”
7 http://software.intel.com/en-us/articles/intel-xeon-phi-coprocessor-system-software-developers-guide (英語) ナビゲーション: MIC-IDZ => Tools & Downloads => Intel Xeon Phi Coprocessor Software Developer’s Guide => section 2.2
8 https://www.izzz.us/article/mic-article/intel-xeon-phi-coprocessor-developers-quick-start-guide/ ナビゲーション: インテル® Xeon Phi™ コプロセッサー => 概要 => 利用ガイドとマニュアル => インテル® Xeon Phi™ コプロセッサー開発者クイック・スタート・ガイド => 記事のダウンロード => “インテル® Xeon Phi™ コプロセッサー開発者向けクイック・スタート・ガイド”
9 https://www.izzz.us/article/mic-article/intel-xeon-phi-coprocessor-developers-quick-start-guide/ ナビゲーション: インテル® Xeon Phi™ コプロセッサー => 概要 => 利用ガイドとマニュアル => インテル® Xeon Phi™ コプロセッサー開発者クイック・スタート・ガイド => 記事のダウンロード => “インテル® Xeon Phi™ コプロセッサー MICROSOFT* WINDOWS* ホスト向けクイック・スタート・ガイド”
10 http://download-software.intel.com/sites/default/files/forum/278102/327364001en.pdf (英語) ナビゲーション: MIC-IDZ => Overview => Intel Xeon Phi Coprocessor Instruction Set Architecture Reference Manual
11 https://www.izzz.us/article/mic-article/optimization-and-performance-tuning-for-intel-xeon-phi-coprocessors-part-1-optimization/ ナビゲーション: ISUS-DZ => プログラミング => 最適化
12 https://www.izzz.us/article/mic-article/optimization-and-performance-tuning-for-intel-xeon-phi-coprocessors-part-2-optimization/ ナビゲーション: ISUS-DZ => プログラミング => 最適化
13 http://software.intel.com/sites/default/files/forum/278102/intelr-xeon-phitm-pmu-rev1.01.pdf (英語) ナビゲーション: MIC-IDZ => Search(“278102”) => RESOURCES (including downloads) => intelr-xeon-phitm-pmu-rev1.01.pdf
14 http://software.intel.com/en-us/forums/topic/382241#comment-1729511 ナビゲーション: MIC-IDZ => Search(“OpenCL Phi” ) => OpenCL on Xeon Phi
15 http://software.intel.com/en-us/articles/programming-for-multicore-and-many-core-products (英語) ナビゲーション: MIC-IDZ => Programming => Programming for Multicore and Many-core Products
16 https://www.izzz.us/article/mic-article/xeon-phi/ ナビゲーション: ISUS-DZ => プログラミング => プログラミング
17 https://www.izzz.us/article/idz/mic-developer/ ナビゲーション: ISUS-DZ
18 http://www.cutt.co.jp/book/978-4-87783-332-9.html
19 https://www.izzz.us/article/idz/mic-developer/ ナビゲーション: ISUS-DZ
20 https://www.izzz.us/article/intel-software-dev-products/intel-parallel-studio-xe/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
21 http://software.intel.com/en-us/videos/beginning-intel-xeon-phi-coprocessor-workshop-introduction ナビゲーション: MIC-IDZ => Training => Video Workshops and Tutorials => Beginning Videos => Introduction & Goals
22 http://software.intel.com/en-us/tags/41698 ナビゲーション: MIC-IDZ => Training => Video Workshops and Tutorials
23 http://www.colfax-intl.com/nd/xeonphi.aspx
24 https://www.tacc.utexas.edu/web/tup/training
25 http://www.acceleware.com/xeon-phi-training
26 http://www.caps-entreprise.com
27 http://www.rcac.purdue.edu/userinfo/resources/conte/
28 http://software.intel.com/en-us/articles/intel-tools-reference-guides-user-guides-bkms-getting-support ナビゲーション: MIC-IDZ => Tools & Downloads => Intel® Software Development Tools Demystified:The Packaging, Reference Guides, User Guides, BKMs, Getting Support
29 https://www.izzz.us/article/intel-software-dev-products/intel-parallel-studio-xe/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
30 http://software.intel.com/articles/intel-c-composer-xe-documentation ナビゲーション: MIC-IDZ => Software Development Products => Intel C/C++ and Fortran Compilers => Related Content => Documentation => C/C++
31 http://software.intel.com/articles/intel-fortran-composer-xe-documentation ナビゲーション: MIC-IDZ => Software Development Products => Intel C/C++ and Fortran Compilers => Related Content => Documentation => Fortran
32 https://www.izzz.us/article/idz/mic-developer/ ナビゲーション: ISUS-DZ
33 https://www.izzz.us/article/intel-software-dev-products/intel-vtune-amplifier-xe/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
34 https://www.izzz.us/article/intel-software-dev-products/intel-opencl/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
35 https://www.izzz.us/article/intel-software-dev-products/intel-mkl/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
36 https://www.izzz.us/article/intel-software-dev-products/intel-tbb/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
37 https://www.izzz.us/intel-mpi-library/ ナビゲーション: ISUS-DZ => サポート => 対応開発ツール
38 https://www.izzz.us/article/mic-article/best-known-methods-for-using-openmp/ ナビゲーション: ISUS-DZ => プログラミング => プログラミング
39 https://www.izzz.us/article/mic-article/building-a-native-application-for-intel-xeon-phi ナビゲーション: ISUS-DZ => プログラミング => プログラミング => “ネイティブ・アプリケーションのビルド”
40 https://www.izzz.us/hpc/intel-xeon-phi-coprocessor-codename-knights-corner/ ナビゲーション: ISUS-DZ => 概要 => 導入ガイド
41 http://software.intel.com/sites/default/files/Intel%C2%AE_Xeon_Phi%E2%84%A2_Coprocessor_Architecture_Overview.pdf ナビゲーション: MIC-IDZ => Training => Video Workshops and Tutorials => Training Presentations => “Intel® Xeon Phi™ Coprocessor Architecture Overview”
42 http://click.intel.com/intelr-xeon-phitm-coprocessor-architecture-and-tools-the-guide-for-application-developers.html
43 https://www.izzz.us/article/mic-article/software-stack-mpss/ ナビゲーション: ISUS-DZ => ツールとダウンロード:インテル® メニーコア・プラットフォーム・ソフトウェア・スタック => 最新ファイルのダウンロードはこちら
44 https://www.izzz.us/article/mic-article/software-stack-mpss/ ナビゲーション: ISUS-DZ => ツールとダウンロード:インテル® メニーコア・プラットフォーム・ソフトウェア・スタック => 最新ファイルのダウンロードはこちら
45 http://software.intel.com/en-us/articles/system-administration-for-the-intel-xeon-phi-coprocessor ナビゲーション: MIC-IDZ => Overview => System Administration Guide
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。