こんにちは、Habr!
このトピックのタイトルが示すように、Intelアーキテクチャに基づく高性能システムの並列プログラミングとコード最適化に関するトレーニングビデオコースの作成に積極的に取り組んでいます。 以下は、このコースに関する追加情報、カバーされているトピックと研究室の作業のリスト、およびこのコースの内容と形式のアイデアを提供するパイロットエピソードです。
現在のモジュールでは、ヒストグラム構築の例として、コンパイラーによるコードの自動ベクトル化を改善するための2つの最適化手法と、Intel Xeon CPUおよびIntel Xeon Phiコプロセッサーのパフォーマンス結果を示します。
このコースはIntel向けに英語で撮影されており、私または会社の同僚が直接出席できない場合に使用されます。 このビデオコースに含まれるトピックのリストは、1日のトレーニングに基づいています。 このコースのスライドは、次のリンクで表示できます:
http :
//research.colfaxinternational.com/post/2014/10/13/CDT-Slides.aspx スライド付きのファイルをダウンロードする場合、内部統計のために電子メールと名前が要求され、クライアントの同意なしにメーリングリストに含まれません。
トレーニングトピックのリスト(英語)- ようこそ
- このドキュメントについて
- 免責事項
- Intelメニーインテグレーテッドコア(MIC)アーキテクチャの概要
- Intel MICアーキテクチャの目的
- MICアーキテクチャの詳細
- Intel Xeon Phiコプロセッサー用のソフトウェアツール
- アプリケーションはMICアーキテクチャの恩恵を受けますか?
- Intel Xeon Phiコプロセッサープログラミングのモデル
- プログラミングオプションの概要
- ネイティブコプロセッサアプリケーション
- 明示的なオフロード
- データおよびメモリバッファの保持
- 仮想共有メモリオフロードモデル
- 複数のコプロセッサーの処理
- MPIを使用したコプロセッサーを使用した異種プログラミング
- コプロセッサー上のMPIアプリケーションのファイルI / O
- Intelアーキテクチャでの並列性の表現
- SIMD並列処理と自動ベクトル化
- スレッド並列処理とOpenMP
- OpenMPのスレッド同期
- スレッド間の削減:同期の回避
- 分散メモリ並列処理とMPI
- まとめと追加リソース
- Intelソフトウェア開発ツールを使用した最適化
- 最適化ロードマップ
- ライブラリソリューション:Intel Math Kernel Library(MKL)
- Intel VTune Amplifier XEを使用したノードレベルのチューニング
- Intel Trace AnalyzerおよびCollectorを使用したクラスターレベルのチューニング
- スカラー演算の最適化
- コンパイラーフレンドリーなプラクティス
- 精度管理
- ベクトル化の最適化
- 自動ベクトル化の診断と促進
- ベクトルに優しいデータ構造
- ベクトル化のためのデータ調整
- ベクトル化のためのストリップマイニング
- 追加のベクトル化「チューニングノブ」
- スレッド並列処理の最適化
- 同期の代わりに削減
- 偽りの共有の排除
- 反復空間の拡大
- スレッドアフィニティの制御
- データトラフィックの最適化
- メモリアクセスとキャッシュ使用率
- オフロードアプリケーションでのPCIeトラフィックの最適化
- MPIトラフィックの最適化:ファブリックの選択
- MPIアプリケーションの最適化
- 異種アプリケーションでの負荷分散
- OpenMPとの相互運用
- 追加のリソース
- コースの要約
- Knights Landing、次のメニーコアアーキテクチャ
- 詳細情報の入手先
- Intel Xeon Phiコプロセッサーの入手方法
また、コードの最適化の手順が特定の例を使用して段階的に示される実験室作業を含めることも計画されています。 これらの実践的な演習の名前のリストを以下に示します。
ラボ名(英語)- 2.1ネイティブ
- 2.2-explicit-offload
- 2.3-explicit-offload-persistence
- 2.4-explicit-offload-matrix
- 2.5共有の複雑なオブジェクト
- 2.6マルチコプロセッサー
- 2.7非同期オフロード
- 2.8-MPI
- 2.9-openmp4.0
- 3.1-ベクトル化
- 3.2-openmp
- 3.3-Cilk-Plus
- 3.4-MPI
- 4.1-vtune
- 4.2-itac
- 4.3シリアル最適化
- 4.4ベクトル化データ構造
- 4.5-vectorization-compiler-hints
- 4.6-optimize-shared-mutexes
- 4.7-optimize-scheduling
- 4.8-不十分な並列処理
- 4.9アフィニティ
- 4.タイル張り
- 4.b-Nbody
- 4. c-cache-oblivious-recursion
- 4. d-cache-loop-fusion
- 4.e-オフロード
- 4. f-MPI-load-balance
- 4. g-ハイブリッド
- 4.h-MKL
記録と編集の作業が始まったばかりです。 したがって、以下に提示する問題に関するHabrの意見を知りたいと思います。 私にとって、ロシア語の翻訳は10分のエピソードのサウンドトラックのみで、そのうち50〜60曲は、数時間の作業になります。 それで、私のアイデアがHabr訪問者にとって価値があるかどうかを事前に知りたいです。 したがって、コンテンツ/プレゼンテーションまたは単なるコメントに対する建設的な批判は大歓迎です。