Grid Workflow Scheduler

Slides:



Advertisements
Similar presentations
G ゼミ 2010/5/14 渡辺健人. パフォーマンスの測定 CUDA Visual Profiler CUDA の SDK に標準でついているパフォーマン ス測定用のツール 使い方: exe ファイルのパスと作業ディレクトリ指定して実 行するだけ 注意点 : GPU のコード実行後にプログラム終了前に,
Advertisements

HBSP モデル上での 行列積を求めるアルゴリ ム 情報論理工学 吉岡健太.
Windows HPC Server を使ってみる
グローバルコンピューティング環境における遺伝的アルゴリズムの検討
第2回 プロセス管理 ジョブ、プロセスとは? プロセスの状態遷移 プロセス制御ブロック スケジューリング.
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
計算理工学基礎 「ハイパフォーマンスコンピューティングの基礎」
クラスタの構成技術と クラスタによる並列処理
セキュリティ機構のオフロードを考慮した仮想マシンへの動的メモリ割当
ラベル付き区間グラフを列挙するBDDとその応用
PCクラスタにおける2個体分散遺伝的アルゴリズムの高速化
DNASシステム上のアプリケーション起動シーケンスのための基盤であるdsh部分の性能評価
複数のコンピュータ(ノード)を一群にまとめて、信頼性や処理性能の向上を実現するシステム
報告 (2006/9/6) 高橋 慧.
仮想マシンの並列処理性能に対するCPU割り当ての影響の評価
P,Q比が変更可能なScaLAPACKの コスト見積もり関数の開発
App. A アセンブラ、リンカ、 SPIMシミュレータ
多数の遊休PC上での 分散ゲーム木探索 導入 ゲーム木探索 ⇒遊休PCを利用して高速化 例)コンピュータ将棋における次手の計算
最新情報技術を活用した超大規模 天文データ解析機構の研究開発
セマンティクスを利用した 図書検索システム
ノードの情報を動的に反映したオーバレイネットワークの構築
ノードの情報を動的に反映したオーバレイネットワークの構築
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
アスペクト指向プログラミングを用いたIDSオフロード
サーバ負荷分散におけるOpenFlowを用いた省電力法
スペクトル・時系列データの前処理方法 ~平滑化 (スムージング) と微分~
文献名 “Performance Tuning of a CFD Code on the Earth Simulator”
型付きアセンブリ言語を用いた安全なカーネル拡張
過負荷時の分散ソフトウェアの 性能劣化を改善する スケジューリングの提案
On the Move参加報告.
決定木とランダムフォレスト 和田 俊和.
セキュリティ機構のオフロードを考慮した 仮想マシンのスケジューリング
トポロジを考慮する データ転送スケジュラー
Vector 4 = [Vector 3, packet_size]
コンポーネント連携によるサービスを オーバレイネットワーク上で 実現するためのサービス設計技法の提案
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(NlogN)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似法
WebGIS開発 総合政策学部2年 飯塚直 2004年10月14日 厳網林研究会.
複数ホストに分割されたメモリを用いる仮想マシンの監視機構
分散環境でのStableな ブロードキャストアルゴリズムの 提案と実装
シミュレーション学講義 第**回 スケジューリング問題とJSSP.
Anja von Heydebreck et al. 発表:上嶋裕樹
多変量解析ゼミ 第10回 第12章クラスター分析 発表者 直江 宗紀.
2018/9/10 ACL読み会 名古屋大学大学院 M2 佐藤・松崎研 土居裕典.
コードクローンの動作を比較するためのコードクローン周辺コードの解析
航空エンジンの翼列周り流れ解析のメニーコアシステム向け最適化
Data Clustering: A Review
M1 Kenji KANEDA (SIG-PDS)
未使用メモリに着目した 複数ホストにまたがる 仮想マシンの高速化
階層的境界ボリュームを用いた 陰関数曲面の高速なレイトレーシング法
VMMのソフトウェア若化を考慮した クラスタ性能の比較
目的:高速QR分解ルーチンのGPUクラスタ実装
生物統計学・第3回 全体を眺める(2) クラスタリング、ヒートマップ
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
研究背景と目的 局面対による学習の高速化 学習器の説明 今後 大規模な強化学習技術の実証と応用 一方で、 強化学習手法の台頭
P2P ネットワーク上で 実時間ストリーミングを実現するための 分散制御プロトコルの提案
InTriggerクラスタ環境の構築 i-explosion 支援班 クラスタ環境の概要 研究に使える「共有資源」を提供
Peer-to-Peerシステムにおける動的な木構造の生成による検索の高速化
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
情報経済システム論:第13回 担当教員 黒田敏史 2019/5/7 情報経済システム論.
マイグレーションを支援する分散集合オブジェクト
パターン認識 ークラスタリングとEMアルゴリズムー 担当:和田 俊和 部屋 A513
「マイグレーションを支援する分散集合オブジェクト」
メソッドの同時更新履歴を用いたクラスの機能別分類法
A-17 検索履歴のプライバシーを秘匿した ユーザクラスタリング
BSPモデルを用いた 並列計算の有用性の検証
時間情報に基づく多様な中心性に着目した 動的ネットワーク分析の提案
Dynamic Function Placement for Data-intensive Cluster Computing
マルチエージェントシステムにおける 通信コストの構造依存性に関する解析
アーキテクチャパラメータを利用した並列GCの性能予測
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

