Table of Contents
Ubuntu16.04を使用しました。
準備
/etc/hostsを開いて、ホスト名(コンピュータ名)のIPアドレスをlocalhostのものと同じにしておきます。 以下ではホスト名をuser-pcとします。
$ sudo vi /etc/hosts
(変更前)
- hosts
127.0.0.1 localhost 127.0.1.1 user-pc # 以下略
(変更後)
- hosts
127.0.0.1 localhost 127.0.0.1 user-pc # 以下略
変更を反映させるにはコンピュータの再起動が必要です。
$ sudo reboot
Torqueのインストール
端末を開いて、aptによりtorqueをインストールします。
$ sudo apt install torque-server torque-mom
torque-clientはtorque-serverに含まれているので、ヘッドノードと計算ノードが同じ場合はインストール不要です。
Torqueの設定
インストールするとTorqueが動き出すので、いったん終了させておきます。
$ ps -e |grep pbs 1407 ? 00:00:00 pbs_sched 1611 ? 00:00:00 pbs_mom 1618 ? 00:00:00 pbs_server $ sudo kill 1407 1611 1618
/etc/torque/server_nameにホスト名を書き込みます。
$ sudo vi /etc/torque/server_name
- server_name
user-pc
ジョブサーバーのpbs_serverを起動します。
$ sudo pbs_server -t create PBS_Server foo6134: Create mode and server database exists, do you wish to continue y/(n)?y
pbs_serverが起動したら/var/spool/torque/server_priv/にnodesというファイルを作り、使用できる最大プロセス数を指定します。
$ sudo vi /var/spool/torque/server_priv/nodes
- nodes
user-pc np=32
npで一度に実行できるプロセスの最大数を指定します。 最大プロセス数は
$ cpuinfo
でProcessors(CPUs)の後ろにある数字から確認できます。
なお、このnodesというファイルは
$ sudo pbs_server -t create
を再び実行すると削除されます。
ディレクトリのパーミッションを変更します。
$ sudo chmod 777 /var/spool/torque/spool /var/spool/torque/undelivered $ chmod o+t /var/spool/torque/spool /var/spool/torque/undelivered
以上の設定が終わったら、コンピュータを再起動します(ノードを設定したファイルはTorque起動時に読み込まれるため)。
$ sudo reboot
設定されたノードの情報は
$ pbsnodes
で確認できます。
キューの設定
次に、キューの設定をシます。 投げたジョブはいったんキューに格納され、スケジューラによってキューにあるジョブが順番に実行されていきます。 キューではジョブの実行時間などが編集できるので、ジョブの性質ごとにキューを作っておくと便利です。
以下ではbatchという名前のキューを作ります。 キューの設定は管理者権限でqmgrを起動して行います。 以下では必要最低限の設定をしています。
$ sudo qmgr Max open servers: xxx Qmgr: set server scheduling=true スケジューリングを有効にします。これが有効になってないとTorqueを使う意味がない。 Qmgr: create queue batch queue_type=execution batchという名前のキューを作ります。 Qmgr: set queue batch started=true batchでのジョブの実行を許可します。 Qmgr: set queue batch enabled=true batchにジョブを受け入れられるようにします。 Qmgr: set queue batch resources_default.nodes=1 batchに割り当てられるノードの数。ぼっちTorqueなのでノード数は必然的に1 Qmgr: set queue batch resources_default.walltime=240:00:00 ジョブの最大実行時間。この場合は240時間 Qmgr: set server default_queue=batch ジョブ投入時に特に指定がなければbatchに入る Qmgr: exit キューの管理を終了する
あるいはqmgrを起動しなくても
$sudo qmgr -c "set server scheduling=true"
で設定可能です。
設定の削除は次のようにします。
Qmgr: unset server scheduling=true
batchという名前のキューの削除は次のようにします。
Qmgr: delete queue batch
設定の確認は次のようにします。
Qmgr: p s
Torqueがちゃんと動作しているかは
$ echo 'sleep 30' | qsub $ qstat
で確認してください。