第35回 超並列計算研究会 PBS超入門 同志社大学大学院 知的システムデザイン研究室 輪湖 純也 行列のできるラーメン屋さん 店員さんがしなければならないこと ・店内の空き状況の把握 ・客の誘導 ・客への対応 店員さん 待ち行列 ジョブ管理システム(JMS) • Job Management System: – バッチジョブの管理を効率よく行うためのシステム. – 一人のユーザがシステムを占有してしまうことを避け, 各ユーザにシステム資源(CPU時間,メモリ領域)を公平に割り振る. • JMSに必要な機能 リソース管理 ユーザーサーバ ジョブスケジューラ JMSの例 • DQS(Distributed Queuing System) – Florida State University,http://www.scri.fsu.edu/~pasko/dqs.html • LSF(Load Sharing Facility) – Platform Computing Corporation,http://www.platform.com/ • Condor – University of Wisconsin,http://www.cs.wisc.edu/condor/ • Generic NQS – University of Sheffield,http://www.gnqs.org/ • SGE(Sun Grid Engine) – Sun Microsystems,http://gridengine.sunsource.net/ • PBS(Portable Batch System) – NASA,http://www.openpbs.org/ PBSとは? • Portable Batch System – – – – – 現在,Linux Cluster環境で最も広く使われている Veridian Systems社によってNASA向けに開発されている BSDライセンスの下で自由に利用できる Linux,BSD,Solaris,AIX,HP/UXなどUnix-likeな環境で利用可能 商用版である,PBS Pro (http://www.pbspro.com/)もある PBS Proについては、5月のSMPPにて紹介予定 PBSの使い方 ①実行プログラム ga2k ②Scriptファイルを記述 PBS Server ga2k.sh ・CPU時間 ・メモリ領域 ・ノード数など ③ジョブの投入 $qsub ga2k.sh 計算ノード スクリプトファイル(1/3) • シングルジョブ用スクリプト #!/bin/sh #PBS -N test #PBS -j oe #PBS -l ncpus=1 #PBS -l nodes=1 #PBS -q default cd $PBS_O_WORKDIR ./ga2k …1 …2 …3 …4 …5 …6 …7 ①ジョブの名前を決める ②o(Output file), e(Error file)の出力 ③使用するCPUの数 ④使用するノードの数 ⑤キューの指定 ⑥実行ファイルのあるディレクトリに移動 ⑦実行ファイルを指定 スクリプトファイル(2/3) • 並列ジョブ用スクリプト #!/bin/sh #PBS -N ga2k-para #PBS -j oe #PBS -l ncpus=4 #PBS -l nodes=4 #PBS -l walltime=00:10:00 #PBS -q default cd $PBS_O_WORKDIR mpirun -np 4 –machinefile $PBS_NODEFILE ./ga2k-1.4/ga2k_mpi ①CPU数はジョブで使用するCPUの合計数 ②ノード数はジョブで使用するノードの合計数 ③このジョブの実行時間の見積もりを指定(ここでは,10分間を指定) ④-machinefileには,PBSが最適に選択したノードファイルである, $PBS_NODEFILEを指定する …1 …2 …3 …4 スクリプトファイル(3/3) • 並列ジョブ用スクリプト(デュアルCPUの場合) #!/bin/sh #PBS -N ga2k-para #PBS -j oe #PBS -l ncpus=4 …1 #PBS -l nodes=2:ppn=2 …2 #PBS -l walltime=00:10:00 #PBS -q default cd $PBS_O_WORKDIR mpirun -np 4 –machinefile $PBS_NODEFILE ./ga2k-1.4/ga2k_mpi ①CPU数はジョブで使用するCPUの合計数 この値は nodes x ppn の値になる ②node 数はジョブで使用する値 ppnは1nodeにつき幾つのCPUを使うかを指定 PBSの構成 Host A Server Policy PBS_Mom PBS_Sched commands - qsub - qdel PBS_Server Client Queue PBS_Mom Script file: ・CPU時間 ・メモリ領域 ・ノード数など Host B Job scheduler • 役割: リソースマネージャ(PBS_Server)に対して,どのジョブを いつ・どこで実行すべきかに関する情報を提供する. • PBSは,Pluginとして別スケジューラを使用することを許可 – デフォルトスケジューラ – Maui Scheduler Policy Scheduler Default Policy PBS_Server Maui スケジューリング・ポリシー • 基本ポリシー: 後からqueueに投入されたジョブであっても, 空いているリソースがあれば,先に実行する. • 基本ポリシーに伴う問題点 – 大規模なリソースを要求するジョブの実行が妨げられる. • 要求するリソースがなかなか利用可能にならないため. • デフォルトスケジューラのポリシー – Starving Job メカニズム • Maui schedulerのポリシー – ジョブの経過時間に基づくノード予約システム デフォルトスケジューラ • 基本ポリシー: – 要求されたCPU時間によって,ソートされる. つまり,最も実行時間の短いジョブから実行される. • Starving Job メカニズム: – あらかじめ定義された時間(デフォルトでは24時間)以上 ジョブが実行可能状態のままである時,開始される. – 一旦このメカニズムが開始されると,スケジューラはこ の“starving”なジョブがスタートされるまで,新しいジョ ブのスタートを止める. Maui scheduler • Mauiの役割 – (1)情報提供 • ユーザへのジョブ及びqueueなどの付加情報の提供 • 管理者へのリソースの現状や統計情報の提供 Maui独自のコマンドを提供 – (2)スケジューリング • BackfillなどMaui独自のスケジューリング方式 • Mauiの機能 – – – – – Backfill(充填) Advanced Reservations(高度な予約) Quality of Service(QoS)(サービスの品質) Statistics(統計) Diagnosis(分析) Maui feature • 基本ポリシー: – いくつかの要因によって決定された「優先度」によるソート. • Backfill: – 最も優先度の高いジョブの実行を遅らせることなく, 優先度の低いジョブの実行を許すメカニズム. – その際,最も実行時間の短いジョブの情報を使用. • Mauiは,全てのジョブの「最早完了時刻」を把握している. • そのために,ユーザ側にジョブの実行時間の見積もりが必要. » -l walltime = [hh:mm:ss] により設定可能 • この見積もりを正確にすることが, このメカニズムを有効に機能させるかどうかのキーとなる. Backfill • 優先度:B > C C -1 0 1 A Backfill Nodes 2 3 4 Time B Backfill • 優先度:B > C • Backfillにより,CがBより先に実行 -1 0 1 A C Nodes 2 3 4 Time B Backfill • • • • 優先度:B > C Backfillにより,CがBより先に実行 実際は,Aが時間1で終了(2時間多く見積もっていた) Aの終了時刻を正しく見積もっていれば, Bは時間1から実行されたはず. -1 0 1 2 3 4 A C Nodes Time B Advanced reservations • 一定時間ある特定のリソースを 利用可能にすることを保証するためのメカニズム. • リソース:CPU数,メモリ領域,ローカルディスク領域など e.g. ・2ノードを24時間以内に8時間使いたい. ・システム・メンテナンスのために, 03/23 8:00 ~ 03/25 17:00まで全ノード使いたい. # setres -s 8:00:00_03/23 -e 17:00:00_03/25 ALL PBSの提供するコマンド • Commands – qsub:ジョブの投入(再掲) – qstat:queue,ジョブの状態を表示 – qdel :ジョブの削除 • ジョブの投入(qsub):スクリプトを介して行う – シングルジョブ用スクリプト – 並列ジョブ用スクリプト 【実行例】 [junya@xen1 pbs]$ qsub ga2k.sh 167.xen1 Job ID が与えられる qdel:ジョブのキャンセル (1)qstatによりキューに入っているジョブの“Job ID”を確認 (2)qdelにより,Job IDを指定 (3)qstatにより,キャンセルされているかどうかを確認 【実行例】 [junya@xen1 pbs]$ qsub ga2k.sh 181.xen1 [junya@xen1 pbs]$ qstat -a xen1: (中略) --------------- -------- -------- ---------- ------ --- --- ------ ----- - ----181.xen1 junya p8 [junya@xen1 pbs]$ qdel 181 [junya@xen1 pbs]$ qstat -a ga2k-para- 1078 4 4 -- -- R -- qstat:ジョブのステータス表示 • qstatのオプション qstat –q システムの全てのqueueを表示 qstat –B PBS Serverのサマリー情報を表示 qstat –a システムの全てのジョブを表示 qstat –Q 全てのqueueのリミット値を表示 qstat –s 全てのジョブをステータスコメント付きで表示 qstat -r 実行中の全てのジョブを表示 qstat –f jobid 指定したジョブの詳細な情報を表示 qstat –Qf queue 指定したキューの詳細な情報を表示 例:qstat –q wakojun@smpp2004:~$ qstat -q server: smpp2004.work.isl.doshisha.ac.jp Queue Memory CPU Time Walltime Node Run Que Lm State ---------------- ------ -------- -------- ---- --- --- -- ----- default -- -- -- 2 2 10 2 --- --2 10 E R Mauiの提供するコマンド showq 現在queueに入っているジョブの状態を表示 checknode node 特定のノードの詳細な情報を表示 checkjob jobid 特定のジョブの詳細な情報を表示 setres 「予約」の設定 showres 現在の「予約」状況の表示 例:showq wako@smpp2004:~$ showq ACTIVE JOBS-------------------- JOBNAME USERNAME 24 wako 1 Active Job STATE PROC Running 1 of 1 REMAINING STARTTIME 0:08:40 Sat Mar 13 15:41:07 2 Processors Active (50.00%) IDLE JOBS---------------------JOBNAME 25 USERNAME STATE PROC WCLIMIT QUEUETIME wako Idle 2 0:10:00 Sat Mar 13 15:41:24 STATE PROC WCLIMIT QUEUETIME 1 Idle Job BLOCKED JOBS---------------JOBNAME Total Jobs: 2 USERNAME Active Jobs: 1 Idle Jobs: 1 Blocked Jobs: 0 例:setres & showres wako@smpp2004:~$ setres -s 16:00:00_03/13 -e 17:00:00_03/13 ALL wako@smpp2004:~$ showres Reservations ReservationID Type S Start SYSTEM.1 User - -0:23:11 1 reservations located wako@smpp2004:~$ date Sat Mar 13 16:23:33 JST 2004 End 0:36:49 Duration N/P StartTime 1:00:00 3/3 Sat Mar 13 16:00:00 xpbs • PBS には、qsub ようなCUIに加えて、 X 上で動作する GUI アプリケーション xpbs が用意されている. • xpbs経由で,ジョブの投入,削除,ステータス表示などが可能. How to install PBS • OpenPBSのダウンロード – http://www.openpbs.org/ – 最新バージョンは,2.3.16 (04/03 現在) • インストール環境 – Debian GNU/Linux 3.0 – kernel 2.4.18 smpp2004 PBS Server 計算ノード sp01 sp02 インストール手順 PBS Serverのインストール # ./configure --set-default-server=smpp2004 # make # make install 計算ノード(pbs_momのみ)のインストール # ./configure --disable-server --set-sched=no # make # make install ・PBSの各種デーモンのインストールディレクトリは,/usr/local/sbin ・PBSの設定ファイルのインストールディレクトリは,/usr/spool/PBS PBS_Serverのセットアップ(1/2) • nodesファイルの作成 – /usr/spool/PBS/server_priv/nodesファイルを作成 – 実行ノード(ホスト名)を記述 # less nodes sp01 sp02 • サーバーデーモンの初期化 – -t createオプションは,インストール後1回だけ実行 – その後,PBS_Serverの起動にオプションは必要ない # /usr/local/sbin/pbs_server –t create # /usr/local/sbin/pbs_sched PBS_Serverのセットアップ(2/2) • queueの作成 – server.conファイルの作成 # less server.con #default c q default s q default queue_type = execution s q default resources_max.nodect = 2 s q default resources_min.nodect = 1 s q default max_running = 2 s q default max_user_run = 2 s q default enabled = true s q default started = true s s scheduling = true – qmgrコマンドの実行 # qmgr < server.con Queueの作成 Queue typeの指定 ノードの最大数 ノードの最小数 実行可能な最大ジョブ数 一人のユーザが 実行可能な最大ジョブ数 計算ノード(PBS_Mom)のセットアップ • server_nameの確認 – /usr/spool/PBS/server_nameファイルの確認 # less server_name smpp2004 • configファイルの作成 – /usr/spool/PBS/mom_priv/configファイルの編集 # less config $logevent 0x1ff $clienthost smpp2004 $clienthost sp01 $clienthost sp02 $max_load 1.2 $ideal_load 1.0 How to install Maui • Mauiのダウンロード – http://www.supercluster.org/maui/ – 最新バージョンは,3.2.5 (04/03 現在) • インストール手順 # ./configure • Mauiのセットアップ – /usr/spool/maui/maui-3.2.5/maui.cfgファイルの確認 • SERVERHOST smpp2004 • RMCFG[base] TYPE=PBS PBS+Mauiの起動 PBS Serverの起動 # /usr/local/sbin/pbs_server –t true # /usr/local/sbin/maui PBS Server 計算ノードの起動 smpp2004 pbs_server # /usr/local/sbin/pbs_mom maui 計算ノード pbs_mom pbs_mom sp01 sp02 参考文献 • • • • • • • • OpenPBS http://www.openpbs.org/ Maui Users Manual http://www.supercluster.org/mauidocs/mauiusers.shtml OpenPBS vs SGE vs LSF http://www.softek.co.jp/Cluster/grid.html The Portable Batch Scheduler and the Maui Scheduler on Linux Clusters http://www.scl.ameslab.gov/Publications/Halstead/usenix_2k.pdf ブートストラップシステム利用の手引き http://ismsgi.ism.ac.jp/ISM_manual/sgi1200/ism_ug.jp.html xpbs http://www.pccluster.org/score/dist/score/html/ja/reference/pbs/user.html Torque http://www.supercluster.org/projects/torque/ OpenPBSのインストール方法 http://www.nakl.t.u-tokyo.ac.jp/~saiko/globus/openPBS_install.html PBSの構成 • Commands – ジョブの実行,モニタリング,修正,削除などはコマンドを介して行う • Job Scheduler (pbs_sched) – スケジューリングPolicyを管理するデーモン – デフォルトはFIFO scheduler(ここでは,Maui schedulerを採用) • Job Server (pbs_server) – ジョブの生成,受理,修正,実行(Momへの要求)などを行うデーモン – Queueの管理 • Routing queue : ジョブをExecution queueに配置 E • Execution queue : ジョブを実行 • Job Executer (pbs_mom) – 実際にジョブの実行を行うデーモン R PBSのジョブの扱い方 • ユーザがすること – ジョブが必要とするリソース要求を決定する • リソース: CPU時間,メモリ領域,ノード数など – バッチスクリプトを記述する – qsubコマンドによってPBSにジョブを投入する • PBSがすること – ジョブを要求されたリソースに基づいてqueueに配置する – このリソースが利用可能になった時に,ジョブを実行する – ジョブは,実行が完了するか リソース要求のリミットを越えるまで実行される – e-mailなどで完了を通知することも可能 Torque • Tera-scale Open-source Resource and QUEue manager • OpenPBS 2.3.12をベースに,いくつかの機能が追加されている. – スケーラビリティ • 2500プロセッサを越える大規模なクラスタ上で動作可能 • 2000プロセッサを越える大規模なジョブの使用が可能 – フォールト・トレランス • 障害状況のチェック • ノードヘルスチェックのスクリプトをサポート – スケジューリング・インタフェース • 完了したジョブの統計情報の収集 Sun Grid Engine • Sun ONE Grid Engine 5.3(日本語対応) • スループットの向上が目的 – リソース利用率の向上 – リソースへの透過的アクセス • 主な機能と利点 – Dynamic にリソース負荷を見てスケジューリングする機能 – ジョブ特性に応じたスケジューリングポリシーを設定できる Grid Engine PBS 動的なリソースバランシング ○ × パラメトリックスタディ・ジョブ ○ × 並列ジョブ管理環境 ○ ○ 自動ジョブ再実行 ○ ○ ジョブ管理システム(JMS) • Job Management System:JMS • JMSに必要な機能 – ユーザーサーバ :ジョブの投入,監視,削除などユーザの窓口となる機能 – ジョブスケジューラ :ジョブの種類,リソースの要求,リソースの空き状況, スケジューリングポリシーなどを考慮してジョブを スケジューリングする機能 – リソース管理 :リソース(CPU/メモリ使用率など)を監視し, スケジュール通りにリソースを割当てる機能 例:qstat –f jobid wakojun@smpp2004:~$ qstat -f 27 Job Id: 27.smpp2004.work.isl.doshisha.ac.jp Job_Name = ga2k-wakojun Job_Owner = [email protected] job_state = Q queue = default server = smpp2004.work.isl.doshisha.ac.jp Account_Name = wakojun <省略> qtime = Sat Mar 13 15:58:51 2004 Rerunable = True Resource_List.ncpus = 1 Resource_List.nodect = 2 Resource_List.nodes = 2 Resource_List.walltime = 00:10:00 Agenda • ジョブ管理システム • PBSとは – PBSの構成 • Job schedulerの役割 • Maui schedulerとは PBSユーザ向け • PBSの利用方法 – PBSの提供するコマンド – Maui schedulerの提供するコマンド • PBSのインストール方法 • Mauiのインストール方法 PBS管理者向け XeniaにおけるPBSの構成 • スケジューリング・ポリシー – Queueの構成 Queue default p4 p8 p16 p32 p64 queue_type R E E E E E 並列度 - 4 8 16 32 64 10 10 6 4 4 2 resources_max.nodect - 4 8 16 32 64 resources_min.nodect - 1 5 9 17 33 max_running – ユーザが同時に実行できるジョブの最大数は10
© Copyright 2024 ExpyDoc