マンデルブロー集合の並列計算における粒度と効率の関係

マンデルブロー集合の並列計算
における粒度と処理時間の関係
森 雄司
目次
①マンデルブロー集合とは
②研究目的
③プログラム
④予想・結果
⑤考察
マンデルブロー集合とは
zn 1  zn  c
2
z0  0
 
で定義される複素数列 z n nN が n   の極限で無限大に発散しない
という条件を満たす複素数c全体が作る集合のことである。
マンデルブロー集合は複素数平面上で自己相似的なフラクタル図形として表される。
引用:フリー百科事典『ウィキペディア(Wikipedia)』
http://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%B3%E3%83%87%E3
%83%AB%E3%83%96%E3%83%AD%E9%9B%86%E5%90%88
目的
・粒度を変えることでタスクの割り当てと通信回
数をかえる。そのことによって、処理時間がど
のように変わるのかを調べる。
+2
矢印の長さ = 粒度
-1.6
+2
-2
-2
-1.3
粒度4
並列化
・farmerの中は、座標管理と座標を振り分ける部分
に分けている
・workerは3つで動作させている
farmer
ALT
ch 1
ch 2
ch 3
ch 1
worker
座標管理
ch 2
worker
ch 3
worker
-2.0≦x<2.0
-2.0<y≦2.0
で0.1刻み
40×40の点
を管理
プログラム
粒度を入力
(粒度:m)
発散速度計算
z n 1  z n  c
2
座標計算(x , y)
(配列計算(i , j))
x = x+m
x,y,m
z0  0
zn  2
(発散速度:s)
x,y,i,j,m
ALT
sを出力
sを配列に格納
(i,j)=s
m-1回
s
全ての計算終了
farmer
worker
予想
• 粒度が細かいと通信回数が増えるため時間がかかるが、粗
いと特定のworkerのみが処理を行う状況が生まれる可能性
があり、無駄な時間が生じる。
• 処理時間が最も早い粒度が見つかると考えられる
時
間
ココ
粒度
結果
粒度: 時間
1 :544181
2 :543881
時
間
4 :543419
5 :543549
8 :543020
10 :543567
20 :544779
40 :547898
80 :549708
160:545979
200:587169
粒度8が最速!!
400:757301
1 2
時間:1=64μsec
4 5 8 10
20
40
80
160
200
400
粒度
考察
粒度80から160にかけて速くなったのはなぜか
13900
①
worker1
③
worker2
②
④
worker3
粒度80
①
②
③
④
⑤
⑤
9500
考察
粒度80から160にかけて速くなったのはなぜか
worker1
worker2
②
③
worker3
粒度160
①
②
③
④
⑤
9000
④
①
⑤
1000
考察
粒度80から160にかけて速くなったのはなぜか
13900
①
worker1
③
worker2
⑤
②
④
worker3
9500
粒度80
worker1
worker2
9000
④
①
②
③
worker3
⑤
粒度160
粒度160のほうがworkerが働いていない時間が短いため、
粒度80よりも短い時間で処理できたと考えられる!!
1000