<講義6> 並列処理入門:PCクラスタに限らず並列処理に関するハード的・ソフト的概論
- 並列計算機の分類
- 命令系統とデータフローとで4分類する
- 命令系統1本・データフロー1本
- 命令系統複数本・データフロー1本
- 命令系統1本・データフロー複数本
- 命令系統複数本・データフロー複数本
- 命令系統とデータフローとで4分類する
- 並列計算機の構成方式
- プロセッサ間のデータの授受方式・メモリの配置方式とで分類する
- 相互結合網の形態
- メモリ・プロセッサの結合トポロジの設計をして通信遅延を減らす
- 並列処理のプログラム
- 並列処理に特化したHigh-Performance Fortranなどを用いた画一的並列処理(並列処理に適した配列・行列処理の自動並列化、プログラミング時に並列処理を指定する必要がない)
- MPIやPVMを用いて、並列処理方法を指定しながらの並列プログラミング
- 並列処理の効率
- 並列処理を実行するにあたって、高速化を邪魔する要素はいろいろあり、その中にはハードウェア上の問題、ハードウェア配置設計上の問題なども含まれるが、それらの最適化のほかにアルゴリズム上の最適化の問題が存在する
- アルゴリズム上の並列処理の効率化
- 並列化効率を数値で表す方法
- 利用プロセッサ数の関数として定義
- 並列処理部分と非並列処理部分と、並列処理効率の総合結果が処理全体の速度向上率を決定する
- 律速因子
- 逐次処理は全体の並列化効率を大きく下げる
- アルゴリズムを最適化する
- プロセッサ間の通信速度
- 処理の粒度(1度に1つのプロセッサに与えられる処理の大きさ)を大きくすることで通信速度による効率化の低減を防ぐ
- ロードバランス
- すべてのプロセッサに均一に動作を行わせ、待機時間を減らす
- 並列化する単位の選択
- 処理全体の中で発生する、ベクトル・行列などの演算を並列化するか、処理が取り扱う『問題』の特性のうち分割可能な事象を分割して並走させるかという選択が可能
- 前者を数値ソルバー、後者を自然ソルバーと呼ぶ
- 逐次処理は全体の並列化効率を大きく下げる
- 並列化効率を数値で表す方法