MPIによる仮想並列処理 情報論理工学研究室 04-1-47-278 阪木 康寿 発表の構成 • • 研究内容 背景 • • • • • • 並列処理 仮想並列計算機 MPI(Message Passing Interface) 並列行列積計算 測定結果・考察 結論 研究内容 • 複数のプロセッサを用いる並列処理により、 処理速度の高速化について実験を行う • 並列処理を実行するために仮想並列計算機 を構築する • n行n列である正方行列Aの2乗を求める 行列積計算を並列化して処理時間を測定 並列処理 • プロセッサの処理速度は物理的な限界がある • 複数のプロセッサを用いて単一のプロセッサを用い るよりも高速に処理を行う しかし並列計算機は非常に高価である 仮想並列計算機の構築 仮想並列計算機 • 複数の計算機をネットワークで接続し、各計 算機をノードとして並列処理を行う。 • 仮想並列計算機の実装にはMPIを用いる。 仮想並列計算機の構成 MPI(Message Passing Interface) • MPI Forumによる並列コンピューティングの 規格でありプログラミング言語ではない。 規格に基づいて実装されたMPIライブラリを 用いてプログラムの並列化を行う。 • 本研究ではMPI実装ライブラリの一つである MPICH2を用いて並列化を行った。 並列行列積計算 • プログラミングにはC言語を用いる 並列化前の計算量 O(n)=n3 • 問題サイズを分割して各計算機に処理を分 散することで並列化を行う 問題サイズの分割 p1 p1 p2 p1 p3 p2 p4 p1 p5 p3 p6 p2 p7 p4 p8 並列行列積計算 • プログラミングにはC言語を用いる 並列化前の計算量 O(n)=n3 • 問題サイズを分割して各計算機に処理を分 散することで並列化を行う • ホストで乱数により行列を生成し、各計算ノー ドへ送信する。計算ノードは担当領域の処理 を行い結果をホストへ返す データ通信 ホスト ノード1 ノード2 ノード3 生成した行列を 各ノードに送信する ・・・・・・・・・・・・・・・・ ホスト ノード1 ノード8 計算結果を1つづつ ホストへ返す 測定結果 行列サイズ 1024 2048 1 76.2 610.5 2 40.8 323.8 4 21.7 174.5 8 12.6 89.3 CPU数 単位:秒 測定結果 700 600 時間(秒) 500 400 1024 2048 300 200 100 0 1 2 4 CPU数 8 オーバヘッドに関する考察 p2 ホスト p3 p4 各ノードから一つず つデータを送信して いくため、ノードの 数に正比例する形 でオーバヘッドが増 加すると予測され る。 考察 • 処理時間はプロセッサ数に対し反比例に近 い推移と言える。 • 通信・遅延時間によるオーバヘッドはプロセッ サ数に対し比例に近い推移と考えられる。 均質な性能のプロセッサを増加させるほど単 純な処理時間は短縮可能であると言えるが、 通信・遅延によるオーバヘッドの増加も考える 必要がある。 結論 並列化によって処理速度は確実に向上している データ処理の高速化において、並列処理が有効 な手段であると言える また、既存の計算機やネットワークで構築で き、仮想並列計算機はコスト面においても優 秀と言える
© Copyright 2024 ExpyDoc