TORQUE/GPUs をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
ジョブスケジュールの対象に GPUs も加えることが可能だが、t...
***GPUs対応torque作成 [#zcfa7faf]
rpmbuildを使います。
なので、SPRMを取得して、展開、SPECファイルを調整して、reb...
#code(nonumber){{
[root@pbs ~]# yum install yum-utils
[root@pbs ~]# yumdownloader --enablerepo=epel --source to...
[root@pbs ~]# rpm -Uvh torque-4.2.10-10.el7.src.rpm
[root@pbs ~]# vi rpmbuild/SPECS/torque.spec
}}
torque.specの変更箇所は下記になる
#code(diff,nonumber){{
--- rpmbuild/SPECS/torque.spec.orig 2016-04-09 22:31:...
+++ rpmbuild/SPECS/torque.spec 2020-12-15 23:23:28.25689...
@@ -381,7 +381,7 @@
--with-sendmail=%{_sbindir}/sendmail --disable-static \
--with-tcp-retry-limit=2 --without-debug \
--enable-drmaa --enable-munge-auth --with-munge \
- --enable-cpuset --enable-numa-support \
+ --enable-cpuset --enable-numa-support --enable-nvidia-...
%{server_nameflags} %{guiflags} %{tclflags} %{rcpflags}
make %{?_smp_mflags}
}}
&color(red){*};&size(10){「--with-nvml-includ」「--with-n...
rpmbuildに足りないパッケージをインストールして、rpmbuild...
そうして、rpmbuild を実行する
#code(nonumber){{
[root@pbs ~]# yum install desktop-file-utils pam-devel xa...
munge-devel tcl-devel tk-devel graphviz...
[root@pbs ~]# rpmbuild -bb rpmbuild/SPECS/torque.spec
}}
再構築が完了すると rpmbuild/RPMS/x86_64/ に rpm ファイル...
#code(nonumber){{
[root@pbs ~]# ls rpmbuild/RPMS/x86_64/
torque-4.2.10-10.el7.x86_64.rpm torque-gui-4...
torque-client-4.2.10-10.el7.x86_64.rpm torque-libs-...
torque-debuginfo-4.2.10-10.el7.x86_64.rpm torque-mom-4...
torque-devel-4.2.10-10.el7.x86_64.rpm torque-pam-4...
torque-drmaa-4.2.10-10.el7.x86_64.rpm torque-sched...
torque-drmaa-devel-4.2.10-10.el7.x86_64.rpm torque-serve...
[root@pbs ~]#
}}
この作ったパッケージで入れ替えてみる
&color(red){*};&size(10){恐らく計算ノードのみ切り替えれば...
***ジョブ管理ノードへインストール [#x1e1e381]
特段することはなく、作ったtorque-momをインストールするだ...
#code(nonumber){{
[root@pbs ~]# yum remove "torque*" -y
[root@pbs ~]# cd rpmbuild/RPMS/x86_64/
[root@pbs x86_64]# yum localinstall ./torque-server-4.2.1...
./torque-scheduler-4....
./torque-libs-4.2.10-...
./torque-client-4.2.1...
./torque-4.2.10-10.el...
[root@pbs x86_64]#
}}
とインストールを行う。
そして設定します
#code(nonumber){{
[root@pbs ~]# hostname > /var/lib/torque/server_name
[root@pbs ~]# pbs_server -d /var/lib/torque -t create -f -D
pbs_server is up (version - 4.2.10, port - 15001) ...
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
[root@pbs ~]# create-munge-key
}}
そしてデーモンを起動させます
#code(nonumber){{
[root@pbs ~]# systemctl start trqauthd.service pbs_server...
[root@pbs ~]# systemctl enable trqauthd.service pbs_serve...
}}
***計算ノード [#p0934d82]
GPUs対応のパッケージを計算ノードに組み込みます
GPUノードにはGPUが2枚搭載されています
#code(nonumber){{
[root@s ~]# nvidia-smi -L
GPU 0: GeForce GT 710 (UUID: GPU-f0753e20-06f7-695a-f325-...
GPU 1: GeForce GT 710 (UUID: GPU-34c49ab7-b79d-e341-93e2-...
[root@s ~]#
}}
まずはパッケージを転送します
#code(nonumber){{
[root@pbs ~]# cd rpmbuild/RPMS/x86_64/
[root@pbs x86_64]#
[root@pbs x86_64]# scp torque-4.2.10-10.el7.x86_64.rpm to...
}}
そしてインストール
#code(nonumber){{
[root@s ~]# yum localinstall ./torque-4.2.10-10.el7.x86_6...
[root@s ~]# vi /var/lib/torque/mom_priv/config
$pbsserver pbs
[root@s ~]#
}}
#code(nonumber){{
[root@s ~]# systemctl enable pbs_mom.service
[root@s ~]# systemctl start pbs_mom.service
}}
***管理ノードに GPUs ノードを追加 [#nd2b85d4]
#code(nonumber){{
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
s np=4 num_node_boards=1 numa_board_str=4 gpus=2
[root@pbs ~]# systemctl restart pbs_server
}}
pbsnodeを実行すると下記になります。
#code(nonumber){{
[root@pbs ~]# pbsnodes
n1-0
state = free
np = 1
ntype = cluster
status = rectime=1608107709,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
s-0
state = free
np = 4
ntype = cluster
status = rectime=1608107721,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
gpus = 2
gpu_status = gpu[1]=gpu_id=00000000:06:00.0;gpu_prod...
[root@pbs ~]#
}}
と稼働を確認できる
次にNUMAを利用してGPUノードを仮想的に2つに分けて片方はGP...
まず管理ノード側で
#code(nonumber){{
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
s np=4 num_node_boards=2 numa_board_str=1,3 gpus=2 numa_...
[root@pbs ~]# systemctl restart pbs_server
}}
GPUノード側で
#code(nonumber){{
[root@s ~]# vi /var/lib/torque/mom_priv/mom.layout
nodes=0
nodes=1
[root@s ~]# systemctl restart pbs_mom
}}
として「pbsnode」で確認を取ると
#code(nonumber){{
[root@pbs ~]# pbsnodes
n1-0
state = free
np = 1
ntype = cluster
status = rectime=1608145809,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
s-0
state = free
np = 1
ntype = cluster
status = rectime=1608145819,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
gpus = 2
gpu_status = gpu[1]=gpu_id=00000000:06:00.0;gpu_prod...
s-1
state = free
np = 3
ntype = cluster
status = rectime=1608145819,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
gpus = 2
gpu_status = gpu[1]=gpu_id=00000000:06:00.0;gpu_prod...
[root@pbs ~]#
}}
と双方にGPUが2つ割り当てられてしまった
NUMAでは無理っぽいのかも...
***NUMAを外してGPU対応 [#t6d51fd6]
#code(nonumber){{
--- rpmbuild/SPECS/torque.spec.orig 2016-04-09 22:31:...
+++ rpmbuild/SPECS/torque.spec 2020-12-17 04:34:06.45491...
@@ -381,7 +381,7 @@
--with-sendmail=%{_sbindir}/sendmail --disable-static \
--with-tcp-retry-limit=2 --without-debug \
--enable-drmaa --enable-munge-auth --with-munge \
- --enable-cpuset --enable-numa-support \
+ --enable-cpuset --enable-nvidia-gpus \
%{server_nameflags} %{guiflags} %{tclflags} %{rcpflags}
make %{?_smp_mflags}
}}
こうしてrpmbuildして、管理ノードと計算ノードにrpmを配布+...
設定はほぼ同じで、違いはnodesファイル
#code(nonumber){{
[root@pbs ~]# cat /var/lib/torque/server_priv/nodes
n1 np=1
s np=4 gpus=2
[root@pbs ~]#
}}
これで利用者設定とqueueを作成、「qmgr -c "set server sche...
インターラクティブモードで接続すると
#code(nonumber){{
[illya@pbs ~]$ qsub -l nodes=1:ppn=4:gpus=2 -I
qsub: waiting for job 7.pbs to start
qsub: job 7.pbs ready
[illya@s ~]$ ls -l /var/lib/torque/aux/
total 8
-rw-r--r-- 1 root root 8 Dec 17 04:47 7.pbs
-rw-r--r-- 1 root root 14 Dec 17 04:47 7.pbsgpu
[illya@s ~]$ cat /var/lib/torque/aux/7.pbs <-- 利用可...
s
s
s
s
[illya@s ~]$ cat /var/lib/torque/aux/7.pbsgpu <-- 利用可...
s-gpu1
s-gpu0
[illya@s ~]$
}}
ここで一旦インターラクティブモードを終えて、次に2つのタ...
#code(nonumber){{
[illya@pbs ~]$ qsub -l nodes=1:ppn=1:gpus=1 -I
qsub: waiting for job 13.pbs to start
qsub: job 13.pbs ready
[illya@s ~]$ cat /var/lib/torque/aux/13.pbsgpu
s-gpu0
[illya@s ~]$
}}
もう片方は
#code(nonumber){{
[illya@pbs ~]$ qsub -l nodes=1:ppn=1:gpus=1 -I
qsub: waiting for job 14.pbs to start
qsub: job 14.pbs ready
[illya@s ~]$ cat /var/lib/torque/aux/14.pbsgpu
s-gpu1
[illya@s ~]$
}}
と「s-gpu0」「s-gpu1」とGPUID毎に割り当てられる.
っが、残念なことにインターラクティブモードなのだが「nvidi...
使えてしまいます。
#code(nonumber){{
[illya@s ~]$ nvidia-smi -L
GPU 0: GeForce GT 710 (UUID: GPU-f0753e20-06f7-695a-f325-...
GPU 1: GeForce GT 710 (UUID: GPU-34c49ab7-b79d-e341-93e2-...
[illya@s ~]$
}}
TorqueでGPUリソースの管理はできるのだが、制御として1枚し...
またGPUIDのどれが割り当てられたかは確認できるので、アプリ...
っが、アプリの調整は大変そう..
終了行:
ジョブスケジュールの対象に GPUs も加えることが可能だが、t...
***GPUs対応torque作成 [#zcfa7faf]
rpmbuildを使います。
なので、SPRMを取得して、展開、SPECファイルを調整して、reb...
#code(nonumber){{
[root@pbs ~]# yum install yum-utils
[root@pbs ~]# yumdownloader --enablerepo=epel --source to...
[root@pbs ~]# rpm -Uvh torque-4.2.10-10.el7.src.rpm
[root@pbs ~]# vi rpmbuild/SPECS/torque.spec
}}
torque.specの変更箇所は下記になる
#code(diff,nonumber){{
--- rpmbuild/SPECS/torque.spec.orig 2016-04-09 22:31:...
+++ rpmbuild/SPECS/torque.spec 2020-12-15 23:23:28.25689...
@@ -381,7 +381,7 @@
--with-sendmail=%{_sbindir}/sendmail --disable-static \
--with-tcp-retry-limit=2 --without-debug \
--enable-drmaa --enable-munge-auth --with-munge \
- --enable-cpuset --enable-numa-support \
+ --enable-cpuset --enable-numa-support --enable-nvidia-...
%{server_nameflags} %{guiflags} %{tclflags} %{rcpflags}
make %{?_smp_mflags}
}}
&color(red){*};&size(10){「--with-nvml-includ」「--with-n...
rpmbuildに足りないパッケージをインストールして、rpmbuild...
そうして、rpmbuild を実行する
#code(nonumber){{
[root@pbs ~]# yum install desktop-file-utils pam-devel xa...
munge-devel tcl-devel tk-devel graphviz...
[root@pbs ~]# rpmbuild -bb rpmbuild/SPECS/torque.spec
}}
再構築が完了すると rpmbuild/RPMS/x86_64/ に rpm ファイル...
#code(nonumber){{
[root@pbs ~]# ls rpmbuild/RPMS/x86_64/
torque-4.2.10-10.el7.x86_64.rpm torque-gui-4...
torque-client-4.2.10-10.el7.x86_64.rpm torque-libs-...
torque-debuginfo-4.2.10-10.el7.x86_64.rpm torque-mom-4...
torque-devel-4.2.10-10.el7.x86_64.rpm torque-pam-4...
torque-drmaa-4.2.10-10.el7.x86_64.rpm torque-sched...
torque-drmaa-devel-4.2.10-10.el7.x86_64.rpm torque-serve...
[root@pbs ~]#
}}
この作ったパッケージで入れ替えてみる
&color(red){*};&size(10){恐らく計算ノードのみ切り替えれば...
***ジョブ管理ノードへインストール [#x1e1e381]
特段することはなく、作ったtorque-momをインストールするだ...
#code(nonumber){{
[root@pbs ~]# yum remove "torque*" -y
[root@pbs ~]# cd rpmbuild/RPMS/x86_64/
[root@pbs x86_64]# yum localinstall ./torque-server-4.2.1...
./torque-scheduler-4....
./torque-libs-4.2.10-...
./torque-client-4.2.1...
./torque-4.2.10-10.el...
[root@pbs x86_64]#
}}
とインストールを行う。
そして設定します
#code(nonumber){{
[root@pbs ~]# hostname > /var/lib/torque/server_name
[root@pbs ~]# pbs_server -d /var/lib/torque -t create -f -D
pbs_server is up (version - 4.2.10, port - 15001) ...
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
[root@pbs ~]# create-munge-key
}}
そしてデーモンを起動させます
#code(nonumber){{
[root@pbs ~]# systemctl start trqauthd.service pbs_server...
[root@pbs ~]# systemctl enable trqauthd.service pbs_serve...
}}
***計算ノード [#p0934d82]
GPUs対応のパッケージを計算ノードに組み込みます
GPUノードにはGPUが2枚搭載されています
#code(nonumber){{
[root@s ~]# nvidia-smi -L
GPU 0: GeForce GT 710 (UUID: GPU-f0753e20-06f7-695a-f325-...
GPU 1: GeForce GT 710 (UUID: GPU-34c49ab7-b79d-e341-93e2-...
[root@s ~]#
}}
まずはパッケージを転送します
#code(nonumber){{
[root@pbs ~]# cd rpmbuild/RPMS/x86_64/
[root@pbs x86_64]#
[root@pbs x86_64]# scp torque-4.2.10-10.el7.x86_64.rpm to...
}}
そしてインストール
#code(nonumber){{
[root@s ~]# yum localinstall ./torque-4.2.10-10.el7.x86_6...
[root@s ~]# vi /var/lib/torque/mom_priv/config
$pbsserver pbs
[root@s ~]#
}}
#code(nonumber){{
[root@s ~]# systemctl enable pbs_mom.service
[root@s ~]# systemctl start pbs_mom.service
}}
***管理ノードに GPUs ノードを追加 [#nd2b85d4]
#code(nonumber){{
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
s np=4 num_node_boards=1 numa_board_str=4 gpus=2
[root@pbs ~]# systemctl restart pbs_server
}}
pbsnodeを実行すると下記になります。
#code(nonumber){{
[root@pbs ~]# pbsnodes
n1-0
state = free
np = 1
ntype = cluster
status = rectime=1608107709,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
s-0
state = free
np = 4
ntype = cluster
status = rectime=1608107721,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
gpus = 2
gpu_status = gpu[1]=gpu_id=00000000:06:00.0;gpu_prod...
[root@pbs ~]#
}}
と稼働を確認できる
次にNUMAを利用してGPUノードを仮想的に2つに分けて片方はGP...
まず管理ノード側で
#code(nonumber){{
[root@pbs ~]# vi /var/lib/torque/server_priv/nodes
n1 np=1 num_node_boards=1 numa_board_str=1
s np=4 num_node_boards=2 numa_board_str=1,3 gpus=2 numa_...
[root@pbs ~]# systemctl restart pbs_server
}}
GPUノード側で
#code(nonumber){{
[root@s ~]# vi /var/lib/torque/mom_priv/mom.layout
nodes=0
nodes=1
[root@s ~]# systemctl restart pbs_mom
}}
として「pbsnode」で確認を取ると
#code(nonumber){{
[root@pbs ~]# pbsnodes
n1-0
state = free
np = 1
ntype = cluster
status = rectime=1608145809,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
s-0
state = free
np = 1
ntype = cluster
status = rectime=1608145819,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
gpus = 2
gpu_status = gpu[1]=gpu_id=00000000:06:00.0;gpu_prod...
s-1
state = free
np = 3
ntype = cluster
status = rectime=1608145819,varattr=,jobs=,state=fre...
mom_service_port = 15002
mom_manager_port = 15003
gpus = 2
gpu_status = gpu[1]=gpu_id=00000000:06:00.0;gpu_prod...
[root@pbs ~]#
}}
と双方にGPUが2つ割り当てられてしまった
NUMAでは無理っぽいのかも...
***NUMAを外してGPU対応 [#t6d51fd6]
#code(nonumber){{
--- rpmbuild/SPECS/torque.spec.orig 2016-04-09 22:31:...
+++ rpmbuild/SPECS/torque.spec 2020-12-17 04:34:06.45491...
@@ -381,7 +381,7 @@
--with-sendmail=%{_sbindir}/sendmail --disable-static \
--with-tcp-retry-limit=2 --without-debug \
--enable-drmaa --enable-munge-auth --with-munge \
- --enable-cpuset --enable-numa-support \
+ --enable-cpuset --enable-nvidia-gpus \
%{server_nameflags} %{guiflags} %{tclflags} %{rcpflags}
make %{?_smp_mflags}
}}
こうしてrpmbuildして、管理ノードと計算ノードにrpmを配布+...
設定はほぼ同じで、違いはnodesファイル
#code(nonumber){{
[root@pbs ~]# cat /var/lib/torque/server_priv/nodes
n1 np=1
s np=4 gpus=2
[root@pbs ~]#
}}
これで利用者設定とqueueを作成、「qmgr -c "set server sche...
インターラクティブモードで接続すると
#code(nonumber){{
[illya@pbs ~]$ qsub -l nodes=1:ppn=4:gpus=2 -I
qsub: waiting for job 7.pbs to start
qsub: job 7.pbs ready
[illya@s ~]$ ls -l /var/lib/torque/aux/
total 8
-rw-r--r-- 1 root root 8 Dec 17 04:47 7.pbs
-rw-r--r-- 1 root root 14 Dec 17 04:47 7.pbsgpu
[illya@s ~]$ cat /var/lib/torque/aux/7.pbs <-- 利用可...
s
s
s
s
[illya@s ~]$ cat /var/lib/torque/aux/7.pbsgpu <-- 利用可...
s-gpu1
s-gpu0
[illya@s ~]$
}}
ここで一旦インターラクティブモードを終えて、次に2つのタ...
#code(nonumber){{
[illya@pbs ~]$ qsub -l nodes=1:ppn=1:gpus=1 -I
qsub: waiting for job 13.pbs to start
qsub: job 13.pbs ready
[illya@s ~]$ cat /var/lib/torque/aux/13.pbsgpu
s-gpu0
[illya@s ~]$
}}
もう片方は
#code(nonumber){{
[illya@pbs ~]$ qsub -l nodes=1:ppn=1:gpus=1 -I
qsub: waiting for job 14.pbs to start
qsub: job 14.pbs ready
[illya@s ~]$ cat /var/lib/torque/aux/14.pbsgpu
s-gpu1
[illya@s ~]$
}}
と「s-gpu0」「s-gpu1」とGPUID毎に割り当てられる.
っが、残念なことにインターラクティブモードなのだが「nvidi...
使えてしまいます。
#code(nonumber){{
[illya@s ~]$ nvidia-smi -L
GPU 0: GeForce GT 710 (UUID: GPU-f0753e20-06f7-695a-f325-...
GPU 1: GeForce GT 710 (UUID: GPU-34c49ab7-b79d-e341-93e2-...
[illya@s ~]$
}}
TorqueでGPUリソースの管理はできるのだが、制御として1枚し...
またGPUIDのどれが割り当てられたかは確認できるので、アプリ...
っが、アプリの調整は大変そう..
ページ名:
1