バイトニックソーティングを実際に行う

まず、各プロセッサ内でソーティングする。ソーティングの方法はクイックソーティングである。この時重要なことは次に起こるバイトニックソーティングを見越してソーティングを昇順・降順にするかを決定しておくことである。この場合、はじめは奇数プロセッサは降順、偶数プロセッサは昇順にソートする。


次に、隣同士のプロセッサ(No.0-No.1)(No.2-No.3)でデータを交換する。


すると、二組のバイトニック列ができる、これを今度はバイトニックソーティングの基本性質を使用してNo.0・No.3では小さい数値を、No.1・No.2では大きい数値を採択する。


する上記のようなデータの並びとなる。今度は(No.0-No.2)(No.1-No.3)でソーティングするために前段階としてNo.0・No.1のデータは昇順で、No.2・No.3のデータは降順でソーティングする。


次に、(No.0-No.2)(No.1-No.3)のプロセッサ同士でデータの交換をする。


すると二組のバイトニック列が出来る。そこで基本性質を使ってNo.0・No.1では小さい数値を、No.2・No.3では大きい数値を採択する。


今度は最初にクイックソーティングしたように奇数プロセッサは降順、偶数プロセッサは昇順にソートする。


次に、また隣同士のプロセッサ(No.0-No.1)(No.2-No.3)でデータを交換する。


そうすると上記のようにデータが出来No.0・No.2のプロセッサでは小さい数値を、No.1・No.3のプロセッサでは大きい数値を採択する。


最後に各プロセッサで昇順ソートをする。


これでソーティングが完成する。




前へ戻る