870 likes | 1.02k Vues
グリッド環境における タスクスケジューラの構築. 斉藤宏樹 博士前期課程 2003 年度 737 番 知的システムデザイン研究室. 研究背景. グリッド ネットワークで遠隔地にある計算資源を接続 ユーザに大規模な計算資源を提供 グリッドコンピューティング 効率的に分散・並列アプリケーションを実行. スケジューリングの必要性. 適切な計算資源を選択することは困難 グリッドは CPU やネットワーク性能等がヘテロ 計算資源の状態が動的に変動. 研究目的. 大規模計算を効率的に実行 グリッドによって実行時間を短縮 グリッドにおけるタスクスケジューラの開発
E N D
グリッド環境におけるタスクスケジューラの構築グリッド環境におけるタスクスケジューラの構築 斉藤宏樹 博士前期課程 2003年度 737番 知的システムデザイン研究室
研究背景 • グリッド • ネットワークで遠隔地にある計算資源を接続 • ユーザに大規模な計算資源を提供 • グリッドコンピューティング • 効率的に分散・並列アプリケーションを実行
スケジューリングの必要性 • 適切な計算資源を選択することは困難 • グリッドはCPUやネットワーク性能等がヘテロ • 計算資源の状態が動的に変動
研究目的 • 大規模計算を効率的に実行 • グリッドによって実行時間を短縮 • グリッドにおけるタスクスケジューラの開発 • 分散アプリケーションScaLAPACKを対象 • 有効な計算資源を選択 • アプリケーションのタスクを割り振る ScaLAPACKは計算と通信を頻繁に実行するため, スケジューリングの対象として有効
ScaLAPACK • 分散メモリ用の線形計算ライブラリ • Scalable LAPACK • 共有メモリ用のLAPACKを並列・分散用に拡張 • 通信しながら行列計算(MPIなど使用) • 実行前に行列を計算資源へ分配 • 行列の分解・通信・更新を繰り返し行う • 計算資源に合わせてパラメータ調整可能 • 問題サイズ,ブロックサイズ,P,Q比など • 科学技術分野で使用される重要なライブラリ
ScaLAPACKの実行手順 • 行列の分配 • プロセスグリッド(P,Q)に基づいて分割 N:問題サイズ NB:ブロックサイズ
ScaLAPACKの実行手順 2.行列計算(LU分解) • 分解・通信・更新を繰り返す • ブロック列(L)を計算
ScaLAPACKの実行手順 2.行列計算(LU分解) • 分解・通信・更新を繰り返す • 分解パネルの送信
ScaLAPACKの実行手順 2.行列計算(LU分解) • 分解・通信・更新を繰り返す • 更新パネル送信
ScaLAPACKの実行手順 2.行列計算(LU分解) • 分解・通信・更新を繰り返す • 未更新行列の更新
ScaLAPACKの実行手順 2.行列計算(LU分解) • 分解・通信・更新を繰り返す
ScaLAPACKをグリッド上で実行 • 実行時間の短縮を目指す • 計算資源の選択が重要(計算と通信のバランス) • パラメータ(プロセスグリッド)が重要 • 実行する前にシミュレーションが必要 • 実行する環境でどの程度の時間を要するか予測したい • GrADS Projectはシミュレータを開発 有効な計算資源やパラメータを 実行して設定するには時間がかかる ScaLAPACKのコスト見積もり関数によって, 実行時間を予測
ScaLAPACKのコスト見積もり関数 • ScaLAPACKの行列計算の時間を予測 • 行列の分解や更新に必要な浮動小数点演算量を算出 • 分解パネルの通信量を算出 • 入力情報 • 計算資源情報 • CPU性能,ネットワーク性能,メモリの容量など • ScaLAPACKのパラメータ • 問題サイズ,ブロックサイズ,プロセスグリッド • 出力情報 • ScaLAPACKの見積もり実行時間 本研究では実行時間をより短縮するために, 従来のコスト見積もり関数を拡張する
従来のコスト見積もり関数 • パラメータに制限 • Pが1に固定(1次元のみ)
コスト見積もり関数の拡張 • P,Q比が変更可能 • 2次元の方が1次元よりも実行時間は短くなる
拡張したコスト見積もり関数 • プロセスグリッド(P,Q)が変更可能 • P方向に複数プロセスが割り当てられる • 計算の待ち時間が短縮 • 1つのプロセスの通信量が減少 • 新たにP方向の通信が発生 従来の関数(P=1に固定)よりも短い実行時間を 正確に見積もることができるか確認
拡張したコスト見積もり関数の評価 • ScaLAPACKをクラスタで実行し,実測値と見積もりの比較 • 実験環境 • パラメータ
実験結果(1) • 見積もり値と実測値の比較 最小実行時間をとるP,Qの値が異なるが,傾向がほぼ等しい Pの値が3よりも大きくなるにつれて誤差が大きくなる
実験結果(2) • 演算時間・通信量の比較 演算時間の誤差は小さく,通信量の増減の傾向も同じ 最適なプロセスグリッドが異なったのは,通信方式の見積もりが 正確でないと考えられる
タスクスケジューラの構築 • スケジュールを最適化
GAによるスケジューリング手法 • 生物の進化を工学的に模倣した最適化手法
GAによるスケジューリング手法 • 生物の進化を工学的に模倣した最適化手法
数値実験 • グリッド環境でScaLAPACKのスケジューリング • スケジューラによる見積もり値と実測値を比較 • 生成されたスケジュールの検討 • OBIグリッド(Open BioInformatics Grid)で実験 • 国内バイオインフォマティクス関連の大学・研究機関・ 企業の27サイトが参加 • 12ノード利用(全て同じスペック) • 各サイト間のネットワーク速度はヘテロ • 最大で20Mbps,最小で3Mbps程度
実験結果(1) • 見積もり値と実測値の比較 各問題サイズにおいて誤差が小さい 最適なスケジュールは最大で4台を利用
実験結果(2) • 生成された最適なスケジュール(N=8000の場合) • 同志社大の2台(sand, dnis),東工大(kona02), 統計数理研究所(obism220)の各1台の計4台 • P,Q=2×2 • 他のP,Qの値よりも短い実行時間 1293.63(sec)
主要ノードとのネットワーク速度 • obism220とのネットワーク速度一覧
結論 • ScaLAPACKのコスト見積もり関数の拡張により, より短い時間で実行可能 • P,Qのパラメータが重要 • 従来よりも効率的に実行可能となった 2. グリッド環境においてタスクスケジューリングを 行った結果,良好なスケジュールを生成 • 計算資源から有効な組み合わせを選択・配置 • 最小時間で実行
発表論文リスト • 廣安知之,三木光範,斉藤宏樹,谷村勇輔,Jack Dongarra グリッド環境におけるScaLAPACKのためのGAによるスケジューリング 第10回MPSシンポジウム,同志社大学,2003.10 • 斉藤宏樹,廣安知之,三木光範,谷村勇輔,Jack Dongarra グリッド環境における分散アプリケーションのための GAによるスケジューリング 同志社大学理工学研究報告書 第45巻 第4号 2005.1
数値実験 • 拡張したコスト見積もり関数の評価 • ScaLAPACKをクラスタで実行し,実測値と見積もり値の比較 • 演算時間や送受信量についても,実測値と見積もり値の比較 • グリッド環境におけるスケジューリング • OBIグリッドの分散処理プラットフォームでScaLAPACKを実行し,実測値と見積もり値の比較 • 最適なスケジュールの有効性の検討
発表の流れ • 研究背景・目的 • グリッド • スケジューラの必要性 • 分散アプリケーションScaLAPACK • 実行手順 • コスト見積もり関数 • ScaLAPACKのコスト見積もり関数の拡張 • 最適化手法GAの実装 • 数値実験 • 拡張したコスト見積もり関数の評価 • OBIグリッドにおけるスケジューリング • 結論
スケジューラ タスクスケジューラの構築
dMSXF(いいとこどり交叉) • TSPで良好な結果 • 近傍とステップ数で探索
スケジューリングへのアプローチ • Launch-time Scheduling • アプリケーション実行前のみ行う • 適切な計算資源を選択 • ReScheduling • アプリケーション実行中にも行う • 動的情報を考慮しながら計算資源を再選択 • Meta-Scheduling • 同時に同じ計算資源で実行するアプリケーションを考慮して順序などを決定
実験結果 • 見積もり値と実測値の比較 拡張したコスト見積もり関数が良好な結果 2回GAを行う手法が良好
実験結果(関数の比較) • 最適なスケジュール(N=14000)
実験結果(GAの比較) • 最適なスケジュール(N=14000)
P,Q比が変更可能なコスト見積もり関数の開発 • 密連立一次方程式を解くアルゴリズムを対象 • PDGESVルーチン • LU分解による行列演算時間を見積もる
見積もり関数の入力パラメータ • 計算資源情報 • CPU性能,ネットワーク性能,メモリ容量など • (P,Q)の値,N, NB
ブロックLU分解フェーズ(1) • 最大要素の探索(PDAMAX)
ブロックLU分解フェーズ(2) • ブロック列において行交換(PDSWAP)
ブロックLU分解フェーズ(3) • ブロック列(L)の計算(PDSCAL)
ブロックLU分解フェーズ(4) • ブロックパネル(U)の更新(PDGER)
演算範囲の推移 • これまでの演算をNB-1回繰り返す
ピボット情報の送信 • 列方向にBroadCast