LoginSignup
3
3

More than 5 years have passed since last update.

TSUBAME 2.5で計算ノードに直接入る

Last updated at Posted at 2015-07-08

概要

東京工業大学GSICのスーパーコンピュータTSUBAME 2.5で,計算ノードに直接ログインします.通常はジョブスクリプトを作成しておいて,PBSが計算ノード上でジョブスクリプトを実行するのですが,GUIアプリケーションを利用するときはPBSから実行できないため,計算ノードに直接ログインする必要があります.また,細かいスクリプトを色々テストしたいときなどにも便利です.

方法は,
1. ジョブスクリプトにsleep 100000とか書いておいて,
2. PBSで計算ノードに投げてもらい (t2sub),
3. t2stat -n1でどのノードに投げられたか確認し,
4. ssh node名とする
という感じです.

TSUBAME利用の手引にも記載があるので,こちらも参照してください.
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/queues.html#queues-ssh

なお,本稿は有料サービスを想定しています.課金していない場合はお試しキューというものを利用できますが,10分しか使えないので,インタラクティブノードで実行したほうがマシかもしれません.
http://tsubame.gsic.titech.ac.jp/node/1269

もう少し便利に

前述の方法の通りなのですが,設定が色々あって割と面倒なので,一括して投げてくれるスクリプトを作成しました.

auto-sleep.sh
#!/usr/bin/bash

CMDNAME=`basename $0`
if [ $# -ne 1 ]; then
    echo "Usage: ./$CMDNAME [Number_of_jobs] (if [Number_of_jobs] == 0, only ssh)"
    exit 1
fi

echo -e "\n *** This script throws sleep-job & ssh to the sleep node. *** \n"

### settings ###
QUE=S
WTIME=23:00:00
ET=1
MEM=50gb
CPU=12
GPU=3
GROUP=t2gXXXXXXX
PRIORITY=0
################

if [ $1 -gt 0 ]; then
    for i in `seq 1 $1`
    do
        echo "sleep 1000000" > sleep.sh
        chmod 755 sleep.sh
        t2sub -j oe -N sleep -W group_list=$GROUP -p $PRIORITY -q $QUE -l walltime=$WTIME -et $ET -l select=1:ncpus=$CPU:gpus=$GPU:mem=$MEM ./sleep.sh
        rm -f sleep.sh
        sleep 3s
    done
fi
echo -e "\n *** Result of t2stat. *** \n"
IFS=$'\n'
LINES=( $( t2stat -n1 | grep "sleep" ) )
node=0
for line in ${LINES[@]}; do
    echo $line
        #echo $node
        host=`echo $line | sed -e "s/^.*[^.]t2\(.*\)\/.*$/t2\1/"`
        #echo $host
        nodelist[$node]=$host
        node=`expr ${node} + 1`
        #echo $i
done
while:
do
    echo -e "\n Node number\n"
    node=0
    for line in ${nodelist[@]}; do
        echo "$node : ${LINES[$node]}"
        node=`expr ${node} + 1`
    done
    echo "$node : end this script"
    echo -e "\n Please input node number.\n"
    read ans
    if [ $ans -eq $node ]; then
        break
    fi
    ssh="ssh ${nodelist[$ans]} -Y"
    echo $ssh
    eval $ssh
    break
done

使い方

$ ./auto-sleep.sh 1
と実行すると,パラメータで設定されたキューを1ノード確保します.
今はSキューを23時間,50GB指定で12CPUコア3GPUで実行すると言って確保しています.
(コア数やGPU数,メモリ数の指定は,直接ログインする場合には全く意味はありません.)

 *** This script throws sleep-job & ssh to the sleep node. *** 

Checking accounting informations...
Checking requested resources...
Submitting a job to PBS...
1557728.t2zpbs01

 *** Result of t2stat. *** 

1557728.t2zpbs0 tonets    S        sleep         --    1  12   50gb 23:00 R   --  t2a000122/0*12

 Node number

0 : 1557728.t2zpbs0 tonets    S        sleep         --    1  12   50gb 23:00 R   --  t2a000122/0*12
1 : end this script

 Please input node number.

0
ssh t2a000122 -Y
tonets@t2a000122:~> 

確保ができた(ステータスがRになった)ら,このように所望のノードの番号(今は0)を入力すると,そのノードにsshしてくれます.

$ ./auto-sleep.sh 0
とすると,ノードの確保は行わず,今確保されているノードに対して選択します.

使用後はwalltimeの時間が過ぎれば自動的に削除されますが,お金が勿体ないのでt2delでジョブを削除しておきましょう.

パラメータについて

以下のパラメータについての解説です.

QUE=S
WTIME=23:00:00
ET=1
MEM=50gb
CPU=12
GPU=3
GROUP=t2gXXXXXXX
PRIORITY=0

キュー

QUE のところに書きます.S/S96/G/L128/L128F/L256/L512という感じです.
各キューについては以下を参照してください.
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/overview.html#id2
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/resources.html#resources-batch
とりあえず.Sを指定しておくのが無難です.

walltimeとet

TSUBAMEのジョブ実行時間は,24時間,48時間,96時間と選べます.
0〜24時間はET=1,24時間〜48時間はET=2,48時間〜96時間はET=3を指定しないと投げられません.ET=2は通常の2倍,ET=3は通常の4倍の課金係数がかかりますのでご注意を.
大規模実行予約ノードの余りであるXキューを狙いたい人は,Sキュー指定で翌朝9時までの残り時間より少ないwalltimeを指定しましょう.

GROUP

TSUBAMEグループを指定します.t2ghogehogeです.

Priorityオプション

PRIORITY=1 とかPRIORITY=2とすると,ジョブ投入の優先度が上がります.
が,課金係数も2倍,4倍と増えますのでご注意を.
ET=3PRIORITY=2を両方指定すると,普段の16倍のお金がかかります.

etオプションとpriorityオプションについてはこちらも参照してください.
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/queues.html#id24

その他

TSUBAME利用の手引に色々詳しく書かれているので,スペック等はこちらから確認して下さい.
http://tsubame.gsic.titech.ac.jp/docs/guides/tsubame2/html/index.html

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3