2015-11-01 16:58:59時点のリビジョン5

メッセージを消す
編集不可のページ History 添付ファイル

 

ページ名: ClusterSystemTips

クラスタシステム利用の Tips

クラスタシステム利用にあたって気づいた便利なノウハウなどの記入をお願いします.

研究ユーザ情報交換用メーリングリストの過去ログ

研究ユーザの情報交換用メーリングリストの過去ログは, http://lists.imc.tut.ac.jp/pipermail/research-users/ で見れます.

使用リソース(メモリ使用量など)の計測

プロセスが使用したリソース(メモリ使用量など)は GNU 版 time コマンド(/usr/bin/time)で計測できます.オプション -v を利用することで,以下のようにプロセスが使用したリソースの詳細が表示されます(Man page of TIME).

-bash-4.1$ /usr/bin/time --version
GNU time 1.7

-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
        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): 3088
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 243
        Voluntary context switches: 3
        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

メモリの使用量は Maximum resident set size で知ることができますが, v1.7 には実際の4倍で表示される(実使用量は表示された値の4分の1)という既知のバグがあります(参考).

GNU 版 time コマンドはクラスタの演算ノードでも利用できますが,結果が標準エラー出力であることに留意する必要があります.

投入しているジョブの一括削除

一般のユーザには qdel コマンドのオプション all が許可されておらず,また,オプション -t が正常に作動しないため,投入しているジョブの一括削除には,以下のようなスクリプトを利用します.

   1 #!/bin/bash
   2 
   3 # This filename is qdel.sh.
   4 
   5 if [ $# -ne 1 -a $# -ne 2 ]; then
   6     echo "Usage: bash $0 [ 'all' | firstId lastId | lastId ]"
   7     exit
   8 fi
   9 
  10 # 第一引数が数値か否か
  11 if expr "$1" : '[0-9]*' > /dev/null ; then
  12     ids=`seq $1 $2`
  13 else
  14     ids=`qstat | cut -d . -f 1 | tail -n +3 | column`
  15 fi
  16 
  17 echo qdel $ids
  18 qdel $ids

第一引数に all を指定することにより,投入しているジョブ(実行中か否かは問いません)の全てを削除します.また,第一引数及び第二引数を利用することにより,削除するジョブIDの範囲を指定することもできます.