並列分散システム レポート1 055717A:金城佑典 1 マージソートのアルゴリズム 1.p台のプロセッサを準備 2.データをp個の領域に分割し、p台のプロセッサに割り当てる 3.プロセッサごとに割り当てられたデータ(1プロセッサあたり(n/p)個)をマージソート 4.プロセッサのデータを統合する(自分の番号+1のプロセッサから受け取ったデータと自分のデータをマージす る) 5.手順3と4をlog(p)回繰り返す 2 解析 1: n個の数をp個の領域に分けるのにnステップかかるとすると: t_comp1=n 2: n/p個データを含むp個のパケットを各プロセッサに送る通信時間(ブロードキャストのとき): t_comm1=t_startup+t_data*n (ここでt_startupは準備にかかる時間、t_dataはデータの転送にかかる時間) 3: n/p個のデータをマージソートする時間: t_comm2=(n/p)log(n/p) 4: プロセッサのデータをまとめるのにかかる通信時間: 1番深い階層(log(p)):t_startup+(n/p)*t_data 2番目に深い階層(log(p)-1):t_startup+(2n/p)*t_data …… 最後までつづけると:log(p)*t_startup+(n/p+2n/p+…+n/2)*log(p)*t_data 5: 2と3はlog(p)回行われるので全体の計算時間は :全体の計三時間=データを各プロセッサに送る時間+n/p個のデータをソートする時間+プロセッサの データをマージしていく時間通信時間 :tp=t_startup+t_data*n+(n/p)log(n/p)+log(p)*t_startup+(n/p+2n/p+…+n/2)*log(p)*t_data
© Copyright 2025 ExpyDoc