マンデルブロー集合の並列計算 における粒度と処理時間の関係 森 雄司 目次 ①マンデルブロー集合とは ②研究目的 ③プログラム ④予想・結果 ⑤考察 マンデルブロー集合とは zn 1 zn c 2 z0 0 で定義される複素数列 z n nN が 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
© Copyright 2024 ExpyDoc