第9,10,11回 並列プログラミング 実践 その3 MPI (Message Passing Interface) (講義+ワークショップ 90分 x 3)

HPCクラスタでのプログラミングのトレンドであるMPIの基礎技術を習得する。

(1) MPI (Message Passing Interface)

  1. MPIの概要
  2. MPIのプログラミングモデル
  3. MPIの基本機能

・ Hellow Worldでの例

・ mpi.h

・ MPI_Init

・ MPI_Finalize

・ rank

・ コミュニケータ

・ MPI_Comm_size

・ MPI_Comm_rank

・ MPI_Send

・ MPI_Recv

  1. MPIの先端的特長

(2) MPIによるプログラミング

  1. 1対1通信
  2. グループ通信

・ πの計算の並列化

u アルゴリズム

u MPIでの実装例

・ MPI_Bcast

・ MPI_Reduce

・ 演算のバンドル

  1. MPIライブラリの作成

・ MPICH2のコンパイル

・ MPICH2の実行環境の整備

  1. MPIプログラムのコンパイルおよび実行

・ MPICH2によるMPIプログラムのコンパイル

・ MPICH2によるMPIプログラムの実行

 

(3) プログラミングの並列化の方法

  1. どんなところが並列化できるか
  2. 計算部分の並列化パターン
  3. 入出力部分の並列化パターン

・ 入力部分の並列化パターン

・ 出力部分の並列化パターン

  1. ループの分割方法

・ ループの反復と配列

・ 配列の分割方法

・ ブロック分割でのロードバランスが不均一になる例

・ ブロック分割

・ サイクリック分割

・ ブロック・サイクリック分割

・ 配列の最小

u 配列の最小方法

u 配列の最小に伴う変更(I/O以外の部分)

u 配列の最小に伴う変更(I/O部分)

(4) 並列化の応用例

  1. 差分法の徹底攻略

・ 2次元目でブロック分割した場合

・ 1次元目でブロック分割した場合

・ 1、2次元目でブロック分割した場合

・ 1、2次元目でブロック分割した場合(斜めの要素の参照)

・ 配列を縮小する場合

  1. 有限要素法

・ 有限要素法の並列化

  1. LU分解
  2. ICCG法
  3. マルチフロンタル法
  4. SOR法
  5. モンテカルロ法
  6. 個別要素法/分指導力学法

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。

フォーラム会員企業専用

記事配信

コンテンツ配信

ユーザログイン