MPIを用いた最適な分散処理

MPIを用いたグラフの並列計算処理
情報論理工学研究室
07-1-037-0198
川﨑 直紀
目次
並列処理
仮想並列計算機
目的
MPI (Message Passing Interface)
MPICH
検証方法
結果・考察
結論・今後の課題
並列処理
並列処理とはある一つの処理を複数のプロセッ
サを用いて行うこと
 処理速度の向上
• データの分割
• 機能の分割
 メリット
 処理時間が短縮できる
 デメリット
 計算量が増加につれてプロセッサが多く必要
 専用の並列計算機は高価
仮想並列計算機
(Parallel Virtual Computer)
クラスタ(Cluster)処理

主な実装、MPI,PVM,OpenMP等
目的
目的
MPIを用いた並列計算の有用性を検証
方法
1台の計算機の所要時間
比較
複数台で並列処理した場合の所要時間
→どの程度処理時間短縮できるかを計測
MPI(Message Passing Interface)
世界標準を目的に作成されたAPIの規格
メリット
ライブラリレベルでの並列化であるため、
言語を問わず利用できる
 プログラマが細密なチューニングを行える
デメリット
 デッドロックの対処などの問題
 ファイアウォールの問題

MPICH
Argonne国立研究所が開発
無償でソースコードを配布したライブラリ
移植しやすさを重視した作りになっている
2005 年にはMPICH の後継としてMPICH2 が
開発された
最小全域木問題
重み付無向グラフG が与えられたとき、G
の最小全域木T を求める問題
Sollinのアルゴリズムを使用
検証方法
 最小全域木問題
• 毎回ランダムに重み付きグラフGが作成
• 頂点数は5,10,20,40,80,160
• 1から5台の計算機で処理時間を測定
• 試行回数10回
仮想並列計算機の構成図
使用した各計算機の性能
ホストPC
サブPC1
サブPC2
サブPC3
サブPC4
Windows Windows Windows
Windows
Windows
OS
Vista
Vista
Vista
XP
Vista
CPU Core2 1.4GHz Core2 1.4GHz Core2 1.4GHz Pentium 1.6GHz Core2 1.4GHz
RAM
1GB
1GB
1GB
512MB
1GB
内部計算時間と計算機数の関係
内
部
計
算
時
間
m秒
0.00275
0.00250
0.00225
0.00200
0.00175
0.00150
0.00125
0.00100
0.00075
0.00050
0.00025
0.00000
1台 2台 3台 4台 5台
計算機数
頂点 5
頂点 10
頂点 20
頂点 40
頂点 80
頂点 160
全体の処理時間と計算機数の関係
処
理
時
間
m秒
13.000
12.000
11.000
10.000
9.000
8.000
7.000
6.000
5.000
4.000
3.000
2.000
1.000
0.000
1台
頂点 5
頂点 10
頂点 20
頂点 40
頂点 80
頂点 160
2台
3台
計算機数
4台
5台
結果・考察
内部計算時間
:処理速度向上
全体の処理時間 :処理速度低下
 原因は通信
結論・今後の課題
Sollin のアルゴリズムは、通信について一
切考慮されていない
→通信を考慮したプログラムを作成する
通信環境を整備
CPU の性能差を考慮して、負荷分散