====== サーバの設定 ======
* 多くのサイトでは、ファイルを書き換えて行う方法を紹介しているが、その場合、torque-server (pbs_server) を再起動する必要がある。
* ここでは qmgr によって設定 (動的に変更) する方法を紹介する
===== 手順 =====
- 新たにサーバプロファイルを作成 (このコマンドを実行すると torque_server が起動する)\\ $ sudo pbs_server -t create
- ノードの設定
* 4スレッドを持つ hoge というノードを追加する場合\\ $ sudo qmgr
> create node hoge
> set node hoge np=4
> set node hoge properties="cpu"
* CPU 2スレッド、GPU 1 ノードのノード fuga を追加する場合 (Torque 2.5.6, 3.0.2 以降のバージョンで指定可能) \\ $ sudo qmgr
> create node fuga
> set node fuga np=2
> set node fuga gpus=1
> set node fuga properties="gpu"
* ''np'': CPU 数
* ''gpus'': GPU のノード数
* ''properties'': ''resources_default.neednodes'' で指定する際に指定する任意の名前 (他のノードとひとまとめに指定できる; ''neednodes'' の機能を有効にするにはスケジューラに Maui を導入する必要あり)
* 上記コマンドをノードの数だけ設定していく
* 設定は /var/spool/torque/server_priv/nodes に保存されていく (他のサイトで編集しているファイルと同じ)
- サーバやキューの設定
* qmgr に続けて入力するか、一度 exit で抜けてファイルを読み込ませる
* 設定項目については、[[#qmgr の設定項目]] や [[#キューの設定例]] を参照
* qmgr の基本的な使い方
* ''exit'': qmgr を終了
* ''print server'' (あるいは ''p s''): 設定内容の表示 (ノード情報は表示されない)
* ''create node'': ノードオブジェクトの作成
* ''create queue'': キューオブジェクトの作成
* ''set node 設定'': ノードオブジェクトの設定
* ''set queue 設定'': キューオブジェクトの設定
* ''set server 設定'': サーバの設定
* 設定は = で値と繋ぐ\\ 例: ''set server scheduling=true''
* 設定内容をファイルに保存する場合\\ $ echo 'p s' | sudo qmgr > queue.conf
* 保存したファイルから、ファイルの先頭にある Max open servers 行を削除すれば、読み込ませて設定することも可能
* ファイルを読み込ませる場合\\ $ sudo qmgr < ファイル
===== qmgr の設定項目 =====
==== サーバ設定 ====
''set server ...'' で始まる項目
^ 項目 ^ 意味 ^ 値 (太字がデフォルト) ^
|scheduling|スケジューリングの有効化|true or false|
|default_queue|デフォルトのキューを設定| |
|log_events|ログの出力内容| |
|query_other_jobs|root以外のユーザが他人のジョブを閲覧する許可|true or **false**|
|scheduler_iteration|?| |
|node_check_rate|ノードが死亡していると判断するまでの時間(秒)|整数値 (**600**)|
|tcp_timeout|pbs_serverとpbs_mon間のTCPソケットのタイムアウト時間(秒)|整数値 (**8**)|
|node_pack|1つのノードを埋めてから次のノードを利用するか|true or false|
|allow_node_submit|ノードからのジョブ投入の許可|true or **false**|
|keep_completed|完了後キューの中に留めておく時間(秒)|整数値 (**0**)|
=== キュー設定 ===
''set queue キュー名 ...'' で始まる項目
^ 項目 ^ 意味 ^ 値 (太字がデフォルト) ^
|queue_type|キュータイプ| execution(e) or route(r)|
|resources_default.ncpus|デフォルトで指定されるCPU数| |
|resources_default.nodes|デフォルトで指定されるノード数| |
|resources_default.neednodes|使用するノードを指定 (nodes ファイルで指定した名前) ※スケジューラに Maui を使う必要あり| |
|enabled|ジョブの受け入れ(このキューでのジョブ投入を許可するか)|true or **false**|
|started|ジョブを実行するか(falseならhold状態で投入される)|true or **false**|
* 参考サイト: 特定のノードの指定 [[http://hydro.iis.u-tokyo.ac.jp/~kei/?plugin=attach&refer=IT%20memo%2Flinuxmemo4&openfile=103-Torque%E5%8F%96%E6%89%B1%E8%AA%AC%E6%98%8E.pdf | untitled - http://hydro.iis.u-tokyo.ac.jp/~kei/?plugin=attach&refer=IT%20memo%2Flinuxmemo4&openfile=103-Torque%E5%8F%96%E6%89%B1%E8%AA%AC%E6%98%8E.pdf]]
* 参考サイト: 特定のノードの指定 [[http://docs.adaptivecomputing.com/torque/archive/3-0-2/4.1queueconfig.php | neednodes]]
===== キューの設定例 =====
#
# Create queues and set their attributes.
#
#
# Create and define queue F
#
create queue F
set queue F queue_type = Execution
set queue F resources_default.ncpus = 1
set queue F resources_default.nodes = 1
set queue F enabled = True
set queue F started = True
#
# Create and define queue Q2
#
create queue Q2
set queue Q2 queue_type = Execution
set queue Q2 max_running = 1
set queue Q2 resources_max.ncpus = 4
set queue Q2 resources_max.nodes = 1
set queue Q2 resources_default.ncpus = 1
set queue Q2 resources_default.nodes = 1
set queue Q2 resources_available.ncpus = 4
set queue Q2 resources_available.nodes = 1
set queue Q2 enabled = True
set queue Q2 started = True
#
# Create and define queue Q4
#
create queue Q4
set queue Q4 queue_type = Execution
set queue Q4 max_running = 1
set queue Q4 resources_max.ncpus = 4
set queue Q4 resources_max.nodes = 1
set queue Q4 resources_default.ncpus = 1
set queue Q4 resources_default.nodes = 1
set queue Q4 resources_available.ncpus = 4
set queue Q4 resources_available.nodes = 1
set queue Q4 enabled = True
set queue Q4 started = True
#
# Create and define queue Q1
#
create queue Q1
set queue Q1 queue_type = Execution
set queue Q1 max_running = 1
set queue Q1 resources_max.ncpus = 4
set queue Q1 resources_max.nodes = 1
set queue Q1 resources_default.ncpus = 1
set queue Q1 resources_default.nodes = 1
set queue Q1 resources_available.ncpus = 4
set queue Q1 resources_available.nodes = 1
set queue Q1 enabled = True
set queue Q1 started = True
#
# Create and define queue Q3
#
create queue Q3
set queue Q3 queue_type = Execution
set queue Q3 max_running = 1
set queue Q3 resources_max.ncpus = 4
set queue Q3 resources_max.nodes = 1
set queue Q3 resources_default.ncpus = 1
set queue Q3 resources_default.nodes = 1
set queue Q3 resources_available.ncpus = 4
set queue Q3 resources_available.nodes = 1
set queue Q3 enabled = True
set queue Q3 started = True
#
# Set server attributes.
#
set server scheduling = True
set server default_queue = F
set server log_events = 511
set server query_other_jobs = True
set server scheduler_iteration = 600
set server node_check_rate = 150
set server tcp_timeout = 6
set server node_pack = False
set server allow_node_submit = True
* F: 制限がないキュー
* Q1〜Q4: 1 ジョブしか流せないキュー
===== 参考サイト =====
* [[http://docs.adaptivecomputing.com/torque/4-0-2/Content/topics/4-serverPolicies/queueAttributes.htm | Queue attributes]] qmgr キューの設定
* [[http://docs.adaptivecomputing.com/torque/3-0-5/a.bserverparameters.php | ]] qmgr サーバ設定
* [[http://wiki.epii.jp/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2/TORQUE | ソフトウェア/TORQUE - epii's Wiki]] qmgr サーバ設定
{{tag>Linux サーバ 分子シミュレーション}}