MPIとOpenMPを用いた Nクイーン問題の並列化 高性能計算研究室 B4 杉田 卓司 2009/02/27
研究背景と目的 ・研究背景 ・扱うデータ量の増加 → 計算量の増加 ・高速処理、リアルタイム処理 ・目的 ・扱うデータ量の増加 → 計算量の増加 ・高速処理、リアルタイム処理 ・目的 ・MPIとOpenMPの2つの並列プログラムを 2種類のクラスタで実験、比較する → 実行時間、速度向上比 気象予測 デジタル画像処理
Nクイーン問題 5 4 3 2 1 ● N×Nのチェス盤上にN個のクイーンを置く どのクイーンもその移動可能な場所に 1次元配列で表したもの 列番号→要素番号 行番号→要素の値 N×Nのチェス盤上にN個のクイーンを置く どのクイーンもその移動可能な場所に 他のクイーンが置かれていないことが条件 その場合の局面がいくつあるかを数える
逐次処理アルゴリズム 斜め方向に クイーンがないため 計算続行 クイーンがあるため 計算中止 Nの数を16で計算した場合、解の総数は約1477万通りにもおよぶ→並列処理○
並列アルゴリズム 1 3 2 4 1列目の配置に何行目のクイーンを配置するかを4分割する。(N=14) 各プロセスの解の個数を回収して総和を求める 1 3 2 4 Process0 (1,5,9,13) Process1 (2,6,10,14) Process2 (3,7,11) Process3 (4,8,12) 1列目のどの位置にクイーンを配置するかをプロセス毎に指定して処理を並列に割り当てる。
実験環境 Raptor Nycto Server Host - Xeon 2.8GHz 2GB SDRAM 250GB HDD Compute Host (6台) Pentium4 3.2GHz 40GB HDD Gigabit Ethernet Raptor、MPI→分散メモリ型 Nycto、OpenMP→共有メモリ型 OpenMPが分散メモリ上で動くためにSCore上のSCASHというシステムに よって共有メモリと見せかけて動かす Nycto Gigabit Ethernet - Pentium4 3GHz Server Host 2GB SDRAM 240GB HDD Compute Host(8CPU) Quad Xeon 3GHz 8GB SDRAM 300GB HDD
Raptor上での実験結果 ・OpenMP、MPI共に理想的な速度向上が得られた ・MPIの方が実行時間が短い
Nycto上での実験結果 ・OpenMP、MPI共に理想的な速度向上が得られた ・MPIの方が実行時間が短い
考察 Raptor Nycto ・相性 ・OpenMPの柔軟性 プロセス数 1 2 4 実行時間(秒) OpenMP 2303.3 1153.7 752.7 MPI 938.6 716.9 439.3 速度向上比 3 1.31 2.14 プロセス数 1 2 4 8 実行時間(秒) OpenMP 2204.2 1298.5 643.9 281.4 MPI 1863.3 931.7 471.4 240.1 速度向上比 1.7 3.4 7.8 7.7 Nycto OpenMP 共有 Raptor 分散 MPI 分散 Nycto 共有 ・相性 ・OpenMPの柔軟性
まとめと今後の課題 まとめ ・Nクイーン問題の並列化 ・2つのPCクラスタでの実験、比較 今後の課題 ・Nクイーン問題については高速化の余地あり ・実装までの時間を比較