Grid Workflow Scheduler 高橋 慧

Grid Schedulerとは たくさんの逐次タスクを、グリッド上で効率よく簡単に実行するシステム タスク分配 ファイル転送 逐次のアプリケーションを書き換えることなく、手軽にグリッドの能力を発揮できる

依存性のあるジョブへの対応 Workflowとは (特にScientific Workflow) Workflowのスケジューリング 複数のタスクの実行手順を記述したもの 依存性を持ち、主にDAGによって表される Workflowのスケジューリング 多くの考慮すべき条件 データの場所 (locality) 前のジョブの終了時間 賢い戦略が必要になる

実例1 : 自然言語処理 単語の用例別統計の抽出 パーズ後、キーワードごとの用例を抽出 Corpus Parsed Corpus Phrases (by words) Concurrence analysis Corpus Parsed Corpus Phrases (by words) Concurrence analysis Corpus Parsed Corpus Phrases (by words) Concurrence analysis

実例2 : 量子化学 FMO (Fragment Molecular Orbital) 部分に分けて量子シミュレーションを行う 部分計算後につなぎ合わせる「補正」を行う 部分構造の結果を使い回せる 例えばCH3やOHなど (但し扱うデータサイズは小さい)

スケジューリング戦略[1] スケジュラーの構成 リソースとタスクの割り当て (Planning Scheme) 集中的 : 一つのスケジュラーが全プロセッサを担当 階層的 : クラスタ単位でのスケジューリングを行い、       細かいタスク割り当ては各クラスタで行う 分散的 : 全体を統括するスケジュラーを持たない リソースとタスクの割り当て (Planning Scheme) 静的 : 実行前に決める 実行時間予測が必要 動的 : 実行中に決める Matchmaking (性能・data localityなどを考慮) 完全に動的だと、賢い戦略は取りにくい [1] Srikumar Venugopal, et al., "A taxonomy of Data Grids for distributed data sharing, management, and processing” ACM Computing Surveys (CSUR) archive Vol.38, Issue 1 (2006)

既存システム Workflowに対応したスケジュラー スケジュラーではないけど… Condor DAGMan Triana, JOpera Pegasus (DAGManの改良) Triana, JOpera GrADS スケジュラーではないけど… Dmake DistCC

DAGMan[2] : 動的に配分 最も有名なGrid Scheduler 単一ジョブ : Condor-G データ転送 : Stork Workflow : DAGMan DAGManは依存性を解析し、CondorとStorkに(ばらばらに)ジョブを投入 Data Intensiveアプリでは、データ転送が 静的解析により、データ転送時にレプリカを作成し、高速化を図る研究もある (松岡研) [2] http://www.cs.wisc.edu/condor/

Condorのスケジューリング タスクをキューから一つずつ取り出し Matchmakingによって実行ノードを決定 ノードの利用権限 使用可能ディスクサイズ ノードの混み具合 計算元データの場所

