1 / 45

PBS 超入門

第 35 回 超並列計算研究会. PBS 超入門. 同志社大学大学院 知的システムデザイン研究室 輪湖 純也. 行列のできるラーメン屋さん. 店員さんがしなければならないこと ・店内の空き状況の把握 ・客の誘導 ・客への対応. 店員さん. 待ち行列. ジョブ管理システム( JMS ). Job Management System : バッチジョブの管理を効率よく行うためのシステム. 一人のユーザがシステムを占有してしまうことを避け , 各ユーザにシステム資源 ( CPU 時間 , メモリ領域 ) を公平に割り振る. JMS に必要な機能. リソース管理.

mirra
Download Presentation

PBS 超入門

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第35回 超並列計算研究会 PBS超入門 同志社大学大学院 知的システムデザイン研究室 輪湖 純也

  2. 行列のできるラーメン屋さん 店員さんがしなければならないこと ・店内の空き状況の把握 ・客の誘導 ・客への対応 店員さん 待ち行列

  3. ジョブ管理システム(JMS) • Job Management System: • バッチジョブの管理を効率よく行うためのシステム. • 一人のユーザがシステムを占有してしまうことを避け,各ユーザにシステム資源(CPU時間,メモリ領域)を公平に割り振る. • JMSに必要な機能 リソース管理 ジョブスケジューラ ユーザーサーバ

  4. 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/

  5. 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にて紹介予定

  6. PBSの使い方 ①実行プログラム ga2k PBS Server ②Scriptファイルを記述 ga2k.sh ③ジョブの投入 $qsub ga2k.sh ・CPU時間 ・メモリ領域 ・ノード数など 計算ノード

  7. スクリプトファイル(1/3) • シングルジョブ用スクリプト #!/bin/sh #PBS -N test …1 #PBS -j oe …2 #PBS -l ncpus=1 …3 #PBS -l nodes=1 …4 #PBS -q default …5 cd $PBS_O_WORKDIR …6 ./ga2k …7 ①ジョブの名前を決める ②o(Output file), e(Error file)の出力 ③使用するCPUの数 ④使用するノードの数 ⑤キューの指定 ⑥実行ファイルのあるディレクトリに移動 ⑦実行ファイルを指定

  8. スクリプトファイル(2/3) • 並列ジョブ用スクリプト #!/bin/sh #PBS -N ga2k-para #PBS -j oe #PBS -l ncpus=4…1 #PBS -l nodes=4…2 #PBS -l walltime=00:10:00…3 #PBS -q default cd $PBS_O_WORKDIR mpirun -np 4 –machinefile $PBS_NODEFILE ./ga2k-1.4/ga2k_mpi …4 ①CPU数はジョブで使用するCPUの合計数 ②ノード数はジョブで使用するノードの合計数 ③このジョブの実行時間の見積もりを指定(ここでは,10分間を指定) ④-machinefileには,PBSが最適に選択したノードファイルである, $PBS_NODEFILEを指定する

  9. スクリプトファイル(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を使うかを指定

  10. PBSの構成 Host A Server Policy PBS_Mom PBS_Sched commands- qsub - qdel PBS_Server Client PBS_Mom Queue Script file: ・CPU時間 ・メモリ領域 ・ノード数など Host B

  11. Job scheduler • 役割:リソースマネージャ(PBS_Server)に対して,どのジョブをいつ・どこで実行すべきかに関する情報を提供する. • PBSは,Pluginとして別スケジューラを使用することを許可 • デフォルトスケジューラ • Maui Scheduler Policy Scheduler Default Policy Maui PBS_Server

  12. スケジューリング・ポリシー • 基本ポリシー:後からqueueに投入されたジョブであっても,空いているリソースがあれば,先に実行する. • 基本ポリシーに伴う問題点 • 大規模なリソースを要求するジョブの実行が妨げられる. • 要求するリソースがなかなか利用可能にならないため. • デフォルトスケジューラのポリシー • Starving Job メカニズム • Maui schedulerのポリシー • ジョブの経過時間に基づくノード予約システム

  13. デフォルトスケジューラ • 基本ポリシー: • 要求されたCPU時間によって,ソートされる.つまり,最も実行時間の短いジョブから実行される. • Starving Job メカニズム: • あらかじめ定義された時間(デフォルトでは24時間)以上ジョブが実行可能状態のままである時,開始される. • 一旦このメカニズムが開始されると,スケジューラはこの“starving”なジョブがスタートされるまで,新しいジョブのスタートを止める.

  14. Maui scheduler • Mauiの役割 • (1)情報提供 • ユーザへのジョブ及びqueueなどの付加情報の提供 • 管理者へのリソースの現状や統計情報の提供 • (2)スケジューリング • BackfillなどMaui独自のスケジューリング方式 • Mauiの機能 • Backfill(充填) • Advanced Reservations(高度な予約) • Quality of Service(QoS)(サービスの品質) • Statistics(統計) • Diagnosis(分析) Maui独自のコマンドを提供

  15. Maui feature • 基本ポリシー: • いくつかの要因によって決定された「優先度」によるソート. • Backfill: • 最も優先度の高いジョブの実行を遅らせることなく,優先度の低いジョブの実行を許すメカニズム. • その際,最も実行時間の短いジョブの情報を使用. • Mauiは,全てのジョブの「最早完了時刻」を把握している. • そのために,ユーザ側にジョブの実行時間の見積もりが必要. • -l walltime = [hh:mm:ss] により設定可能 • この見積もりを正確にすることが,このメカニズムを有効に機能させるかどうかのキーとなる.

  16. Backfill • 優先度:B > C C -1 0 1 2 3 4 Time A B Backfill Nodes

  17. Backfill • 優先度:B > C • Backfillにより,CがBより先に実行 -1 0 1 2 3 4 Time A B C Nodes

  18. Backfill • 優先度:B > C • Backfillにより,CがBより先に実行 • 実際は,Aが時間1で終了(2時間多く見積もっていた) • Aの終了時刻を正しく見積もっていれば,Bは時間1から実行されたはず. -1 0 1 2 3 4 Time A B C Nodes

  19. 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

  20. PBSの提供するコマンド • Commands • qsub:ジョブの投入(再掲) • qstat:queue,ジョブの状態を表示 • qdel:ジョブの削除 • ジョブの投入(qsub):スクリプトを介して行う • シングルジョブ用スクリプト • 並列ジョブ用スクリプト 【実行例】 Job IDが与えられる [junya@xen1 pbs]$ qsub ga2k.sh 167.xen1

  21. 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 ga2k-para- 1078 4 4 -- -- R -- [junya@xen1 pbs]$ qdel 181 [junya@xen1 pbs]$ qstat -a

  22. qstat:ジョブのステータス表示 • qstatのオプション

  23. 例: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 E R --- --- 2 10

  24. Mauiの提供するコマンド

  25. 例:showq wako@smpp2004:~$ showq ACTIVE JOBS-------------------- JOBNAME USERNAME STATE PROC REMAINING STARTTIME 24 wako Running 1 0:08:40 Sat Mar 13 15:41:07 1 Active Job 1 of 2 Processors Active (50.00%) IDLE JOBS---------------------- JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME 25 wako Idle 2 0:10:00 Sat Mar 13 15:41:24 1 Idle Job BLOCKED JOBS---------------- JOBNAME USERNAME STATE PROC WCLIMIT QUEUETIME Total Jobs: 2 Active Jobs: 1 Idle Jobs: 1 Blocked Jobs: 0

  26. 例: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 End Duration N/P StartTime SYSTEM.1 User - -0:23:11 0:36:49 1:00:00 3/3 Sat Mar 13 16:00:00 1 reservations located wako@smpp2004:~$ date Sat Mar 13 16:23:33 JST 2004

  27. xpbs • PBS には、qsub ようなCUIに加えて、X 上で動作する GUI アプリケーション xpbs が用意されている. • xpbs経由で,ジョブの投入,削除,ステータス表示などが可能.

  28. 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

  29. インストール手順 PBS Serverのインストール ・PBSの各種デーモンのインストールディレクトリは,/usr/local/sbin ・PBSの設定ファイルのインストールディレクトリは,/usr/spool/PBS # ./configure --set-default-server=smpp2004 # make # make install 計算ノード(pbs_momのみ)のインストール # ./configure --disable-server --set-sched=no # make # make install

  30. PBS_Serverのセットアップ(1/2) • nodesファイルの作成 • /usr/spool/PBS/server_priv/nodesファイルを作成 • 実行ノード(ホスト名)を記述 • サーバーデーモンの初期化 • -t createオプションは,インストール後1回だけ実行 • その後,PBS_Serverの起動にオプションは必要ない # less nodes sp01 sp02 # /usr/local/sbin/pbs_server –t create # /usr/local/sbin/pbs_sched

  31. PBS_Serverのセットアップ(2/2) • queueの作成 • server.conファイルの作成 • qmgrコマンドの実行 # 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 Queueの作成 Queue typeの指定 ノードの最大数 ノードの最小数 実行可能な最大ジョブ数 一人のユーザが実行可能な最大ジョブ数 # qmgr < server.con

  32. 計算ノード(PBS_Mom)のセットアップ • server_nameの確認 • /usr/spool/PBS/server_nameファイルの確認 • configファイルの作成 • /usr/spool/PBS/mom_priv/configファイルの編集 # less server_name smpp2004 # less config $logevent 0x1ff $clienthost smpp2004 $clienthost sp01 $clienthost sp02 $max_load 1.2 $ideal_load 1.0

  33. How to install Maui • Mauiのダウンロード • http://www.supercluster.org/maui/ • 最新バージョンは,3.2.5(04/03 現在) • インストール手順 • Mauiのセットアップ • /usr/spool/maui/maui-3.2.5/maui.cfgファイルの確認 • SERVERHOST smpp2004 • RMCFG[base] TYPE=PBS # ./configure

  34. PBS+Mauiの起動 # /usr/local/sbin/pbs_server –t true # /usr/local/sbin/maui PBS Serverの起動 PBS Server smpp2004 計算ノードの起動 pbs_server # /usr/local/sbin/pbs_mom maui 計算ノード pbs_mom pbs_mom sp01 sp02

  35. 参考文献 • OpenPBShttp://www.openpbs.org/ • Maui Users Manualhttp://www.supercluster.org/mauidocs/mauiusers.shtml • OpenPBS vs SGE vs LSFhttp://www.softek.co.jp/Cluster/grid.html • The Portable Batch Scheduler and the Maui Scheduler on Linux Clustershttp://www.scl.ameslab.gov/Publications/Halstead/usenix_2k.pdf • ブートストラップシステム利用の手引きhttp://ismsgi.ism.ac.jp/ISM_manual/sgi1200/ism_ug.jp.html • xpbshttp://www.pccluster.org/score/dist/score/html/ja/reference/pbs/user.html • Torquehttp://www.supercluster.org/projects/torque/ • OpenPBSのインストール方法http://www.nakl.t.u-tokyo.ac.jp/~saiko/globus/openPBS_install.html

  36. E R PBSの構成 • Commands • ジョブの実行,モニタリング,修正,削除などはコマンドを介して行う • Job Scheduler (pbs_sched) • スケジューリングPolicyを管理するデーモン • デフォルトはFIFO scheduler(ここでは,Maui schedulerを採用) • Job Server (pbs_server) • ジョブの生成,受理,修正,実行(Momへの要求)などを行うデーモン • Queueの管理 • Routing queue : ジョブをExecution queueに配置 • Execution queue : ジョブを実行 • Job Executer (pbs_mom) • 実際にジョブの実行を行うデーモン

  37. PBSのジョブの扱い方 • ユーザがすること • ジョブが必要とするリソース要求を決定する • リソース: CPU時間,メモリ領域,ノード数など • バッチスクリプトを記述する • qsubコマンドによってPBSにジョブを投入する • PBSがすること • ジョブを要求されたリソースに基づいてqueueに配置する • このリソースが利用可能になった時に,ジョブを実行する • ジョブは,実行が完了するかリソース要求のリミットを越えるまで実行される • e-mailなどで完了を通知することも可能

  38. Torque • Tera-scale Open-source Resource and QUEue manager • OpenPBS 2.3.12をベースに,いくつかの機能が追加されている. • スケーラビリティ • 2500プロセッサを越える大規模なクラスタ上で動作可能 • 2000プロセッサを越える大規模なジョブの使用が可能 • フォールト・トレランス • 障害状況のチェック • ノードヘルスチェックのスクリプトをサポート • スケジューリング・インタフェース • 完了したジョブの統計情報の収集

  39. Sun Grid Engine • Sun ONE Grid Engine 5.3(日本語対応) • スループットの向上が目的 • リソース利用率の向上 • リソースへの透過的アクセス • 主な機能と利点 • Dynamic にリソース負荷を見てスケジューリングする機能 • ジョブ特性に応じたスケジューリングポリシーを設定できる

  40. ジョブ管理システム(JMS) • Job Management System:JMS • JMSに必要な機能 • ユーザーサーバ:ジョブの投入,監視,削除などユーザの窓口となる機能 • ジョブスケジューラ:ジョブの種類,リソースの要求,リソースの空き状況, スケジューリングポリシーなどを考慮してジョブを スケジューリングする機能 • リソース管理:リソース(CPU/メモリ使用率など)を監視し, スケジュール通りにリソースを割当てる機能

  41. 例:qstat –f jobid wakojun@smpp2004:~$ qstat -f 27 Job Id: 27.smpp2004.work.isl.doshisha.ac.jp Job_Name = ga2k-wakojun Job_Owner = wakojun@smpp2004.work.isl.doshisha.ac.jp 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

  42. Agenda • ジョブ管理システム • PBSとは • PBSの構成 • Job schedulerの役割 • Maui schedulerとは • PBSの利用方法 • PBSの提供するコマンド • Maui schedulerの提供するコマンド • PBSのインストール方法 • Mauiのインストール方法 PBSユーザ向け PBS管理者向け

  43. XeniaにおけるPBSの構成 • スケジューリング・ポリシー • Queueの構成 • ユーザが同時に実行できるジョブの最大数は10

More Related