グリッド環境におけるScaLAPACKのための GAによるスケジューリング 廣安 知之(同志社大学) 三木 光範(同志社大学) ○斉藤 宏樹(同志社大学 大学院) 谷村 勇輔(同志社大学 大学院) Jack Dongarra(University of Tennessee/ Oak Ridge National Laboratory) 発表内容 • 研究背景 – グリッド上における並列・分散実行 – スケジューリング問題 • ScaLAPACK – ブロックサイクリックデータ分割 – ScaLAPACKのコスト見積もり関数 • ScaLAPACKのスケジューリング – 従来手法(Ad-Hoc greedy, SA)のアルゴリズム • GAによるスケジューリング手法 • 数値実験 – 各手法の見積もりコスト,スケジューリング時間比較 • まとめ 研究背景 • グリッド – ネットワークで遠隔地にある計算資源を接続 – ユーザに大規模な計算資源を提供 • グリッドコンピューティング – 効率的に分散・並列アプリケーションを実行 グリッド上における並列・分散実行 • 不均質な計算資源上で実行 – CPUやネットワーク性能,メモリ性能等が不均質 – 計算資源の状態が動的に変動 従来の均質環境と大きく異なる特徴を持つ • スケジューリングが必要 – ジョブやタスクを適切な計算資源で実行させる – アプリケーションの実行時間をより短くする 従来のスケジューリング手法では困難 スケジューリング問題 • 実行時間が最小になる計算資源の選択 – 選択基準はアプリケーションに依存 – 計算資源の組み合わせパターンは 2N 通り NP困難な大域的最適化問題 [J Ullman,1975] 最適化手法によるスケジューリング • Simulated Annealing(SA),Ad-Hoc greedy – ScaLAPACKのスケジューリング [Yarkhan 2002] – 実行時間を最小にする最適な計算資源を選択 • SA:確率的探索 • Ad-Hoc greedy:アプリケーションの特徴による探索 SAが比較的良好な計算資源の組み合わせを 求めるが,計算時間に問題 特定のグリッド環境における実験結果のみ 本研究では,遺伝的アルゴリズム(GA)による ScaLAPACKのスケジューリング手法を提案 ScaLAPACK • 分散メモリ用の線形計算ライブラリ – Scalable LAPACK • 共有メモリ用のLAPACKを並列用に拡張 • 行列演算(LU分解・QR分解)を分散実行 – 通信層にBLACSを使用 • PVMやMPIにより複数のプロセッサ間で通信 分配するデータ(行列)は, ブロックサイクリックデータ分割により, グリッド上の計算資源に割り当てられる ブロックサイクリックデータ分割 • プロセスグリッド(P,Q)に基づいて分割 各プロセスに割り当てられたブロック(行列)を, 各計算ノードで計算し,分散して行列計算を行う ScaLAPACKのコスト見積もり関数 • Right-looking LU分解の実行時間を予測 – ブロック列ごとの計算・通信・更新時間の総和 Estimated Execution Time = ∑ { Tfact + Tbcast + Tupdate } Tfact : 行列を分解する計算時間(LEVEL 2 BLAS) Tbcast : 行列の更新情報を分配する通信時間(BCAST) Tupdate: 行列を更新する計算と通信時間 • Right-looking LU分解 – 処理するブロックにより計算量や通信量が異なる 使用する計算ノードの組み合わせと, ノードの使用順序(ブロックの割り当て順序)によって, LU分解の実行時間は見積もられる 見積もり関数の入力パラメータ • 計算資源情報 – CPU性能,ネットワーク性能,メモリ容量など • (P,Q)の値,N, NB ScaLAPACKのスケジューリング Genetic Algorithm 従来の探索手法:Ad-Hoc greedy • CPU,ネットワーク性能の高いノードを選択 – メモリの制約も満たしながら探索 • ScaLAPACKの特徴に基づいた探索法 – ScaLAPACKは均質環境向けのアプリケーション クラスタ内のノードを優先的に利用 従来の探索手法:SA • 局所解を回避できる確率的探索法 メモリ制約を満たすノード数ごとに探索する GAによるスケジューリング手法 • 生物の進化を工学的に模倣した最適化手法 数値実験 • 異なる計算資源でのスケジューリング – 論文の資源[Yarkhan 2002] – 小規模(15ノード),大規模(100ノード)計算資源 • GA,Ad-Hoc greedy,SAによる性能比較 – ScaLAPACKの見積もりコスト値による比較 – スケジューリング,計算時間による比較 ScaLAPACKのパラメータ 問題サイズ ブロックサイズ (P,Q) 1000~15000,25000~37000 80 1×使用ノード数 GA,SAのパラメータ GA [伊庭 1994] SA [小西 1994] 総個体数 100 遺伝子長 ノード数(=L) 設計変数 ノード数 交叉 二点交叉 交叉率 0.6 突然変異率 1/L 選択 トーナメント選択 トーナメントサイズ 4 エリート保存 1 終了世代 500 ペナルティρ 300,500 最高温度 150 最低温度 4.3 ステップ数 1.0×104 クーリング関数 a(T ) aT クーリング間隔 100 クーリング率 0.9648 論文の値による性能比較 実験結果 • 問題サイズ11000以下でGAの探索が悪い • 各問題サイズでAd-Hoc greedyの探索が悪い 選択ノード • N=11000 – 問題サイズ11000を計算するのに必要なメモリ容量は 2307.8MB以上 – GAが選択した資源の総メモリ容量は,2304MBでメモリ制 約を満たしていない ペナルティ値の設定が不適切 ノード順序 • N=14000 Ad-Hoc SA GA ノード順序 5,3,4,0,1,2,6,7,8,9,10,11,12,13,14 9,7,11,13,8,14,4,5,3,1,0,2,6,12,10 5,4,8,7,11,10,12,14,13,6,9,0,1,2,3 見積もりコスト 1507.1 1292.1 1235.5 各手法が全15ノードを使用しているが, 順序が異なる GA,SAは順序を考慮した探索が行えており, 見積もりコストの値が良い 計算資源の規模による性能比較 • 15ノードを小規模,100ノードを大規模と定義 – 計算資源を性能により4パターンに分類 1: ネットワーク速度差 大 CPU速度差 小 2: ネットワーク速度差 大 CPU速度差 大 3: ネットワーク速度差 小 CPU速度差 小 4: ネットワーク速度差 小 CPU速度差 大 小規模計算資源による実験結果 各パターンでGAとSAの探索が良い 大規模計算資源による実験結果 大きい問題サイズにおいて,GAの探索が最も良い 探索履歴(パターン2) • N=37000 – GAの見積もりコストが最も小さい – Ad-Hoc greedy,SAは局所解に陥っている 使用ノード(パターン2) • N=37000 – 各手法で求めているスケジュールが異なる – GAで生成されたスケジュールは他の手法で生成 されていない スケジューリング時間比較(パターン2) • N=37000 – Ad-Hoc greedyの時間が最も短い 計算時間比較 • パターン2(N=37000) – スケジューリング時間と見積もり実行時間の和 – GAが最も短い まとめ • ScaLAPACKのスケジューリング – 数種類の計算資源のパターンで実験 – 従来手法とGAによる手法を実装 • GAによるスケジューリング手法の性能評価 – ノード数が多く性能差が大きいグリッド上において, 最も良好な見積もり時間を生成 – スケジューラとして,最も短い時間で計算 ペナルティ関数 • 不足しているメモリ量をもとに,ペナルティ値を 決定 g(ρ)=ρ{N-(Total memory[byte]/8)1/4} 必要メモリ容量 • 問題サイズNの場合,N×Nの行列要素 – 要素はdouble型 N2×8=Total memory[byte] LU分解 SAのパラメータ • 最高温度 – 最大の改悪となる状態遷移が50%の確率で受理 される温度 • 最低温度 – 最小の改悪となる状態遷移が一定温度のアニー リング処理の間に,1回は受理されるような温度 論文の値 計算資源情報 TORC ノード数 CPU処理速度 (MHz) CPU利用可能率 バンド幅(Mbps) レイテンシ(μsec) メモリ容量(MB) MSC 3 550 0.9 75 0.15 512 OPUS 3 933 0.9 75 0.15 512 9 450 0.9 75 0.15 256 計算資源のパターン • 4つのパターンによる性能比較 – CPU処理速度とバンド幅の差により分類 パターン 1 2 3 4 ネットワークバンド幅の差 小(SD < 50) 大(SD > 500) 小 大 CPU速度差 小(SD < 150) 小 大 (SD > 300) 大
© Copyright 2024 ExpyDoc