kuroの覚え書き

96の個人的覚え書き

SGEの利用

Sun N1 Grid Engineで並列演算させる。
job投入用スクリプトではオプションで色々設定を与えることができる。
不用意に負荷の高いアレイジョブなどを投げるとリソースを使い切ってサーバーをダウンさせるので適切に制限をかけたほうがいい。

#! /bin/sh      #お約束 なければデフォルトの/bin/shになるのだが
#$ -S /bin/sh     #コマンドインタプリタを選択できる 普通にshをつかうなら省略可
#$ -cwd           #ワーキングディレクトリを現在いるディレクトリに設定 デフォルトでは標準出力、標準エラー出力の行き先になる(-cwdなしだとhomeディレクトリがワーキングディレクトリになる)
#$ -o stdout      #標準出力書き出しのファイル名を指定 デフォルトは[script名].o[ジョブID]
#$ -e stderr      #標準エラー出力書き出しのファイル名を指定 デフォルトは[script名].e[ジョブID]
#$ -N job1        #qstatで表示されるジョブの名前をつけることができる(普通要らない)
#$ -a 1706221530  #開始時間を指定できるこの例では2017年6月22日15:30に開始
#$ -v PATH        #環境変数をexportする ここでやる必要性は?
#$ -q all.q@@calchosts         #キューを指定 ホストグループを指定して計算ノードだけ使う設定
#$ -pe smp 8    #並列環境と使用するコア数の指定
#$ -l h_vmem=12G  #使用するメモリ容量の指定
#$ -t 1-10    #アレイジョブ 10個投入時
#$ -wd /home/hoge/hogehoge

と明示的にワーキングディレクトリを指定してもいい。

#$ -o /home/hoge/logs/stdout.txt

とすれば自由なディレクトリに書き出せる。

#$ -l hostname=calc_node1

こんな感じにノードのホスト名を指定して実行するもよし。ホストグループ指定の上に追加で問題なさそう。(矛盾なければ)

以下パラメータの確認のためのコマンド
ノードのホスト名は

qhost

ホストグループは

qconf -shgrpl

並列環境は

qconf -spl

qsubで投げたあと、どういう動作をしたかを確認するには

qacct -j [jobID]

参考
http://www.hpc.co.jp/assets/files/GridEngineManual.pdf
https://docs.oracle.com/cd/E19957-01/820-2275/index.html
https://docs.oracle.com/cd/E19957-01/820-2161/index.html
https://docs.oracle.com/cd/E19957-01/820-2162/index.html
https://docs.oracle.com/cd/E19957-01/820-2163/index.html
https://docs.oracle.com/cd/E19957-01/819-6647/index.html