選択問題を解く BSP モデ ル 及び BSP
∗モデ ル 上の並列アルゴ リズ ム
石水 隆
†藤原 暁宏
††井上美智子
†増澤 利光
†藤原 秀雄
†Parallel Algorithms for Selection on the BSP Model and the BSP
∗Model
Takashi ISHIMIZU
†, Akihiro FUJIWARA
††, Michiko INOUE
†,
Toshimitsu MASUZAWA
†, and Hideo FUJIWARA
†あら まし 本論文では ,BSP( Bulk-Synchronous Parallel)モデル及び BSP∗ モデ ル 上で 選択 問題を 解 く 並列アルゴ リズ ムを 提案する .BSP モデル及び BSP∗モデ ルは ,近年提案され た 並列計算モデ ル で あり,最 近 の 並 列 計 算に お い て 重 要と され て い る 通 信コ スト を ,同 期 周 期L,通信路帯域幅の 逆数 g,パケット サ イズ B といったパラ メータに より 表すことを 可能にし たモデ ル であ る.本論文では ,デ ータ数 n の選 択 問題に 対し ,p 個のプ ロセッサを 用いてBSP モデル上で任意の整数 d (1 <= d <= log n) に対し 内部計算時間 O(np+d log p log log n+Llog p log log n
log d ),通信時間 O(gnp+(gd+L)
log p log log n
log d ),また,BSP∗モデル上で内部
計算時間O(n
p+ d log p log log n + Llog p log log n
log d ),通信時間 O(g(pBn + (np)17(log p)67) + (gd + L)log p log log n log d )
の並列アルゴ リズムを 提案する.
キーワード 並列アルゴ リズム,BSP モデル,選択問題,計算量
1. ま え が き
従来の並列アルゴ リズムに 関する研究は ,共有 メモ リ型並 列計算モデ ル ではPRAM(Parallel Random Access Machine),分散 メモリ型並列計算モデ ルでは メッシュモデル,ハイパキューブ モデル等の特定のネッ ト ワーク構造をもつ並列計算モデ ルに 関する研究が 主 流であった .初期の並列計算機の多くが ,低ビ ット の 並列処理専用に 開発され たプ ロセッサを 使って,短い 周期で同期をとりながら処理を行うものであったため, これ ら の 並列 計 算モデ ル で も1命令ご と の 同 期が 仮 定され ることが 多か った .また,初期の並列計算機で は ,プ ロセッサの演算能力が 低か ったこともあり,プ ロセッサ内部の演算に 比べて,プ ロセッサ間の通信は それほど 考慮が 必要とされず,上記の並列計算モデ ル においても,通信コ ストの表現には 重点が おかれてい
†奈良先端科学技術大学院大学情報科学研究科 ,生駒市
Graduate School of Information Science Nara Institute of Science and Technology, 8916–5 Takayama, Ikoma-shi, 630– 0101 Japan
††九州工業大学情報工学部電子情報工学科,飯塚市
Department of Computer Science and Electronics, Kyushu Institute of Technology, 680–4 Kawazu, Iizuka-shi, 820–8502 Japan
なか った .
し かし ながら ,プ ロセッサ能力の向上に 伴い,プ ロ セッサ間の通信コ ストがプ ロセッサ内部の演算コ スト と と もに ,並 列 計 算の コ スト に おけ る 重 要な 要 素と なってきた .また ,同時に 多くのプ ロセッサが 大部分 の処理を他のプ ロセッサと 同期せずに 処理を行う非同 期処理も主流となってきた .これらの特徴をもつ最近 の並列計算機に 対し ては ,PRAMを 代表と する従来 の並列計算モデ ルでは ,アルゴ リズムの評価を正確に 行うことが 困難であり,これらの特徴に 対応し た新し い並列計算モデ ルが 望まれ ていた .
本論文では上記の要求に 対応し た並列計算モデ ルで あ るBSP(Bulk-Synchronous Parallel)モデ ル[9], 及び その 拡張モデ ルであ るBSP∗モデル[2]を 使用し てアルゴ リズムの提案を行う.BSPモデルはValiant により提案され た並列計算モデ ルであり,通信コ スト を同期周期,通信命令実行時間を表すL,gという二 つの パラ メータに より 表すこ とが 可能に なって いる . また同期機構を仮定することに より,非常に 緩い同期 の処理に対応可能なモデルである.BSP∗モデルでは , 通信パケット サ イズを 表すパラ メータB を 導入する ことにより,より実際に 即し たアルゴ リズムの計算量
D– Vol. J82–D– No. 4 pp. 533–542 1999 4 533
の検証を可能にし ている.
本論文では,これらのモデル上で選択問題を解く並列 アルゴ リズムの提案を行う.選択問題とは,全順序関係 をもつn個のデ ータの集合Sと自然数k (1 <= k <= n) が 与えられたときに ,Sの中からk番目に小さい要素 を求める問題であり,多くのアプ リケーシ ョンにおい て ,部分問題とし て 利用され て いる基 本問題で あ る . この 選択問題に 対し ては ,O(n)時間の 最適逐次アル ゴ リズム[8]が 知られている.
選 択 問 題に 対す る 並 列アルゴ リズ ムとし ては ,以 下のものが 知られている.Cole [3]はEREW PRAM 上でO(log n log∗n)時間( 注1),log n logn ∗nプ ロセッサ, CRCW PRAM上でO(log n loglog log n∗n)時間,n log log n
log n log∗n
プ ロ セッサで 選 択 問 題 を 解 く 最 適 加 速
( 注2)
な 並 列 ア ルゴ リズ ムを 示し た .BSPモデ ル 上ではGerbessio- tisら[5]が 内 部 計 算 時 間O(n
p + L log p),通 信 時 間
O(gn
2 3+δ
p + L log p)で停止し ,確率1 − O(n 1−ρ)
で解 を出力するp (1 <= p <= n2/3+ζ)プロセッサの確率的並 列アルゴ リズムを示した.ρ,δ,ζは0 < ζ < δ <1/3,
ρ > 1となる任意の 定数である.BSP∗モデ ル 上では B¨aumkerら[1]がプ ロセッサ数p = O(logn4n),cが 任 意の 定 数の と き B <=
np に 対し て 内部 計算 時間 O(np+ L log p),通信時間O(Bg
np+ (L + g) log p) となる確率 1 − 1
nc の確率的並列アルゴ リズムを示し た .以上の よ うに ,BSPモデ ル ,及びBSP∗ モデ ル では ,選択問題を解く確率的なアルゴ リズムは 提案さ れ て い るが ,決 定 性アルゴ リズ ムは 提 案され て いな か った .
本論文では選択問題を解く以下の二つの 決定性並列 アルゴ リズムを示す.
(1)BSP モ デル上 で内 部 計 算 時 間 O(n
p
+ d log p log log n + Llog p log log n
log d ),通信 時 間O(g n p
+ (gd + L)log p log log n
log d )のアルゴ リズム.
(2)BSP∗ モ デ ル 上 で 内 部 計 算 時 間 O(n
p
+ d log p log log n + Llog p log log n
log d ),通信時間O(g(
n pB
+ (np)17(log p)67) + (gd + L)log p log log n
log d )のアルゴ リ
ズム.
ただしdは1 <= d <= log nを満たす任意の整数であり, かつプ ロセッサ数pは1 <= p <= n
log n である.(1)の
アルゴ リズムの計算量は ,g = d = O(1)のとき内部
計算時間,通信時間がともにO(n
p+ L log p log log n) となり,プ ロセッサ数が 小さい 場合は ,最適加速なア ルゴ リズムとなる.(2)のアルゴ リズムも,d = O(1), g <= B = O((p log pn )67) の場 合,内部計算時間,通信 時間が と もに O(n
p + L log p log log n) とな り,プ ロ セッサ数が 小さい場合は ,最適加速なアルゴ リズムと なる.
2. 準 備
2. 1 BSPモデル及びBSP∗モデ ル
2. 1. 1 定 義
BSP(Bulk-Synchronous Parallel)モ デ ル[9]は Valiantに よって 提 案 され た 非 同 期 式 並 列 計 算 モデ ルであり,以下の構成要素からなる.
• 局所 メモリをもつ複数のプ ロセッサ( 本論文中 ではプ ロセッサ数をpとし ,各プ ロセッサをPi(1 <= i <= p)で 表す )
• プ ロセッサ間の1対1メッセージ 通信を行う完 全結合網
• プ ロセッサ間の同期を実現するための同期機構 BSPモデル上での並列アルゴ リズムは ,各プ ロセッ サが 実行するプ ログ ラムに より表され る.各プ ロセッ サが 実行するプ ログ ラムは スーパステップ の列からな る.各スーパステップ は 内部計算命令の列からなる内 部計算フェーズと ,送信命令,受信命令の列からなる 通信フェーズで 構成され ており,各プ ロセッサは スー パ ス テップ の 命 令を 非 同 期に 実 行す る .また ,ス ー パステップ の命令を終了後,プ ロセッサ間でバリヤ同 期
( 注3)
をとり,次のスーパステップの実行に移る.メッ セージ の受信については ,各スーパステップ 中の通信 フェーズで送信された メッセージは同一のスーパステッ プ の通信で 受信され るが ,その メッセージはその次の スーパステップ 以降でし か 利用できないと 仮定する. BSPモデルは以下の二つのパラ メータにより,具体 的なネット ワーク構造や メッセージ 配送の仕組みを 抽 象化し ている.
( 注1):log∗ n = min{i| log(i) n <= 2}.こ こ で ,log(i) n = log(log(i−1) n), log(1) n = log nで ある.
( 注2):並列アルゴ リズ ムのプ ロセッサ数と 時間計算量の積が 最速の逐 次アルゴ リズ ムの時 間計算量と漸近的に 等し いとき ,その並列アルゴ リ ズムは 最適加速な並 列アルゴ リズムで あるという.
( 注3):バ リヤ同期とは ,協調し て動 作する多数のプ ロセ ッサの歩 調を 合わせ ることを目的とし た同期プ リミテ ィブ である.バ リヤ同期を 実行 し て同 期をと る場合 ,すべてのプ ロセッサが バ リヤに 到達するまでど の プ ロサッサも実行を 継続できず,封鎖され る.
BSP モデル及び BSP
• L:バ リヤ同期周期
• g (<= L):1個の 送信命令又は 受信命令の 実 行 に 必要な時間
BSPモデル上の並列アルゴ リズムの基本的命令の実 行時間について ,以下のように仮定され ている.
• 各プ ロセッサは1単位時間に1内部計算命令を 局所 メモリにのみ基づいて 実行する.
• メッセージ1個の送信命令又は 受信命令の実行 はg単位時間で 行われ る.ただし ,1メッセージは1 語からなるものとし ,サ イズ1の メッセージ と呼ぶ.
• あ る ス ー パ ス テップ に お い て ,すべ て のプ ロ セッサで 命令の実 行を 終了し てから L 時間以内にバ リヤ同期がとられ ,次のスーパステップ の実行に移る. よって ,あるスーパステップにおいて ,各プ ロセッサ がたかだか w個の 内部計算命令,たかだかh個の送 信命令又は 受信命令を割り当てられた場合,その スー パステップ の実行にはO(w + gh + L)時間かかる. 以降では 簡単のために ,各スーパステップ は内部計 算命令のみ,あるいは 送信命令及び 受信命令のみから なるとし ,内部計算命令のみからなるスーパ ステップ の 実 行 時 間を 内 部 計 算 時 間 ,送 信 命 令 及び 受 信 命 令 のみからなるスーパステップ の実行時間を通信時間と 呼ぶ .
BSP∗モデル[2]はB¨aumkerらによって提案された BSPモデ ルの拡張モデ ルであり,BSPモデ ルのパラ メータに 加えて以下のような通信パケット のサイズを 表すパラ メータをもつ.
• B (>= 1):通信パケット の最小サ イズ
この拡張は ,多くの並列計算機において ,メッセー ジがある特定のサ イズの通信パケット とし て伝達され るという事実に 基づいている.
また ,この 拡張に よるBSPモデ ルから の 変更点は 以下のとおりである.
• 同じプ ロセッサに 対するs語の メッセージをサ イズsの メッセージとし て送信又は 受信できる.
• サ イズ s の メッセージ の 送 信命 令 又は 受信 命 令の 実 行は g⌈s
B⌉ 単 位 時間で 行われ る .よって 各プ ロセッサが たか だかw 個の内 部計算命令,各サ イズ s1, s2, . . . , shであ るたかだか h個の メッセージ の 送 信命令又は 受信命令からなるスーパステップ の実行に は ,O(w + g
h i=1⌈si
B⌉ + L)時間かか る.
2. 1. 2 BSPモデ ル 及びBSP∗モデ ル 上の 基本ア ルゴ リズム
本 論 文 中で 提 案す る 選 択 問 題を 解 く 並 列アルゴ リ
ズ ムで は ,ブ ロード キャ スト 操作 ,接頭部 演算操作 , ソーテ ィング 操作を 行 うBSPモデ ル 上の 並列アルゴ リズ ムを 利用する .各操作はBSPモデ ル 及びBSP∗ モデ ル 上では以下のように定義され る.以下の定義で は 要素a,各ai,各bi等はいずれ もサ イズ1であ る とする.
[ 定義1](ブ ロード キャ スト 操作 )ブロード キャスト 操作とは ,ある1プ ロセッサが 保持する要素をすべて のプ ロセッサに 送信する操作である.
入力:値a(プ ロセッサP1が 保持する.) 出力:すべてのプ ロセッサが 値aを保持する.
[ 定義2]( 接頭部演算操作 ) 入 力:n 個 の 要 素 列 (a1, a2, . . . , an).各 Pi (1 <= i <= p) が (a⌈(i−1)n
p⌉+1, a⌈(i−1)np⌉+2, . . . , a⌈in
p⌉)を保持する.
出力:各j (1 <= j <= n)について,bj= a1◦a2◦· · ·◦aj を満たす要素列(b1, b2, · · · , bn).各Pi(1 <= i <= p)が (b⌈(i−1)n
p⌉+1, b⌈(i−1)np⌉+2, . . . , b⌈in
p⌉)を保持する.
[ 定義3]( ソーテ ィング 操作 )ソーティング操作とは 要素を昇順に並べ替え る操作である.
入力:全順 序関係 をもつ n 個 の要 素集合 A = {a1, a2, . . . , an}.各 Pi (1 <= i <= p) が (a⌈(i−1)n
p⌉+1, a⌈(i−1)np⌉+2, . . . , a⌈in
p⌉)を保持する.
出力:Aのソート 列(b1, b2, . . . , bn).各Pi (1 <= i <= p)が(b⌈(i−1)np⌉+1, b⌈(i−1)np⌉+2, . . . , b⌈inp⌉)を保持す る.
表1にブ ロード キャスト操作,接頭部演算操作,ソー テ ィング 操作に 関する既知の結果を示す.以下では 内 部計算時間,通信時間をそれぞれTI,TC と表す.
BSPモデ ルで 計算量が f (n, p, g, L)で あ るアルゴ リズムは ,BSP∗モデ ル 上で 同じ 計算量f (n, p, g, L)
表1 BSP モデル上の基本操作に対する計算量 Table 1 The complexities for basic operations on the
BSP model.
操作 時間計算量 プ ロセ ッサ数 文献
ブ ロード キャ スト
TC : O((gd + L)log plog d) p [9] TI : O((d + L)log plog d+ np ) p 接頭部演算
TC : O((gd + L)log plog d) 1 <= p <= n [9]
TI : O(n log np + Llog nlog n p
) p
ソーテ ィング
TC : O((gnp + L)log nlog n p
) 1 <= p <= n [6]
TI: 内部計算時間,TC:通信時間 d:1 <= d <= pの任意の定数
で 動作することが 可能である,すなわち,BSP
∗
モデ ルにも表1の結果が 適用できる.
また,表1中のGoodrichのソーティング アルゴ リ ズ ム[6]は ,以下のよ うな 特性に より,BSP∗ モデ ル 上では 計算量が 改善され る.
Goodrichのソーテ ィングアルゴ リズム[6]は ,各プ ロセッサは1スーパ ステップ でO(n
p) 個の 要素の 送
信,及び 受信を行い,また ,O(log n
lognp)スーパステップ
で終了するので ,BSPモデル上では ,通信の計算量が O((gnp+ L)loglog nn
p)
となっている.しかし ながら,この アルゴ リズムでは,各プロセッサが1スーパステップで 送信する メッセージ の送信先,及び 受信する メッセー ジの送信元のプ ロセッサ数はたかだか2(n
p) 1
7 である.
BSP∗モデ ルでは ,1スーパ ステップ に おいて ,d個 のプ ロセッサに si 個(1 <= i <= d)ずつ送信するため には ,O(g
d i=1⌈si
B⌉ + L)の通信時間しか必要とし な い.また,各プ ロセッサは ,1スーパステップでO(n
p)
個の要素の送受信を行うので ,
2(np) 1 7i=1 si= O(np)で
ある.し たが って ,このソーテ ィング アルゴ リズムの 1スーパステップ の通信時間は ,
O
g
2(np)17
i=1
si B
+ L
= O
g
n pB +
n p 17
+ L
となる.
し たが って,以下の補題が 得られ る.
[ 補題1]ソーテ ィング 操作はBSP∗モデ ル 上で TI: O
n log n
p + L
log n lognp
TC: O
g
n pB +
n p 17
+ L log n lognp
で 実行できる. 2. 2 選 択問 題
全順序関係をもつ要素集合A = {a1, a2, . . . , an}に 対し て ,関数rank(ai, A) (1 <= i <= n)を
rank(ai, A) = |{a ∈ A|a <= ai}|
と定義する.なお,簡単のために 任意のi, j (1 <= i <
j <= n)に ついてai= a| j とする.このと き,選択問 題は 以下のように 定義され る.
[ 定義4]( 選択問題 ) 選 択 問 題は 全 順 序 関 係を も つ n個の要素の集合Aと 整数k (1 <= k <= n)が 与えら れ たと きに ,Aの 中でk 番目に 小さい 要素を 求め る 問題である.
入力:全順序関係をもつn個の 要素集合A = {a1, a2, . . . , an},及び ,整数k (1 <= k <= n).各Pi(1 <= i <= p)が {a⌈(i−1)n
p⌉+1, a⌈(i−1)np⌉+2, . . . , a⌈in
p⌉}を ,
Ppがkを保持する.
出力:ある一つのプ ロセッサがrank(a, A) = kを 満たす要素a ∈ Aを出力する.
3. 選択問題を解くアルゴ リズ ム
3. 1 BSPモデル上のアルゴ リズ ム 3. 1. 1 アルゴ リズムの概要本 ア ル ゴ リ ズ ム は Vishkinに よって 提 案 さ れ た
EREW PRAM上の 並列アルゴ リズ ム[10]をもとに
し ている.
選択問題はソーテ ィング 操作を用いて 解くことがで きるのは明らかである.しかし ,一般にソーティング 操 作の計算量は ,選択問題を解く計算量よりも大きくな る.BSPモデ ル上の並列アルゴ リズムの場合も,表1 のソ ーテ ィング アルゴ リズ ム[6]に より,内部計算時 間O(n log n
p + L
log n
lognp),通信時間O((g n p+ L)
log n lognp)
でソート を行い,選択問題を解くことができるが ,こ の 計 算 量で は 選 択 問 題に 対し ては 最 適 加 速な アルゴ リ ズ ム と は な ら な い .そ こ で 本 ア ルゴ リ ズ ム で は , Viskin [10]のアルゴ リズムの方針を用いて ,k番目で はあり得ない要素を以下に述べる操作により取り除き, 対象要素数を n
log n まで 減少させた後にソーテ ィング
操作を 行う.このことに より,ソーテ ィング のための 計算量を減らすことができ,最適加速なアルゴ リズム となる.
要素数をnから n
log n に 減らすための操作は ,以下
のフェーズを 反復することによって行 う.まず,対象 要素の 中から 適当な 要素mを 選び ,対象要素集合を mよりも小さいのものからなる集合,及び 大きいもの から な る集合に 分割する .これ ら の2集合に ついて , ど ちらに k 番目に 小さい 要 素が 含まれ て いるか を 計
算し ,k番目の要素が 含まれていない方の集合を対象 要素から 除外する.また ,mがk 番目の 要素であれ ば それ を出力し て停止する.本アルゴ リズムでは ,各
BSP モデル及び BSP
プ ロセッサが 保持する各要素の各中央値を求め,その 各中央値の 中央値を 上記の 要素mとし て 用いる .こ こで ,要素集合A = {a1, a2, . . . , an}の 中央値とは , rank(a, A) = ⌈n2⌉を満たす要素a ∈ Aである.中央 値の 中 央値を 分割の 基準とし て 利用することに より, 対象の要素数を1回のフェーズで 1
c(cはc > 1を満
たす定数 )以下にすることができるので ,後述のとお
りO(log log n)のフェーズの反復により,対象要素数
は n
log n 以下となる.
3. 1. 2 分配 操作
BSPモデルは分散メモリ型の並列計算モデルである ので ,各プ ロセッサがど の要素を保持するかを考慮す る必要がある.本アルゴ リズムでは ,各プ ロセッサが 保持する要素数を均等にするために ,以下の分配操作 を使用する.
[ 定義5]( 分配操作 )n個の要素が各Pi(1 <= i <= p) に ni 個ず つ 保 持 され て い ると す る .た だし ,n =
pj=1njである.分配操作とは ,各プ ロセッサがたか だか⌈n
p⌉個,少なくとも⌊ n
p⌋個の要素を保持するよ
うに 要素を分配する操作である.
入 力:n 要 素か ら な る 集 合 A.各 Pi (1 <= i <= p) は 互 い に 素 で あ る 集 合 A の 部 分 集 合 Ai (|Ai| = ni, A1∪ A2∪ . . . ∪ Ap= A)を保持する.
出力:n要素からなる集合A.各Pi(1 <= i <= p)は互 いに素であるAの部分集合A′i(A′1∪A′2∪. . .∪A′p= A) を保持する.ただし ,各Aiは⌊n
p⌋ <= |A′i| <= ⌈np⌉を
満たすものとする.
以下に 分配操作のアルゴ ルズムを示す.
[ 分配操作アルゴ リズム ]
(1)接頭部演算操作を 用いて 各i (1 <= i <= p)に 対し ,si=
ij=1njを計算する.
(2)各 Pi (1 <= i <= p) が 保 持 す る ni 個 の 要 素 か ら な る 要 素 集 合 を Ai = {asi−ni+1, asi−ni+2, . . . , asi}と する .各 Piは 保持する各要素
aj(si−ni+1 <= j <= si)を⌈(i′−1)np⌉+1 <= j <= ⌈i′ np⌉ を満たすPi′ に 送信する.
(3)各Pi(1 <= i <= p)において(2)で受信し た 要素の集合をA′iとする.
[ 補題2]nmax = max{n1, n2, . . . , np}と する .任 意の 定 数d (1 <= d <= p)に 対し て ,先の 分 配 操作は BSPモデ ル 上で ,
TI: O
nmax+ (d + L)log p log d
TC: O
gnmax+ (gd + L)log p log d
で 実行できる.
( 証明 ) p要素の接頭部和演算操作は ,表1のアルゴ リズム[6]を用いて ,
TI: O
(d + L)log p log d
, TC: O(gd + L)log p log d
で実行できる.また,(2)において,各プロセッサはたか だかnmax個の要素を送信し ,たかだか⌈n
p⌉ (<= nmax) 個の要素を受信する.よって通信時間はO(gnmax+L) である.また要素の送信先の決定に 要する内部計算時 間は ,O(nmax+ L)である. ✷
3. 1. 3 アルゴ リズムSelection
こ こで はBSPモデ ル 上で 選 択 問 題を 解 く p (1 <= p <= log nn )プ ロ セッサの ア ルゴ リ ズ ムSelectionを 示す.
[ アルゴ リズムSelection]
(1)各Pi(1 <= i <= p)において,s := n,k′:= k とする(sは ,アルゴ リズム中の対象要素数を,k′は 見つけ 出す要素のラン クを表す ).
(2)s > n
log n ならば ,s <= log nn 以下のフェーズ
(2.1)∼(2.6)を繰り返す.
(2.1)各Pi(1 <= i <= p)上において ,Aiの中央値 miを求める.
(2.2) プ ロセッサ全体により,中央値集合{m1, m2, . . . , mp}をソ ートし ,中央値集合の中 央値(mと す る )を 計算する .mを 保持するプ ロセッサは ,mを すべてのプ ロセッサにブ ロード キャ スト する.
(2.3)各Pi(1 <= i <= p)上において ,Aiの要素を 以下のような二つの 部分集合A1i,A2i に 分割する.
A1i = {x ∈ Ai|x < m}, A2i = {x ∈ Ai|x > m}
(2.4)各Pi(1 <= i <= p)上において ,A1i のサイズ
|A1i|を計算する.次に ,プ ロセッサ全体により,その 和s1=
p j=1|A1
j|を計算し ,s1 をすべてのプ ロセッ
サにブ ロード キャ スト する.
(2.5)各Pi (1 <= i <= p) 上に おいて ,以下を 実行 する.
•(k′ < s1+ 1 の 場 合 )Ai := A1i,s := s1 と する.
•(k′> s1+ 1の場合 )k′:= k′− (s1+ 1)とし , Ai:= A2i,s := s − (s1+ 1)とする.
•(k′= s1+ 1の場合 )P1はmを出力し ,アル
ゴ リズムを停止する.
(2.6)各プ ロセッサが保持する要素Ai(1 <= i <= p) に 対し ,分配操作を行う.分配操作後の各プ ロセッサ が 保持する要素を Aiとする.
(3)す べ て の プ ロ セッサ を 用 い て ,要 素 集 合 A1 ∪ A2∪ . . . ∪ Ap を ソ ート し ,k′ 番 目 の 要 素 を 保持するプ ロセッサが その要素を出力する.
3. 1. 4 正当性の証明
アルゴ リズムが 停止すれば ,その出力が 選択問題の 解で あ ることは アルゴ リズ ムより 明らかで あ るので , ここではアルゴ リズムの停止性のみを示す.このため に ,(2)の繰返し 回数がたかだかO(log log n)である ことを示す.
以下では(2.1)から(2.6)まで の1回の 実行を1 反復フェーズと呼ぶ .
[ 補題3]Selectionの 各反復フェーズ 中の(2.4)終 了時,1
6s − 1 < s1< 56sが 成り立つ.
( 証明 ) Aを(2)の各反復フェーズの開始時点の要 素集合A = A1∪ A2∪ . . . ∪ Ap と する .このと き , s = |A|である.
各 反 復 フェー ズ の(2.4)終 了 時 の s1 に 対し て , s1 = rank(m, A) − 1で あ るので ,補 題を 示すに は
1
6s < rank(m, A) <56s + 1を示せば よい. sの値により場合分けを行う.
(i)s < 3pのとき
mは{m1, m2, . . . , mp}の中央値であるので ,Aの 要 素の う ちm 以 下の 要素は 少な くと も ⌈
p
2⌉ 個 存在
する .s < 3pより,rank(m, A) >= ⌈p2⌉ > s6 が 成り 立つ.
同様に ,mより大きい要素は 少な くとも⌊p
2⌋個存
在する.し たが ってs − rank(m, A) >= ⌊p2⌋ > s6− 1 が 成り立つ.
(ii)s >= 3pのとき
m は {m1, m2, . . . , mp} の 中 央 値 で あ る の で , {m1, m2, . . . , mp}の要素のうちm以下の要素は⌈p2⌉ 個存在する.また,各mi(1 <= i <= p)はAiの中央値 であるのでAiの要素のうちmi以下の要素は⌈1
2⌊ s p⌋⌉
個存在する.したがってAの要素のうちm以下の要素 は少なくとも⌈p
2⌉⌈ 1 2⌊
s
p⌋⌉個存在する.ここでs <= 3p より⌈p
2⌉⌈ 1 2⌊
s p⌋⌉ >
p 2(
s 2p −
1 2) >=p2(
s 2p−
s 6p) =
s 6 が
成り立つので ,rank(m, A) >s6 が 成り立つ. 同様に,{m1, m2, . . . , mp}の要素のうちm以上の 要素は⌊
p
2⌋ + 1個存在すること,及び ,Bi(1 <= i <= p)
の要素の うちmi以上の要素は ⌊1
2⌊ s
p⌋⌋ + 1個存在す
ることからs − rank(m, A) > s6 − 1が 成り立つ. 以上より s
6 < rank(m, A) < 5s6 + 1となる. ✷
[ 補題4]アルゴ リズ ムSelectionの(2)の 反 復フ ェーズ 数はO(log log n)である.
( 証明 ) 補題3より,第j 番目の 反復フェーズ 開始 時点の 要素集合Aの 要素数sは s < n(5
6) j−1
とな る.よってO(log log n)回の反復によりs <= log nn と
なる. ✷
3. 1. 5 計 算 量
[ 定理1]任 意の 整 数 d (1 <= d <= log n)に 対し て , アルゴ リズムSelectionはBSPモデ ル 上で ,
TI: O
n
p+ d log p log log n + L
log p log log n log d
TC: O
gn
p + (gd + L)
log p log log n log d
で 選択問題を解く.
( 証 明 ) ア ルゴ リズ ムの 各 ステップ の 計 算 量を 評 価 する.
(1)は各Piにおいて定数個の内部計算であるので , TI: O(L)で実行できる.また,(3)はたかだか log nn 個の要素のソーテ ィング 操作であり,表1のソーテ ィ ング アルゴ リズム[6]を用いると ,
TI: O
nlog nlog n log n
p + L
loglog nn log
n log n
p
= O
n
p+ L
logp log nn + log p logp log nn
= O
n
p+ L log p
TC: O
g
n log n
p + L
× log
n log n
log
n log n
p
= O
gn
p+ L log p
で 実行できる.
し たが って以下では(2)の計算量のみに ついて 検 証する .まず1反復フェーズの 計算量を 評価する(s は 各反復フェーズ開始時点の要素数である ).
(2.1)の各プ ロセッサ上の中央値の計算は ,既知の 逐次アルゴ リズム[8]を用いて内部計算時間O(s
p+ L)
で 求められ る .また ,(2.3)のソ ーテ ィング 操作を 除
BSP モデル及び BSP
いたその他のステップ は ,前述のブ ロード キャ スト 操 作,接頭部和演算,分配操作,及び ,O(s
p+ L)時間
の内部計算により実現され ているので , TI: O
s
p+ (d + L) log p log d
,TC: O
gs
p+ (gd + L) log p log d
で 実行できる.
(2.2)のソーテ ィング 操作は ,以下のよ うに実現す る.各プ ロセッサ一つず つの要素をすべてのプ ロセッ サを 使って 表1のアルゴ リズム[6]に よりソート する
と ,O(L log p)の通信時間がかかることになり,効率
が 悪い.そこで ,最初に ,要素を⌈p
d⌉
( 注4)
個のプ ロセッ サに 集め ,少ないプ ロセッサ数によりソート を行うこ とにより,通信時間を減ら す.具体的には ,以下のよ うな操作を行う.
(2.3.1) 各Pi (1 <= i <= p)はmiをP⌈i d⌉
に 送信 する.
(2.3.2) Pi(1 <= i <= p
d)を 用いて ,{m1, m2, . . . ,
mp}をソート する.
(2.3.3) {m1, m2, . . . , mp}の中央値を 保持するプ ロセッサが ,その中央値をブ ロード キャ スト する.
以上の 操作に より,(2.3)の計算量は ,表 1のソ ー ティングアルゴ リズム[6]を,要素数p,プ ロセッサ数
⌈pd⌉で 実行し た計算量となるので ,
TI: O
p log p
⌈pd⌉ + L × log p log⌈pp d⌉
= O
d log p + Llog p log d
TC: O
g p
⌈pd⌉+ L
× log p log⌈pp d⌉
= O
(gd + L)log p log d
となる.
以上より(2)の1反復フェーズは TI: O
s
p+ d log p + Llog p log d
,TC: O
gs
p+ (gd + L) log p log d
である.
以下で ,(2)全体の計算量を考える.(2)のj回目 の反復フェーズの開始時点のAの要素数sをs(j)と する.補題3より,s(j)< (5
6) j−1n
であり,また ,補 題4より,(2)はO(log log n)フェーズ繰り返され る ので ,(2)の計算量は ,
TI: O
log log nj=1
s(j)
p + d log p + Llog p log d
= O
log log nj=1
5 6 j−1n
p + d log p + Llog p log d
= O
n
p+ d log p log log n + Llog p log log n log d
TC: O
log log nj=1
gs
(j)
p + (gd + L) log p log d
= O
log log nj=1
g
5
6
j−1np+ (gd + L) log p log d
= O
gn
p+ (gd + L)
log p log log n log d
となる.
仮 定 す る d <= log n の 範 囲
( 注5)
に お い て は , log log n >= log d で あ り,(3)の ソ ート の 計 算 量 よ り(2)の計算量の 方が 漸近的に 大きいので ,アルゴ リズム全体の計算量も上記の計算量となる. ✷
定 理1 よ り,selection は p log p <= L log log nn log d ,
g = O(1)のとき内部計算時間,通信時間ともにO(n
p)
となり,最適加速となることが 示され る. 3. 2 BSP∗ モデ ル上のアルゴ リズ ム 3. 2. 1 アルゴ リズムの概要
BSP∗ モデ ル 上で 選 択 問 題を 解 く 並 列ア ルゴ リズ ムSelection∗は 前述のSelectionにおけ る分配操作を BSP∗用に 改良し たアルゴ リズムである.
BSP∗モデ ルでは 異なるプ ロセッサに それぞれ サ イ ズ1の メッセ ージ を s 個 送信す るのに gs単 位時 間 要す るが ,同 一のプ ロセッサに サ イズ s の メッセ ー ジ1個の送 信は g⌈s
B⌉時間で 実行で き る.すなわ ち, BSP∗モデ ルではサ イズの小さい メッセージを多数の プ ロセッサに対し 送信または受信することは 非効率的 で あ る .Selectionで 用いられ る分配 操作では 各プ ロ
( 注4):dはブ ロード キャ スト 演算等のdと 同じ 値を用いる.
( 注5):プ ロセッサ数が 多い場合でも,内部計算時間をnの 対数以下に するために 仮定.
セッサは たかだか サ イズ1の メッセ ージ を⌈n
p⌉個の
プ ロセッサから 受信することがある.
Selection∗では 分配操作の代わりに 各プ ロセッサの 保持する要素数をある程度均等にする擬似分配操作を 用いることにより通信時間を改善する.
3. 2. 2 擬似分配操作
[ 定義6]( 擬似分配操作 ) n 個の 要 素が 各 Pi (1 <= i <= p)に ni 個ず つ保 持され て いると する .ただし , n =
pj=1njである.擬似分配操作とは,各プ ロセッ サがたかだか 1
2 n p+ ⌈
n
p⌉個,少なくとも1個の要素を
保持するよ うに 要素を分配する操作である.
入 力:n 要 素か ら な る 集 合 A.各 Pi (1 <= i <= p) は 互 い に 素 で あ る 集 合 A の 部 分 集 合 Ai (|Ai| = ni, A1∪ A2∪ . . . ∪ Ap= A)を保持する.
出力:n要素からなる集合A.各Pi(1 <= i <= p)は互 いに素であるAの部分集合A
′
i(A′1∪A′2∪. . .∪A′p= A)
を保持する.ただし ,各A′iは1 <= |A′i| <=1
2 n p+ ⌈
n p⌉
を満たすものとする.
以下にBSP∗モデル上での擬似分配操作のアルゴ ル ズムを示す.
[ 擬似分配操作アルゴ リズム ]
(1)接頭部演算操作を 用いて 各i (1 <= i <= p)に 対し ,si=
ij=1njを計算する.
(2)各Pi(1 <= i <= p)が 保持するni個の要素を {asi−ni+1, asi−ni+2, . . . , asi}と する .各Pi に おい
て以下の操作を行う.
•(ni >= 12np の 場 合 )各 Pi は 保 持 す る 各 要 素 aj(si−ni+1 <= j <= si)を⌈(i′−1)np⌉+1 <= j <= ⌈i′ np⌉ を満たすai′ に 送信する.
•(ni<12np の場合 )各Pi(1 <= i <= p)は保持す る各要素aj (si− ni+ 1 <= j <= si)の うち,あ るi′ に 対し j = ⌈(i′− 1)n
p⌉ + 1とな るaj をPi′ に 送信
する.
(3)各Piにおいて ,(2)で 受信し た要素と 未送 信の要素からなる集合をA′iとする.
[ 補題5]擬 似 分 配 操 作 ア ル ゴ リ ズ ム 実 行 後 ,各 Pi (1 <= i <= p) に お い て 1 <= |A′i| <= 12np + ⌈np⌉ が 成り立つ.
( 証明) 擬似分配操作において,各Piは{a⌈(i−1)n p⌉+1,
a⌈(i−1)np⌉+2, . . . , a⌈inp⌉}の部分集合を受信し ,このう ちa⌈(i−1)n
p⌉+1は必ず受信する.また,未送信の要素数
は 1
2 n
pより少ない.したがって,1 <= |A′i| <=12 n p+⌈
n p⌉
が 成り立つ. ✷
[ 補題6]nmax = max{n1, n2, . . . , np}と する .任 意の定数d (1 <= d <= p)に 対し て ,BSP∗モデル 上で の擬似分配操作の計算量は
TI: O
nmax+ (d + L)log p log d
TC: O
gnmax
B + (gd + L) log p log d
である.
( 証明 )(1)(,3)はBSPモデル上の分配操作と同じ で,TI: O(nmax+(d+L)log p
log d),TC: O((gd+L) log p log d)
である.
(2)に おいて ,各Pi (1 <= i <= p)は 連続し たプ ロ セッサに 対し て要素を送信する.Piが 要素を送信する 連続し たj個のプ ロセッサを Pi′, Pi′+1, . . . , Pi′+j−1
と す る .Pi は た か だ か nmax 個 の 要 素 を 保 持し , Pi′+1, Pi′+2, . . . , Pi′+j−2へは少なくとも⌊np⌋個の要 素を 送 信 す る .よって ,各 Pi は た か だ か nmax 個 の 要 素を 一つのプ ロセッサに ⌈n
p⌉個ず つ ,たかだか nmax
⌊np⌋ + 2プ ロセッサに 対し て送信する.また ,各Pi は たか だ か ⌈n
p⌉ 個の 要 素を たか だ か
⌈np⌉ 1 2np
+ 2プ ロ セッサから 受信する.
よって
TI: O(nmax+ L)
TC: O
g
nmax
np
+ 2 + np
1 2 n p
+ 2
n pB + L
= O
g
nmax B + 1 + L
である. ✷
3. 2. 3 アルゴ リズムSelection∗
アルゴ リズムSelectionの(2.6)を以下の(2.6)′に 変更する.また ,(3)でソートが 行われ る前には要素 は 均等に 分配され てなければ ならないので ,ダ ミー要 素を加え要素を均等にするために ,(3)の直前に以下 の(3.0)を挿入する.
(2.6)′ すべてのプ ロセッサが 保持する要素に対し て擬 似分配操作を行う.
(3.0) 各Piにおいて,保持する要素に3
2 n p log n−|Ai|
個のダ ミー要素を加え る. 3. 2. 4 正当性の証明
アルゴ リズムSelection∗には ,アルゴ リズムSelec- tionの 正 当 性の 証 明と 同 様にし て 以 下の 補 題 7,補 題8が 成り立つ.