学外からMSS_Project_LAN[10.249.84.0/255.255.255.0]へanago.cheme.kyoto-u.ac.jp [133.3.134.16] を経由して到達するには、以下の2つの方法がある。いずれもanagoのrootで作業する必要があるので、希望者は管理者(山本量一:ryoichi@cheme.kyoto-u.ac.jp)に連絡すること。
/usr/sbin/useradd -m new_user passwd new_user
passwd
ssh anago.cheme.kyoto-u.ac.jp又は
ssh new_user@anago.cheme.kyoto-u.ac.jp
ssh2 anago.cheme.kyoto-u.ac.jp又は
ssh2 new_user@anago.cheme.kyoto-u.ac.jp
wakeonlan ##:##:##:##:##:## <-起動すべきマシンのMACアドレス
/home/user_name/ ホームディレクトリ(4.3TB)
/home1/user_name/ 大きなデータの保管領域(16.9TB)
/home2/user_name/ 大きなデータの保管領域(3.3TB)
/home3/user_name/ 大きなデータの保管領域(19.5TB)
du -skm *|sort -nr例えば、個人のディレクトリ使用量を調べるときは
du -sh /home/(username)
/opt/intel/ インテルコンパイラ
/usr/sge/ Sun Grid Engine
OpenMP, Cluster-OpenMP, MPIが使えます。
ノード間並列する際は、コア数の指定はノードのコア数の倍数としてください。(takoは8コア、ikaは4コア。uniは12コア。)
並列環境オプション(-pe)はtakoでは openmp, cluster-openmp-8, mpi-8、ikaではopenmp-4, cluster-openmp-4, mpi-4です。(uniでは数字のところが12)
tako3.q : シングル・並列計算共用(8コア)。ノードはtako10--15。
ika0.q : シングル・並列計算共用(4コア)。ノードはika00--0a。
ika1.q : シングル・並列計算共用(4コア)。ノードはika10--1m。
tuna0.q : シングル・並列計算共用(6コア)。ノードはtuna00--0n。
uni1.q : 並列計算専用(12コア)。ノードはuni00--06。
aji1.q : 並列計算専用(16コア)。ノードはaji00--05。
tako1.qで8CPUのOpenMPの計算を投げる場合 *1
#!/bin/sh #$ -S /bin/sh #シェルの指定 #$ -N username #ジョブ名の指定 #$ -cwd #カレントディレクトリでジョブを実行 #$ -j y #標準出力と標準エラーを1つのファイルに保存 #$ -q tako1.q #使用キューの指定 #$ -pe openmp 8 #並列環境と使用プロセス数の指定 #$ -v OMP_NUM_THREADS=8 # スレッド数の指定(環境変数を指定する場合は -v を使う) # run ./a.outtako2.qで32CPUのMPIの計算を投げる場合
#!/bin/sh #$ -S /bin/sh #$ -N username #$ -cwd #$ -j y #$ -q tako2.q #$ -pe mpi-8 32 # echo "=== START ===" date awk '{print $1;}' $PE_HOSTFILE > mpd.hosts #並列環境のホスト名を取得 mpdboot -n 4 -f mpd.hosts #各ホストでmpdを起動 mpiexec -n 32 -env I_MPI_DEVICE sock ./a.out #MPI計算の実行 mpdallexit #mpdの終了 echo "=== END ===" datetako3.qで24CPUのCluster-OpenMPの計算を投げる場合 *2
#!/bin/sh #$ -S /bin/sh #シェルの指定 #$ -N username #ジョブ名の指定 #$ -cwd #カレントディレクトリでジョブを実行 #$ -j y #標準出力と標準エラーを1つのファイルに保存 #$ -q large.q #使用キューの指定 #$ -pe cluster-openmp-8 24 #並列環境と使用プロセス数の指定 # make initial file (kmp_cluster.ini) echo -n "--hostlist=" > kmp_cluster.tmp awk '{ printf $1",";}' $PE_HOSTFILE >> kmp_cluster.tmp echo "--process_threads=8" >> kmp_cluster.tmp sed 's/,--process_threads/ --process_threads/g' kmp_cluster.tmp > kmp_cluster.ini rm kmp_cluster.tmp # run ./a.out
ジョブの投入はebiから行います。Grid Engineの基本的なコマンドは以下のようです。
qsub: ジョブの投入コマンド。例えば,スクリプトファイル run.sh を投入する場合
qsub run.sh
qstat: ジョブの状態を確認。(オプション -f でキュー毎のジョブの状態を確認。)
qhost: ノードの状態を確認。
qsubでジョブを投入してもなかなか自分のジョブが流れず、〆切までにデータが間に合わない、ということがあると思います。
そのときは、tako_all.q または ika1_all.q を使用すれば、優先してジョブを投入することが可能です。ただし、このキューを使用すると、takoまたはika1で、すでに実行中のジョブが停止されてしまうので、あなたの代わりに誰かが犠牲になります。使用する前に、「緊急にジョブを投入する必要が生じたので、○○さん、ジョブを停止してよいですか?」とあらかじめ確認しましょう。もしかしたら、○○さんも緊急のジョブを走らせているかもしれません!
○○さんのジョブが例えばtako01で動いていた場合(qstatで確認すること)でかつ、○○さんからジョブを止めていいと了承が得られた場合を想定します。以下をスクリプトファイル内で宣言してください。
#$ -pe tako_all.q@tako01 #tako01は○○さんのジョブが流れていたマシン
これを記述したスクリプトをqsubで実行すると、○○さんのジョブがサスペンド状態になり、あなたのジョブが実行されます。あなたのジョブが終われば、○○さんのジョブは再開されます。協力してくれた○○さんには必ずお礼をいいましょう。
注意:tako_all.q, ika1_all.q は後から投入されたものを優先して、先に動いているプログラムをすべて止めます。したがって、tako_all.q@tako01 で動かしていて、あとから別の人がtako_all.q@tako01 でジョブを投げたら、
先に動いていたジョブも止まってしまいます。tako_all.q を使う場合は必ずどのマシンを使うか事前に確認してから使うようにしましょう。
※現在、tako_all.q, ika1_all.q はユーザの使用を制限しています。
root# qconf -au (username) deadlineusers
root# qconf -du (username) deadlineusers
qsub でOpenMP並列のジョブを投入すると、例えば
#$ -pe openmp 2
などとCPU数を指定したとしても、その数ではなく、デフォルト値(ika=4, tako=8, uni=12)の並列数のジョブが流れます。別途OMP_NUM_THREADSの値を設定する必要があり、以下の行をスクリプト内に書けば設定できます。
#$ -v OMP_NUM_THREADS=2
# /usr/sbin/useradd -m USERNAME # passwd USERNAME # cd /var/yp; make
yppasswd
NISドメイン: jstcrestmss NISサーバー(Primary): ebi: 10.249.84.174, 172.16.2.201 NISサーバー(Secondary): tako: 10.249.84.173, 172.16.2.20
\\ebi\pub (public directory for 1koza members) guestアクセス可 \\ebi\hymd (public directory for MSS members) guestアクセス可 \\ebi\your_ID (your home directory) パスワード登録が必要