本書は、前作『インテルXeon Phiコプロセッサー・ハイパフォーマンス・プログラミング』(邦訳版2014年刊行)の内容を置き換えて、最新のインテルXeon Phiプロセッサー(開発コード「Knights Landing」)に含まれる多くの拡張機能を最大限に活用する並列プログラミング手法に焦点を当てています。
本書は、読者がメニーコア・プログラミングの知識をある程度持っていると仮定して書かれています。
第I部「Knights Landing」では、Knights Landingに注目し、アーキテクチャー、高帯域幅メモリー、クラスターモード、および統合ファブリックについて説明します。他のコンピューターでもそうであるように、アプリケーションをチューニングする可能性を見出すには、それらを理解する必要があります。この部ではこの理解度を深めます。
第II部「並列プログラミング」では、メニーコアへスケールするためアプリケーション・プログラミングで考慮すべき内容に注目します。第7章は、並列処理を実装するためにコードを変更することは、革新に対する進化であることを説明します。第8章は、OpenMPとTBBによるタスクとスレッドをカバーします。第9章から第12章では、各種データ並列ベクトル化ツールとテクニックについて説明します。第13章は、ライブラリーについて触れています。第14章では、ルーフライン推測技術とMCDRAMに配置するデータ構造を選択する方法を含む、プロファイル・ツールとテクニックについて説明します。第15章は、MPIについて触れています。第16章では、OpenSHMEM、Coarray Fortran、およびUPCを含む、注目されるPGASスタイルのプログラミングについてカバーします。第17章は、ソフトウェア定義の可視化ライブラリーを使用して、並列にグラフィックスを描画する利点について説明します。第18章では、Knights Landingコプロセッサー、またはファブリックで接続されるKnights Landingプロセッサーへオフロードするプログラミングの詳細を含む、オフロードスタイルのプログラミングについて説明します。第19章は、重要視される電力効率に向けて、Knights Landingの電力解析について説明します。
第III部「秘訣」では、実際の並列アプリケーションに注目し、Knights Landingでの特定の結果と最適化の注意事項と例をまとめています。第20章では、この部の概要と各章のハイレベルなまとめを紹介します。第21章以降では、高帯域幅メモリーとKnights Landingのクラスターモードを使用して、『High-Performance Parallelism Pearls』第1巻と第2巻で紹介した例を改善します。私たちは、他の専門家の取り組みを見ると、そのすべてを学ぶことができると信じています。本書の第III部とPearls書籍の第1巻、第2巻からは、多くの恩恵が受けられると信じます。ここで見つけられる多くのテクニックは、Knights Landingを含む多くのマルチコアおよびメニーコア・プロセッサーのパワーを活用する方法をもたらすでしょう。