グリッド上でScaLAPACKを 実行するための

グリッド環境における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)
大