出力ファイルのサイズを制限するオプションとその注意点

Shiratori Altair
Shiratori Altair
Altair Employee
edited October 2023 in Altair HPCWorks - 日本語

PBS Professionalで実行するジョブのアウトプットファイルのサイズ制限を例を用いて説明します。

----------------------------------------------------
当文書では以下の3台で環境を構成している例を使用します。

pbs-head:    pbs_server,pbs_sched,pbs_commの各デーモンが稼働。当例ではjobのsubmitもこのサーバで実施。
node01:        pbs_momデーモンが稼働する計算ノード
node02:        pbs_momデーモンが稼働する計算ノード
----------------------------------------------------

 

* 以下の説明中、rootで実施している作業は、rootで実行することを推奨するものではありません。
 sudoなど必要なセキュリティ設定を実施することを推奨します。

 

1.アウトプットファイルを-lfile属性を使って制限する例

1.1. -lfileを使わずにアウトプットを作成

・DDコマンドでファイルを作成するスクリプトを準備

[user01@pbs-head ~]$ cat testfile.sh
#!/bin/sh


cd $PBS_O_WORKDIR


dd if=/dev/zero of=tempfile bs=10M count=10

・qsub結果を確認(問題なく100Mのファイルが作成された)

[user01@pbs-head ~]$ qsub testfile.sh
7.pbs-head
[user01@pbs-head ~]$ qstat -s
[user01@pbs-head ~]$ qstat -fx 7 | grep exec
    exec_host = node01/0
    exec_vnode = (node01:ncpus=1)
[user01@pbs-head ~]$ ssh node01 ls -alh tempfile
-rw-rw-r-- 1 user01 user01 100M 10月 26 14:49 tempfile
[user01@pbs-head ~]$
[user01@pbs-head ~]$ cat testfile.sh.*7
10+0 レコード入力
10+0 レコード出力
104857600 バイト (105 MB) コピーされました、 0.0634528 秒、 1.7 GB/秒
[user01@pbs-head ~]$


1.2 -lfileを使ってファイルサイズを制限

・qsub結果を確認(ファイルサイズが制限され50Mのファイルが作成された)

[user01@pbs-head ~]$ ssh node01 rm tempfile
[user01@pbs-head ~]$ qsub -lfile=50m testfile.sh
8.pbs-head
[user01@pbs-head ~]$ qstat -s
[user01@pbs-head ~]$ qstat -fx 8 | grep exec
    exec_host = node01/0
    exec_vnode = (node01:ncpus=1)
[user01@pbs-head ~]$ ssh node01 ls -alh tempfile
-rw-rw-r-- 1 user01 user01 50M 10月 26 14:51 tempfile
[user01@pbs-head ~]$ cat testfile.sh.*8
/var/spool/pbs/mom_priv/jobs/8.pbs-head.SC: 7 行:  6811 ファイルサイズ制限を超過しました                        
(コアダンプ) dd if=/dev/zero of=tempfile bs=10M count=10
[user01@pbs-head ~]$


2. -lfile属性の注意点

2.1 -lfileはジョブワイド属性なので、-lselectステートメント内に付加してリクエストすることができません。

・-lselect内に追加すると以下のようにエラーとなります。

[user01@pbs-head ~]$ qsub -lselect=1:ncpus=1:file=20 testfile.sh
qsub: Resource invalid in "select" specification: file

・以下のように-lfileを独立してリクエストすると実行できます。

[user01@pbs-head ~]$ qsub -lselect=1:ncpus=1 -lfile=20 testfile.sh
12.pbs-head
[user01@pbs-head ~]$

 

2.2 -lfileはジョブワイド属性なので、ホストレベルでは評価しません。

・以下のようにqueueやserverに制限等を設定する事はできます。

[root@pbs-head ~]# qmgr -c 's q workq resources_max.file=100mb'

[user01@pbs-head ~]$ qsub -lfile=120m testfile.sh
qsub: Job violates queue and/or server resource limits

・以下のようにノードに設定してもこの制限は評価されずに無視されます。

[root@pbs-head ~]# qmgr -c 's n node01 resources_available.file=100mb'
[root@pbs-head ~]#

 

* 属性がジョブワイド属性か否かは以下で確認します。

以下の章にある表で、Name列が"file"の行の"Scope"列を確認すると、"Job-wide"との記述があります。 
 
PBS Professional <version> Reference Guide

Resources Built Into PBS