|
サイズ: 8951
コメント:
|
← 2026-07-23 10:12:01時点のリビジョン40 ⇥
サイズ: 7958
コメント:
|
| 削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
| 行 14: | 行 14: |
| プロセスが使用したリソース(メモリ使用量など)は GNU 版 time コマンド(/usr/bin/time)で計測できます.オプション -v を利用することで,以下のようにプロセスが使用したリソースの詳細が表示されます([[http://linuxjm.osdn.jp/html/LDP_man-pages/man1/time.1.html|Man page of TIME]]). | プロセスが使用したリソース(メモリ使用量など)は GNU 版 time コマンド(/usr/bin/time)で計測できます.オプション -v を利用することで,以下のようにプロセスが使用したリソースの詳細が表示されます. |
| 行 17: | 行 17: |
| -bash-4.1$ /usr/bin/time --version | $ /usr/bin/time --version |
| 行 20: | 行 20: |
| -bash-4.1$ /usr/bin/time -v whoami my016 Command being timed: "whoami" User time (seconds): 0.00 System time (seconds): 0.00 Percent of CPU this job got: 0% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 |
$ /usr/bin/time -v perl -e '"x" x 400 x 1024 x 1024' Command being timed: "perl -e "x" x 400 x 1024 x 1024" User time (seconds): 0.08 System time (seconds): 0.15 Percent of CPU this job got: 98% Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.24 |
| 行 31: | 行 30: |
| Maximum resident set size (kbytes): 3088 | Maximum resident set size (kbytes): 411772 |
| 行 34: | 行 33: |
| Minor (reclaiming a frame) page faults: 243 Voluntary context switches: 3 |
Minor (reclaiming a frame) page faults: 47885 Voluntary context switches: 15 |
| 行 45: | 行 44: |
$ /usr/bin/time -f %M perl -e '"x" x 400 x 1024 x 1024' 411900 |
|
| 行 46: | 行 48: |
| メモリの使用量は Maximum resident set size で知ることができますが, v1.7 には実際の4倍で表示されるという既知のバグ(実使用量は表示された値の4分の1)があります([[http://qiita.com/guicho271828/items/2ad3df13e915ecbb9cac|GNU Time にある壮大なバグ]]). | メモリの使用量は Maximum resident set size で知ることができます.また, -f %M を指定することでメモリの使用量のみを出力することもできます. |
| 行 49: | 行 51: |
== 投入しているジョブの一括削除 == 一般のユーザには qdel コマンドのオプション all が許可されていないように見えるものの,実際は投入している全てのジョブを削除することができます. {{{ -bash-4.1$ qdel all }}} == キューにあるすべてのユーザのジョブ一覧 == {{{/usr/local/maui/bin/showq}}} コマンドを使うと,キューにある他のユーザも含めたジョブ一覧を確認することができます. |
|
| 行 70: | 行 62: |
| 行 71: | 行 64: |
| 開発ノードには ulimit による cpu time の制限が存在します.この制限値は time コマンドで表示される値とは異なる値(隠れた値)に対して適用されるようです.原因のよくわからない「強制終了」が発生した場合,この制限が原因である可能性があります.例えば,大量のデータを rsync で同期すると以下のようなエラーが発生します. | 窓口サーバには ulimit による cpu time の制限が存在します.この制限値は time コマンドで表示される値とは異なる値(隠れた値)に対して適用されるようです.原因のよくわからない「強制終了」が発生した場合,この制限が原因である可能性があります.例えば,大量のデータを rsync で同期すると以下のようなエラーが発生します. |
| 行 85: | 行 78: |
| == ラッパーツールの設定・利用 == | == singularityコンテナ内からジョブスケジューラを利用 == |
| 行 87: | 行 80: |
| 3系の [[http://www.cs.tut.ac.jp/~yoshida/|吉田]] が作成した,クラスタを対話式に近い形で利用するためのツールの設定方法と利用方法. | 窓口サーバにログインしてからsingularity-pbsのスクリプトを利用してコンテナを立ち上げることで,qsubやqstatなどのジョブスケジューラのコマンドを実行できます.以下は計算サーバでのジョブ用に用意されているコンテナを指定した例です. |
| 行 89: | 行 82: |
| === 設定方法 === ホームディレクトリ直下の bin にツールへのシンボリックリンクを作る. |
|
| 行 93: | 行 83: |
| -bash-4.1$ mkdir ~/bin -bash-4.1$ ln -s /gpfs/work/my016/tool/qcmd.sh ~/bin/qcmd -bash-4.1$ ln -s /gpfs/work/my016/tool/qwatch.pl ~/bin/qwatch |
[yi041@ydev04 ~]$ sudo /usr/local/bin/singularity-pbs /common/Singularity_sif/prg_env_amd_2025.02.sif |
| 行 98: | 行 86: |
| ~/.bash_profile に以下の3行を追記する(ホームディレクトリ直下の bin に PATH を設定). {{{ if [ -d "$HOME/bin" ] ; then export PATH="$HOME/bin:$PATH" fi }}} |
== ANSYS が実行できない場合(窓口サーバxdev,計算ノードxsndの場合) == |
| 行 105: | 行 88: |
| 再度,ログインする. === ジョブ投入ツール(qcmd) === qcmd は任意のコマンドをクラスタのノード上で実行するためのツールです. |
■端末を2つ開き,端末1と端末2にて同じxdev(例:xdev09.edu.tut.ac.jp)に接続する |
| 行 112: | 行 91: |
| -bash-4.1$ qcmd Usage: [Q=QueueName] [N=nodes or NodeID] [P=ppn] [M=pmem or Req'd Memory (gb)] [W=Req'd Time (hour)] [J=JobName] [AO=afterok:JobID] qcmd command |
端末1:$ ssh -X xdev09.edu.tut.ac.jp -l IMCアカウント 端末2:$ ssh -X xdev09.edu.tut.ac.jp -l IMCアカウント |
| 行 115: | 行 94: |
* Q: ジョブを投入するキュー名(default: wLrchq) * N: 必要ノード数 または 実行するノード名(default: 1,最大値: 30) * P: 1ノードあたりの必要コア数(default: 1) * M: 1コアあたりの必要メモリ量(default: 5,単位: GB,最大値: P*M <= 100) * W: ジョブの制限時間(default: 24,単位: hour,最大値: 336)※短いほど優先度が高くなる * J: ジョブ名(default: qcmd)※qstatやqwatchで表示される名前 実行例 {{{ -bash-4.1$ qcmd pa aux -bash-4.1$ qcmd /usr/bin/time -v perl i_love_cats.pl -bash-4.1$ M=20 qcmd /usr/bin/time -v perl i_love_fat_cats.pl -bash-4.1$ qcmd "perl catching_cats.pl | perl counting_cats.pl" }}} * 通常は qcmd の後ろに実行したいコマンドを指定すれば,(Nによるノードの指定がなければ)任意のノードで実行されます.その実行結果(標準出力の内容)は,カレントディレクトリの [JobName].o[JobID] というファイルに出力されます. * オプションは qcmd の手前に記述します. * パイプ(|)やリダイレクト(>)を利用する場合には,コマンド全体をダブルクォート(")で括ります. === クラスタ確認ツール(qwatch) === qwatch はクラスタの稼働状況を確認するためのツールです. |
■ターミナル1にて別の任意のxdev(例:xdev08.edu.tut.ac.jp)に接続する |
| 行 140: | 行 97: |
| -bash-4.1$ qwatch -h Usage: perl qwatch.pl [Options] |
端末1:$ ssh -X xdev08 }}} ■端末1にてコンテナを起動する |
| 行 144: | 行 101: |
| Options: -h, --help 標準出力に使用方法のメッセージを出力して正常終了する。 |
{{{ [es006@xdev08 ~]$ qsub -q wEduq -I -X -l select=1:ncpus=2:mem=8g:ngpus=0:vnode=xsnd01 -v DOCKER_IMAGE=prg-env:2019.10.03 qsub: waiting for job 853714.xregistry0 to start qsub: job 853714.xregistry0 ready |
| 行 148: | 行 106: |
| -a, --all 全てのステータスを表示する。引数を指定しない場合のデフォルトである。 |
Access Port: <proto>://133.15.52.213:6048/ -> container port 22 |
| 行 151: | 行 109: |
| -n, --node ノードに関するステータスを表示する。 wdev0 以外のサーバで実行した場合は Users が常に空になる。 |
[es006@xsnd01-853714-xregistry0 es006]$ hostname xsnd01-853714-xregistry0 [es006@xsnd01-853714-xregistry0 es006]$ env |grep DISPLAY DISPLAY=localhost:50.0 }}} ■最後のCookie値を確認 |
| 行 154: | 行 116: |
| -u, --user ユーザに関するステータスを表示する。 wdev0 以外のサーバで実行した場合は常に空になる。 |
{{{ [es006@xsnd01-853714-xregistry0 es006]$ xauth list |grep :50 xsnd07.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 d87479acccfef58985781b575f3d4eb4 xsnd04.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 34c0617d410bafafa162a350aa55db0a xsnd00.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd03.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd02.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 13cee90ba6b5e5b375a25bd40cf2ea34 xsnd01.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d ←★これ }}} ■端末2でxauth add を行う |
| 行 157: | 行 127: |
| -j, --job 自身が投入したジョブに関するステータスを表示する。 |
{{{ [es006@xdev09 ~]$ xauth add xsnd01-853714-xregistry0/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d }}} ■端末1で追加されたことを確認 |
| 行 160: | 行 132: |
| -v, --verbose 自身が投入したジョブに関するステータスを表示する際、ジョブ名のフルネームを表示する。 |
{{{ [es006@xsnd01-853714-xregistry0 es006]$ xauth list |grep :50 xsnd07.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 d87479acccfef58985781b575f3d4eb4 xsnd04.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 34c0617d410bafafa162a350aa55db0a xsnd00.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd03.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd02.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 13cee90ba6b5e5b375a25bd40cf2ea34 xsnd01.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d xsnd01-853714-xregistry0/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d ←★これ |
| 行 163: | 行 142: |
| ■端末1でANSYS起動 ※時間がかかります | |
| 行 164: | 行 144: |
| 実行例 | |
| 行 166: | 行 145: |
| -bash-4.1$ qwatch | [es006@xsnd01-853714-xregistry0 es006]$ module load ansys19.r2 [es006@xsnd01-853714-xregistry0 es006]$ /common/ansys_hfss-19.r2/AnsysEM19.4/Linux64/ansysedt ANSYS Electromagnetics 19.4 Configuration ========================================= Hostname: xsnd01-853714-xregistry0 User: es006 > Running first-time configuration... - Verifying all software dependencies are available: Done - Retrieving user settings... Done - Applying user settings... Done - Configuring OCX files... Done - Retrieving machine settings... Done - Applying machine settings... Done - Configuring binaries... Done First-time configuration completed successfully. |
| 行 168: | 行 164: |
あなたのジョブが実行されているノードは,UsersやNodesを確認することで分かります. あなたが指定した ppn と loadave との間に,著しい乖離がないかを確認してください(ほかのユーザも実行している場合があるので,すべてがあなたのジョブに起因しているわけではありません).もし, ppn=20 を指定しているにもかかわらず(CPUs が 20 になります),ロードアベレージ loadave が 1 であれば,非常に非効率な実行になっています.逆に, ppn=1 を指定して loadave が 100 になっていれば,他のユーザに迷惑をかける可能性が高いです. |
[Japanese|English]
クラスタシステム利用の Tips
クラスタシステム利用にあたって気づいた便利なノウハウなどの記入をお願いします.ログインすることで編集できるようになります.
目次
研究ユーザ情報交換用メーリングリストの過去ログ
研究ユーザの情報交換用メーリングリストの過去ログは, http://lists.imc.tut.ac.jp/pipermail/research-users/ で見れます.
使用リソース(メモリ使用量など)の計測
プロセスが使用したリソース(メモリ使用量など)は GNU 版 time コマンド(/usr/bin/time)で計測できます.オプション -v を利用することで,以下のようにプロセスが使用したリソースの詳細が表示されます.
$ /usr/bin/time --version
GNU time 1.7
$ /usr/bin/time -v perl -e '"x" x 400 x 1024 x 1024'
Command being timed: "perl -e "x" x 400 x 1024 x 1024"
User time (seconds): 0.08
System time (seconds): 0.15
Percent of CPU this job got: 98%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.24
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 411772
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 47885
Voluntary context switches: 15
Involuntary context switches: 1
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
$ /usr/bin/time -f %M perl -e '"x" x 400 x 1024 x 1024'
411900メモリの使用量は Maximum resident set size で知ることができます.また, -f %M を指定することでメモリの使用量のみを出力することもできます.
GNU 版 time コマンドはクラスタの演算ノードでも利用できますが,結果が標準エラー出力であることに留意する必要があります.
ジョブの実行状態を繰り返し表示
投入したジョブがどのような状況かを表示する場合には, watch コマンドを併用すると便利です.以下のように実行すると,5秒間隔で繰り返し実行され,常に最新の状態を把握することができます.また,オプション -d を指定すると,前回との差分がハイライトされます.なお,繰り返し実行するコマンドにエイリアスは指定できません.
-bash-4.1$ watch -n 5 qstat -a -bash-4.1$ watch -n 5 qstat -Q -bash-4.1$ watch -n 5 -d qstat -Q
ulimit -t (cpu time) による制限
窓口サーバには ulimit による cpu time の制限が存在します.この制限値は time コマンドで表示される値とは異なる値(隠れた値)に対して適用されるようです.原因のよくわからない「強制終了」が発生した場合,この制限が原因である可能性があります.例えば,大量のデータを rsync で同期すると以下のようなエラーが発生します.
-bash-4.1$ rsync --progress -avh /tmp/source /destination/ sending incremental file list ... rsync: writefd_unbuffered failed to write 4 bytes to socket [sender]: Broken pipe (32) rsync: connection unexpectedly closed (96 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
rsync が消費する cpu time は --bwlimit の指定に関係なく,概ねデータ転送量で決まるようです.リモート同期の場合は ssh による経路暗号化処理が入るため,ローカル同期よりも cpu time を2倍程度消費する傾向にあります.
singularityコンテナ内からジョブスケジューラを利用
窓口サーバにログインしてからsingularity-pbsのスクリプトを利用してコンテナを立ち上げることで,qsubやqstatなどのジョブスケジューラのコマンドを実行できます.以下は計算サーバでのジョブ用に用意されているコンテナを指定した例です.
[yi041@ydev04 ~]$ sudo /usr/local/bin/singularity-pbs /common/Singularity_sif/prg_env_amd_2025.02.sif
ANSYS が実行できない場合(窓口サーバxdev,計算ノードxsndの場合)
■端末を2つ開き,端末1と端末2にて同じxdev(例:xdev09.edu.tut.ac.jp)に接続する
端末1:$ ssh -X xdev09.edu.tut.ac.jp -l IMCアカウント 端末2:$ ssh -X xdev09.edu.tut.ac.jp -l IMCアカウント
■ターミナル1にて別の任意のxdev(例:xdev08.edu.tut.ac.jp)に接続する
端末1:$ ssh -X xdev08
■端末1にてコンテナを起動する
[es006@xdev08 ~]$ qsub -q wEduq -I -X -l select=1:ncpus=2:mem=8g:ngpus=0:vnode=xsnd01 -v DOCKER_IMAGE=prg-env:2019.10.03
qsub: waiting for job 853714.xregistry0 to start
qsub: job 853714.xregistry0 ready
Access Port:
<proto>://133.15.52.213:6048/ -> container port 22
[es006@xsnd01-853714-xregistry0 es006]$ hostname
xsnd01-853714-xregistry0
[es006@xsnd01-853714-xregistry0 es006]$ env |grep DISPLAY
DISPLAY=localhost:50.0■最後のCookie値を確認
[es006@xsnd01-853714-xregistry0 es006]$ xauth list |grep :50 xsnd07.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 d87479acccfef58985781b575f3d4eb4 xsnd04.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 34c0617d410bafafa162a350aa55db0a xsnd00.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd03.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd02.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 13cee90ba6b5e5b375a25bd40cf2ea34 xsnd01.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d ←★これ
■端末2でxauth add を行う
[es006@xdev09 ~]$ xauth add xsnd01-853714-xregistry0/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d
■端末1で追加されたことを確認
[es006@xsnd01-853714-xregistry0 es006]$ xauth list |grep :50 xsnd07.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 d87479acccfef58985781b575f3d4eb4 xsnd04.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 34c0617d410bafafa162a350aa55db0a xsnd00.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd03.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 ee073eccf8726d2e97896ed6363ebe11 xsnd02.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 13cee90ba6b5e5b375a25bd40cf2ea34 xsnd01.edu.tut.ac.jp/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d xsnd01-853714-xregistry0/unix:50 MIT-MAGIC-COOKIE-1 01c509a89b41a533f80d7f86a9711f3d ←★これ
■端末1でANSYS起動 ※時間がかかります
[es006@xsnd01-853714-xregistry0 es006]$ module load ansys19.r2 [es006@xsnd01-853714-xregistry0 es006]$ /common/ansys_hfss-19.r2/AnsysEM19.4/Linux64/ansysedt ANSYS Electromagnetics 19.4 Configuration ========================================= Hostname: xsnd01-853714-xregistry0 User: es006 > Running first-time configuration... - Verifying all software dependencies are available: Done - Retrieving user settings... Done - Applying user settings... Done - Configuring OCX files... Done - Retrieving machine settings... Done - Applying machine settings... Done - Configuring binaries... Done First-time configuration completed successfully.