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
p2
p3
p4 p1 p2 p3 p4 p5 p6 p7 p8
並列行列積計算
•
プログラミングには
C言語を用いる 並列化前の計算量
O(n)=n3•
問題サイズを分割して各計算機に処理を分 散することで並列化を行う
•
ホストで乱数により行列を生成し、各計算
ノードへ送信する。計算ノードは担当領域
の処理を行い結果をホストへ返す
データ通信
ノード 1
ノード 2 ノード 3 ・・・・・・・・ ノード 8
・・・・・・・・
ホスト
ノード 1
生成した行列を 各ノードに送信す る
計算結果を1つづ つホストへ返す
ホスト
測定結果
行列サイズ
CPU
数
1024 20481 76.2 610.5 2 40.8 323.8 4 21.7 174.5 8 12.6 89.3
単位:秒
測定結果
オーバヘッドに関する考察
ホスト
p2
p3
p4
各ノードから一つ
ずつデータを送信
していくため、ノ
ードの数に正比例
する形でオーバヘ
ッドが増加すると
予測される。
考察
•
処理時間はプロセッサ数に対し反比例に近い 推移と言える。
•