TORQUE をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
もやはOpenSourceではなくなったTORQUE.
でもCentOSとかで古いバージョンだけど yum で入手可能です.
ここでは&color(lightseagreen){''CentOS 7''}; で TORQUE を...
&size(10){過去記事 [[torque-4.2.10>TORQUE/180401]]. [[tor...
&size(10){GPUs対応 [[TORQUE/GPUs]]};
キュー作成[[TORQUE/queue]]
[[TORQUE/Preemption]]
[[TORQUE/BLCR]]
[[TORQUE/memo]]
[[TORQUE/job script]]
[[TORQUE/macOS]] [[TORQUE/windows10]]
***全体像 [#wec964f1]
同一のネットワーク上に管理ノード、計算ノード、ジョブ発行...
アカウント管理とかユーザのホームディレクトリは各ノードと...
計算ノードへのジョブ投入にはsshかrshのいずれかを選ぶ
-ssh
公開鍵を作成してそれを「&color(magenta){~/.ssh/authorized...
-rsh
rsh-serverパッケージをインストールして「&color(orange){/e...
&color(red){*};&size(10){セキュリティーに関わるので要注意...
&ref(2020y12m13d_191022362.png,noborder);
IPとか役目は下記参照
|BGCOLOR(yellow):役目|BGCOLOR(yellow):ホスト名|BGCOLOR(ye...
|管理ノード|pbs|192.168.0.57|1||
|計算ノード|n1|192.168.0.52|1|pbs_momが稼働&br;実際の計算...
|~|n2|192.168.0.53|2|~|
|~|n3|192.168.0.54|3|~|
|ジョブ発行ノード|client|192.168.0.20|1|qsub,qstat|
管理ノード・計算ノードには下記のようにfirewallに穴をあけ...
#code(nonumber){{
firewall-cmd --add-port=15001/tcp --permanent
firewall-cmd --add-port=15002/tcp --permanent
firewall-cmd --add-port=15003/tcp --permanent
firewall-cmd --reload
(場合によっては)
firewall-cmd --add-service=rsh --permanent
}}
***管理ノードの構築 [#z86def53]
toqrueパッケージは epel リポジトリで提供されているのでま...
それから 管理ノードなので必要な「torque-server」「torque-...
#code(nonumber){{
[root@pbs ~]# yum install epel-release
[root@pbs ~]# yum install torque-server torque-scheduler ...
(付随して hwloc-libs, munge, munge-libs, tcl, torque, t...
}}
設定を施します。「/var/lib/torque/server_name」に管理ノー...
#code(nonumber){{
[root@pbs ~]# hostname > /var/lib/torque/server_name
[root@pbs ~]# cat /var/lib/torque/server_name
pbs
[root@pbs ~]#
}}
次に、ジョブコントロール向けのデータベースを作ります。
#code(nonumber){{
[root@pbs ~]# pbs_server -d /var/lib/torque -t create -f -D
pbs_server is up (version - 4.2.10, port - 15001)
}}
これでデータベースファイルは作成されますが、pbs_serverデ...
なのでここで &color(red){Ctrl-C}; によりpbs_serverデーモ...
そして各計算ノードの情報を「/var/lib/torque/server_priv/n...
#code(nonumber){{
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
[root@pbs ~]#
}}
&color(red){*};&size(10){ここに記載されるホスト名は、計算...
次に、qstat/qmgrコマンドの実行に必要な munge のキーファイ...
&color(red){*};&size(10){ジョブ発行ノードにここで作った m...
#code(nonumber){{
[root@pbs ~]# create-munge-key
Generating a pseudo-random key using /dev/urandom complet...
[root@pbs ~]# ls -l /etc/munge/
total 4
-r--------. 1 munge munge 1024 Dec 13 19:37 munge.key
[root@pbs ~]#
}}
そして管理ノードでのデーモンを起動します。
#code(nonumber){{
[root@pbs ~]# systemctl start trqauthd.service pbs_server...
[root@pbs ~]# systemctl enable trqauthd.service pbs_serve...
}}
***計算ノードの構築 [#l161f655]
管理ノードと同じく「epel」リポジトリを登録して、今度は「t...
#code(nonumber){{
[root@n1 ~]# yum install epel-release
[root@n1 ~]# yum install torque-mom
(連動して hwloc-lib, munge, munge-libs, torque, torque-...
}}
設定としては、「/var/lib/torque/mom_priv/config」に管理ノ...
#code(nonumber){{
[root@n1 ~]# vi /var/lib/torque/mom_priv/config
$pbsserver pbs
[root@n1 ~]#
}}
#code(nonumber){{
[root@n1 ~]# systemctl enable pbs_mom.service
[root@n1 ~]# systemctl start pbs_mom.service
}}
***ジョブ発行ノード [#mf8f2b6b]
管理ノードならその場でジョブを発行できますが、それ以外の...
#code(nonumber){{
[root@client ~]# yum install epel-release
[root@client ~]# yum install torque-client
(付随して hwloc-libs, libtool-ltdl, munge, munge-libs, ...
}}
設定を施します。
まずジョブ管理ノードがどこなのかを「/var/lib/torque/serve...
#code(nonumber){{
[root@client ~]# echo pbs > /var/lib/torque/server_name
}}
そして、ジョブ管理ノードで作成した「munge.key」を貰い受け...
&color(red){*};要、所有者変更
#code(nonumber){{
[root@client ~]# scp root@pbs:/etc/munge/munge.key /etc/m...
[root@client ~]# chown munge:munge /etc/munge/munge.key
[root@client ~]# systemctl enable trqauthd.service munge....
[root@client ~]# systemctl start trqauthd.service munge....
}}
これでジョブ発行ノードで qsub、pbsnode、qmgrらが使えます
~
~
***管理ノードの「&color(orangered){/var/lib/torque/server...
epelリポジトリから得られる Torque は NUMA 対応品です. そ...
手を加える必要があるみたい。
コマンド「&color(magenta){lscpu};」の出力に於いて
#code(nonumber){{
[root@n5 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
:
:
NUMA node0 CPU(s): 0-7
}}
とか
#code(nonumber){{
CPU(s): 28
:
NUMA node0 CPU(s): 0-13
NUMA node1 CPU(s): 14-27
}}
とか
#code(nonumber){{
:
CPU(s): 16
:
NUMA node0 CPU(s): 0,2,4,6,8,10,12,14
NUMA node1 CPU(s): 1,3,5,7,9,11,13,15
}}
とからがある. NUMAは極々あっさりなら core/memoryが密にな...
これを活用するには「/var/lib/torque/server_priv/nodes」にて
#code(nonumber){{
n5 np=8 num_node_boards=1 numa_board_str=8
n6 np=28 num_node_boards=2 numa_board_str=14
n7 np=16 num_node_boards=2 numa_board_str=8
}}
と明記します。
&color(red){*};各計算ノードで「&color(magenta){hostname};...
また運用的に 1core、1core、3core、3core とNUMAを利用して...
#code(nonumber){{
n5 np=8 num_node_boards=4 numa_board_str=1,1,3,3
}}
と表記もできる。
そしてこのNUMAの定義に従い 計算ノード側も調整します
場所は計算機ノードの「/var/lib/torque/mom_priv/mom.layout...
#code(nonumber){{
[root@n5 ~]# cat /var/lib/torque/mom_priv/mom.layout
nodes=0
nodes=1
[root@n5 ~]#
(1core、1core、3core、3coreとnodesで定義したなら)
nodes=0
nodes=1
nodes=2
nodes=3
}}
とします。
計算ノードのpbs_momと管理ノードのpbs_serverを再起動して p...
#code(nonumber){{
[root@client ~]# pbsnodes n5
n5-0
state = free
np = 1
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
n5-1
state = free
np = 1
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
n5-2
state = free
np = 3
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
n5-3
state = free
np = 3
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
[root@client ~]#
}}
と1台なのに複数のノードがあるように見えます。
...ただこのようにNUMAが有効になっているとジョブを出す側と...
「qsub -l nodes=&color(cadetblue){n5-0:ppn=1};''+''&color...
そうなるとslrumの方が便利かな。使用するqueueと幾つcoreを...
Torque/openPBSはqueue名とホスト名(ホスト数)が必要で、NUMA...
この辺も注意する必要があるので場合によってはNUMAのサポー...
***利用者登録 [#g582f1bc]
mungeを使うとjobを投入するにも確認するにもまずはTorqueへ...
&color(red){*};&size(10){CentOS提供のTorqueパッケージはデ...
参照:[[TORQUE/queue#a92b7130]]
管理ノードにて
#code(nonumber){{
[root@pbs ~]# qmgr
Max open servers: 9
Qmgr: set server authorized_users=illya@*
}}
終了行:
もやはOpenSourceではなくなったTORQUE.
でもCentOSとかで古いバージョンだけど yum で入手可能です.
ここでは&color(lightseagreen){''CentOS 7''}; で TORQUE を...
&size(10){過去記事 [[torque-4.2.10>TORQUE/180401]]. [[tor...
&size(10){GPUs対応 [[TORQUE/GPUs]]};
キュー作成[[TORQUE/queue]]
[[TORQUE/Preemption]]
[[TORQUE/BLCR]]
[[TORQUE/memo]]
[[TORQUE/job script]]
[[TORQUE/macOS]] [[TORQUE/windows10]]
***全体像 [#wec964f1]
同一のネットワーク上に管理ノード、計算ノード、ジョブ発行...
アカウント管理とかユーザのホームディレクトリは各ノードと...
計算ノードへのジョブ投入にはsshかrshのいずれかを選ぶ
-ssh
公開鍵を作成してそれを「&color(magenta){~/.ssh/authorized...
-rsh
rsh-serverパッケージをインストールして「&color(orange){/e...
&color(red){*};&size(10){セキュリティーに関わるので要注意...
&ref(2020y12m13d_191022362.png,noborder);
IPとか役目は下記参照
|BGCOLOR(yellow):役目|BGCOLOR(yellow):ホスト名|BGCOLOR(ye...
|管理ノード|pbs|192.168.0.57|1||
|計算ノード|n1|192.168.0.52|1|pbs_momが稼働&br;実際の計算...
|~|n2|192.168.0.53|2|~|
|~|n3|192.168.0.54|3|~|
|ジョブ発行ノード|client|192.168.0.20|1|qsub,qstat|
管理ノード・計算ノードには下記のようにfirewallに穴をあけ...
#code(nonumber){{
firewall-cmd --add-port=15001/tcp --permanent
firewall-cmd --add-port=15002/tcp --permanent
firewall-cmd --add-port=15003/tcp --permanent
firewall-cmd --reload
(場合によっては)
firewall-cmd --add-service=rsh --permanent
}}
***管理ノードの構築 [#z86def53]
toqrueパッケージは epel リポジトリで提供されているのでま...
それから 管理ノードなので必要な「torque-server」「torque-...
#code(nonumber){{
[root@pbs ~]# yum install epel-release
[root@pbs ~]# yum install torque-server torque-scheduler ...
(付随して hwloc-libs, munge, munge-libs, tcl, torque, t...
}}
設定を施します。「/var/lib/torque/server_name」に管理ノー...
#code(nonumber){{
[root@pbs ~]# hostname > /var/lib/torque/server_name
[root@pbs ~]# cat /var/lib/torque/server_name
pbs
[root@pbs ~]#
}}
次に、ジョブコントロール向けのデータベースを作ります。
#code(nonumber){{
[root@pbs ~]# pbs_server -d /var/lib/torque -t create -f -D
pbs_server is up (version - 4.2.10, port - 15001)
}}
これでデータベースファイルは作成されますが、pbs_serverデ...
なのでここで &color(red){Ctrl-C}; によりpbs_serverデーモ...
そして各計算ノードの情報を「/var/lib/torque/server_priv/n...
#code(nonumber){{
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
[root@pbs ~]#
}}
&color(red){*};&size(10){ここに記載されるホスト名は、計算...
次に、qstat/qmgrコマンドの実行に必要な munge のキーファイ...
&color(red){*};&size(10){ジョブ発行ノードにここで作った m...
#code(nonumber){{
[root@pbs ~]# create-munge-key
Generating a pseudo-random key using /dev/urandom complet...
[root@pbs ~]# ls -l /etc/munge/
total 4
-r--------. 1 munge munge 1024 Dec 13 19:37 munge.key
[root@pbs ~]#
}}
そして管理ノードでのデーモンを起動します。
#code(nonumber){{
[root@pbs ~]# systemctl start trqauthd.service pbs_server...
[root@pbs ~]# systemctl enable trqauthd.service pbs_serve...
}}
***計算ノードの構築 [#l161f655]
管理ノードと同じく「epel」リポジトリを登録して、今度は「t...
#code(nonumber){{
[root@n1 ~]# yum install epel-release
[root@n1 ~]# yum install torque-mom
(連動して hwloc-lib, munge, munge-libs, torque, torque-...
}}
設定としては、「/var/lib/torque/mom_priv/config」に管理ノ...
#code(nonumber){{
[root@n1 ~]# vi /var/lib/torque/mom_priv/config
$pbsserver pbs
[root@n1 ~]#
}}
#code(nonumber){{
[root@n1 ~]# systemctl enable pbs_mom.service
[root@n1 ~]# systemctl start pbs_mom.service
}}
***ジョブ発行ノード [#mf8f2b6b]
管理ノードならその場でジョブを発行できますが、それ以外の...
#code(nonumber){{
[root@client ~]# yum install epel-release
[root@client ~]# yum install torque-client
(付随して hwloc-libs, libtool-ltdl, munge, munge-libs, ...
}}
設定を施します。
まずジョブ管理ノードがどこなのかを「/var/lib/torque/serve...
#code(nonumber){{
[root@client ~]# echo pbs > /var/lib/torque/server_name
}}
そして、ジョブ管理ノードで作成した「munge.key」を貰い受け...
&color(red){*};要、所有者変更
#code(nonumber){{
[root@client ~]# scp root@pbs:/etc/munge/munge.key /etc/m...
[root@client ~]# chown munge:munge /etc/munge/munge.key
[root@client ~]# systemctl enable trqauthd.service munge....
[root@client ~]# systemctl start trqauthd.service munge....
}}
これでジョブ発行ノードで qsub、pbsnode、qmgrらが使えます
~
~
***管理ノードの「&color(orangered){/var/lib/torque/server...
epelリポジトリから得られる Torque は NUMA 対応品です. そ...
手を加える必要があるみたい。
コマンド「&color(magenta){lscpu};」の出力に於いて
#code(nonumber){{
[root@n5 ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
:
:
NUMA node0 CPU(s): 0-7
}}
とか
#code(nonumber){{
CPU(s): 28
:
NUMA node0 CPU(s): 0-13
NUMA node1 CPU(s): 14-27
}}
とか
#code(nonumber){{
:
CPU(s): 16
:
NUMA node0 CPU(s): 0,2,4,6,8,10,12,14
NUMA node1 CPU(s): 1,3,5,7,9,11,13,15
}}
とからがある. NUMAは極々あっさりなら core/memoryが密にな...
これを活用するには「/var/lib/torque/server_priv/nodes」にて
#code(nonumber){{
n5 np=8 num_node_boards=1 numa_board_str=8
n6 np=28 num_node_boards=2 numa_board_str=14
n7 np=16 num_node_boards=2 numa_board_str=8
}}
と明記します。
&color(red){*};各計算ノードで「&color(magenta){hostname};...
また運用的に 1core、1core、3core、3core とNUMAを利用して...
#code(nonumber){{
n5 np=8 num_node_boards=4 numa_board_str=1,1,3,3
}}
と表記もできる。
そしてこのNUMAの定義に従い 計算ノード側も調整します
場所は計算機ノードの「/var/lib/torque/mom_priv/mom.layout...
#code(nonumber){{
[root@n5 ~]# cat /var/lib/torque/mom_priv/mom.layout
nodes=0
nodes=1
[root@n5 ~]#
(1core、1core、3core、3coreとnodesで定義したなら)
nodes=0
nodes=1
nodes=2
nodes=3
}}
とします。
計算ノードのpbs_momと管理ノードのpbs_serverを再起動して p...
#code(nonumber){{
[root@client ~]# pbsnodes n5
n5-0
state = free
np = 1
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
n5-1
state = free
np = 1
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
n5-2
state = free
np = 3
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
n5-3
state = free
np = 3
ntype = cluster
status = rectime=1607866020,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
[root@client ~]#
}}
と1台なのに複数のノードがあるように見えます。
...ただこのようにNUMAが有効になっているとジョブを出す側と...
「qsub -l nodes=&color(cadetblue){n5-0:ppn=1};''+''&color...
そうなるとslrumの方が便利かな。使用するqueueと幾つcoreを...
Torque/openPBSはqueue名とホスト名(ホスト数)が必要で、NUMA...
この辺も注意する必要があるので場合によってはNUMAのサポー...
***利用者登録 [#g582f1bc]
mungeを使うとjobを投入するにも確認するにもまずはTorqueへ...
&color(red){*};&size(10){CentOS提供のTorqueパッケージはデ...
参照:[[TORQUE/queue#a92b7130]]
管理ノードにて
#code(nonumber){{
[root@pbs ~]# qmgr
Max open servers: 9
Qmgr: set server authorized_users=illya@*
}}
ページ名:
1