Pegasus[3] : Jobをグループ化 ジョブをグループ化 (クラスタリング) クラスタ(site)ごとにジョブを割り当て 必要とするファイルによって分類 クラスタ(site)ごとにジョブを割り当て 密に結合したジョブは近いマシンに 実行時間予測はしない 静的分析 [3] Luiz Meyeret al., "Planning Spatial Workflows to Optimize Grid Performance” SAC’06, April, 23-27, 2006, Dijon, France.

Pegasusでの性能改善 4手法を比較 資源を10%に制限 タスクが多くなると 改善が少ない ランダム クラスタリング キャッシュ データのある場所 でジョブを実行 資源を10%に制限 タスクが多くなると 改善が少ない Prescript : 同時にsubmitされるjob

GrADS[4] : 実行時間を予測 実行時間を予測 スケジューリング 実行モデル + 小さなデータでの挙動 CPU・メモリ・ネットワーク資源の情報 浮動小数点演算の割合 など 各タスクを実行するのにかかる時間を予測 スケジューリング 三つのヒューリスティクスから最良を選ぶ 静的に行う [4] Anirban Mandal et.al, "Scheduling Strategies for Mapping Application Workflows onto the Grid“, HPDC’05

実行時間の予測 静的に全マシンについて計算する 実行時間 = CPU時間 + データ転送時間 Rank(ci, rj) = w1 * eCost(ci, rj) + w2 * dCost(ci, rj) eCost = (演算 + キャッシャミス) / クロック dCost = sum(データサイズ * レイテンシ /バンド幅) Rank(実行予測時間) Task 1 Task 2 Task 3 Task 4 Resource 1 10 6 7 5 Resource 2 8 4 Resource 3 11 12 2

スケジューリング戦略 三つの戦略で別々に計算 最短の総実行時間のものを採用 Min-min :各タスクの最短コスト中、最もコストが小さいものを採用 Max-min : 各タスクの最短コスト中、最もコストが大きいものを採用 Sufferage : 各タスクについて、最短コストと二番目に短いコストの差が最も大きいものを採用 最短の総実行時間のものを採用

スケジューリング例 Min-min Min-max Sufferage Rank Task 1 Task 2 Task 3 Task 4 Resource 1 1 2 10 6 Resource 2 5 11 Resource 3 3 12 4 Min-min Rank Task 1 Task 2 Task 3 Task 4 Resource 1 1 2 10 4 Resource 2 5 11 Resource 3 3 6 12 Min-max Rank Task 1 Task 2 Task 3 Task 4 Resource 1 1 2 10 4 Resource 2 5 11 Resource 3 3 6 12 Sufferage 2-1=1 Sufferage 5-2=3 Sufferage 11-10=1 Sufferage 5-4=1 Sufferage

実行結果 4手法を比較 HA : 本手法 (正確な予測 + 賢いマッピング) HC : ラフな予測 + 賢いマッピング RN : ランダムスケジューリング RA : 予測に基づいた重みを付けてランダム Mapped tasks Used nodes Exec. time Makespan

DistCC / DMake 一ファイルずつスケジュールするっぽい all : main echo "done" main : main.o a.o b.o c.o d.o gcc -o main main.o a.o b.o c.o d.o a.o : a.c gcc -c a.c b.o : b.c gcc -c b.c … rr56428@sx103> dmake dmake: defaulting to parallel mode. sx103.ecc.u-tokyo.ac.jp --> 1 job cc -c main.c sx103.ecc.u-tokyo.ac.jp --> 2 jobs gcc -c a.c gcc -c b.c gcc -c c.c gcc -c d.c gcc -o main main.o a.o b.o c.o d.o echo "done" sx103.ecc.u-tokyo.ac.jp --> Job output done newcamel ermine logosgw

まとめ? 実行時間の解析がポイント 対象を絞らないと有り難みが無い Dmakeの記述性は良いかも 動的に再計画するといい? 依存性が少ない Data Intensiveでない Dmakeの記述性は良いかも

Sun grid engine