#author("2019-07-05T20:27:16+09:00","mss","mss")
#author("2019-07-05T21:52:49+09:00","mss","mss")
// mssonly
* User / Admin manuals for lab computers [#v27ed8ef]
** [[List of IP addresses>IpList]] [#b0e4eec1]
** [[Temperature of computer room:http://10.249.84.177]] [#p803a962]
** How to connect lab computers from off-campus network [#q09a3f75]
- PPTP [ [[English:http://www.iimc.kyoto-u.ac.jp/en/services/kuins/vpn/]]/[[日本語:http://www.iimc.kyoto-u.ac.jp/ja/services/kuins/vpn/]]]
-- PPTP server host name: pptpg.iimc.kyoto-u.ac.jp
-- ID: [ECS-ID/SPS-ID]@32240
** Jupyter Hub [#v3eadfb2]
- http://10.249.84.174:8000
- startup
cat cat /etc/rc.d/rc.local
...
nohup /opt/anaconda3/bin/jupyterhub --no-ssl -f /opt/anaconda3/jupyterhub_config.py &
** Mathematica [#dfe08670]
- You can use Mathematica (11.2.0) on ebi via the site license from SCL at Kyoto Univ. The program can be launched only by a fixed single user (uid=lab1, pw:yamamoto)
ssh lab1@ebi
(pw)
mathematica
** Cluster nodes [#l7bca525]
- To do list for adding new cluster machines
-- Make symbolic link: /etc/profile.d/psxevers.*sh -> /opt/intel/psxevars.*sh
# rsh newhost "ln -s /opt/intel/psxevars.* /etc/profile.d/."
** Host machine (ebi) [10.249.84.174] (File server, Compile, Job submission) [#h5879dde]
*** File System [#q95ecc89]
- User data
~''/home/user_name/'' default home directories (30TB)
~''/home1/user_name/'' storage for big data (30TB)
//~''/home2/user_name/'' storage for big data (3.3TB)
~''/home3/user_name/'' storage for big data (20TB)
~''/home4/user_name/'' storage for big data (50TB)
~''/home5/user_name/'' storage for big data (20TB)
- To check disk usage of /home per users
sudo du -skm /home/* | sort -nr
- Applications
~''/opt/intel/'' Intel compilers
~''/usr/sge/'' Sun Grid Engine
*** Job submission [#r4fd19d7]
- Parallel environments
~OpenMP, Cluster-OpenMP, MPI
//~ノード間並列する際は、コア数の指定はノードのコア数の倍数としてください。(takoは8コア、ikaは4コア、tunaは4コア、uniは12コア、ajiは16コア。)
~並列環境オプション(-pe)はtakoでは openmp, cluster-openmp-8, mpi-8、ikaではopenmp-4, cluster-openmp-4, mpi-4です。(uniでは数字のところが12)
-キューの種類 (オプション -q で指定)
//~''tako1.q'' : 並列計算用。使用するノードはtako01--05。
//~''tako2.q'' : 並列計算用。ノードはtako06--09,0a。
~''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。
~''sanma1.q'' : 並列計算専用(24コア)。ノードはsanma00--01。
-スクリプトファイル (run.sh) の例
~tako3.qで8CPUのOpenMPの計算を投げる場合
((Cシェルだと "Warning: no access to tty (Bad file descriptor). Thus no job control in this shell." と出力されるので、Bシェルを指定するように変更しました。by 村島))
#!/bin/sh
#$ -S /bin/sh #シェルの指定
#$ -N username #ジョブ名の指定
#$ -cwd #カレントディレクトリでジョブを実行
#$ -j y #標準出力と標準エラーを1つのファイルに保存
#$ -q tako3.q #使用キューの指定
#$ -pe openmp 8 #並列環境と使用プロセス数の指定
#$ -v OMP_NUM_THREADS=8 # スレッド数の指定(環境変数を指定する場合は -v を使う)
# run
./a.out
~tako3.qで32CPUのMPIの計算を投げる場合
#!/bin/sh
#$ -S /bin/sh
#$ -N username
#$ -cwd
#$ -j y
#$ -q tako3.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 ==="
date
~tako3.qで24CPUのCluster-OpenMPの計算を投げる場合
((kmp_cluster.iniを作成する箇所を修正しました。by 村島))
#!/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
*** ジョブの投入と管理 [#c74edb83]
ジョブの投入は''ebi''から行います。Grid Engineの基本的なコマンドは以下のようです。
- ''qsub'': ジョブの投入コマンド。例えば,スクリプトファイル run.sh を投入する場合
qsub run.sh
- ''qstat'': ジョブの状態を確認。(オプション -f でキュー毎のジョブの状態を確認。)
- ''qhost'': ノードの状態を確認。
*** OpenMP並列のジョブを投入するときの注意点 [#y7f4f690]
qsub でOpenMP並列のジョブを投入すると、例えば
#$ -pe openmp 2
などとCPU数を指定したとしても、その数ではなく、デフォルト値(ika=4, tako=8, uni=12)の並列数のジョブが流れます。別途OMP_NUM_THREADSの値を設定する必要があり、以下の行をスクリプト内に書けば設定できます。
#$ -v OMP_NUM_THREADS=2
*** OS Update [#z64ba89f]
yum update --skip-broken
yum clean all
*** Anaconda Update [#t7e5e5f4]
export PATH="/opt/anaconda3/bin:$PATH"
conda update conda
conda update anaconda
conda update -c conda-forge jupyterhub
conda update notebook
*** Intelコンパイラのバージョンアップメモ [#m8dddb11]
- download and place ###.tgz in ebi:/work.
tar xvfz ###.tgz
cd ###
sh ./install.sh
- /opt/intel/psxevars.*shを確認し、最新版に正しくリンクを張り直す。このファイルは各ノードの/etc/profile.d/psxevers.*shからシンボリックリンクが貼られており、ログイン時に自動的にbash、cshに反映される。
*** GCCのバージョンアップメモ [#w0cbd90e]
- Standard yum repository supports gcc but only up to version 4.2. One can install higher versions using Devtoolset-2 (4.8),
# cd /etc/yum.repos.d/
# wget http://people.centos.org/tru/devtools-2/devtools-2.repo
# yum install devtoolset-2-gcc devtoolset-2-binutils
# yum install devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran
# scl enable devtoolset-2 bash
# gcc -v
Devtoolset-3 (4.9),
# cd /etc/yum.repos.d/
# wget https://copr-fe.cloud.fedoraproject.org/coprs/rhscl/devtoolset-3/repo/epel-6/rhscl-devtoolset-3-epel-6.repo ‘--no-check-certificate
# yum install devtoolset-3-gcc devtoolset-3-binutils
# yum install devtoolset-3-gcc-c++ devtoolset-3-gcc-gfortran
# scl enable devtoolset-3 bash
# gcc -v
or Devtoolset-4 (5.2).
# cd /etc/yum.repos.d/
# wget https://copr.fedorainfracloud.org/coprs/hhorak/devtoolset-4-rebuild-bootstrap2/repo/epel-6/hhorak-devtoolset-4-rebuild-bootstrap2-epel-6.repo
# yum install devtoolset-4-gcc devtoolset-4-binutils devtoolset-4-gcc-c++
# scl enable devtoolset-4 bash
- New gcc/g++ can be found in "/opt/rh/devtoolset-2/root/usr/bin/" and "/opt/rh/devtoolset-3/root/usr/bin/". One may include one of the following lines in ".bash_profile".
source /opt/rh/devtoolset-2/enable
source /opt/rh/devtoolset-3/enable
source /opt/rh/devtoolset-4/enable
*** 新規ユーザーを追加する [#ja2caf25]
- ebiでスーパーユーザになり以下を実行。
# /usr/sbin/useradd -m USERNAME
# passwd USERNAME
# cd /var/yp; make
- パスワードの変更は、各自のアカウントでログイン後に以下のコマンドで行なう。
yppasswd
*** NISの設定 [#y0e1a9e1]
- ebiはNISのプライマリサーバー
NISドメイン: jstcrestmss
NISサーバー(master): ebi: 10.249.84.174, 172.16.2.201
NISサーバー(slave): shake: 10.249.84.173, 172.16.20.201
*** NFSの設定 [#x0f6884e]
- ebi:/homeは10.249.84.0/255.255.255.0に対してNFSマウントを許可している。
- ebiとホームディレクトリを共有にしたければクライアントマシンでNFSの設定を行う。
*** SAMBA [#hafc2aaa]
- Workgroup => HYMD
\\ebi\pub (public directory for 1koza members) guestアクセス可
\\ebi\hymd (public directory for MSS members) guestアクセス可
\\ebi\your_ID (your home directory) パスワード登録が必要
- ウインドウズマシンからebiの自分のhomeディレクトリを参照したければSambaにパスワードを登録する。
- ebiのコマンドラインでの設定
smbpasswd -a (ebiの自分のアカウント名)
- または,SWATによる設定 [http://10.249.84.174:901/]
SWAT->PASSWARD->ローカルマシンのパスワード管理->新規ユーザー追加
- Windowsからebiにアクセスし,上で設定したユーザー名とパスワードを入力・保存する.通常はこれでOKだが,アクセス出来ない時は以下を確認する.
-- コントロールパネル>資格情報の管理->Windows資格情報->[Windows資格情報]
インターネットまたはネットワークのアドレス: ebi
ユーザー名: (ebiの自分のアカウント名)
パスワード: (sambaに登録したパスワード)
*** HDF5 [#k01bc3a0]
- ebi:/opt/hdf5.1.8にhdf5-1.8.4-patch 1 をインストール。
- /opt/hdf5.1.8/binにPATHを追加すれば、h5fcやh5ccでHDF5コードを含んだFortranとCのソースファイルがコンパイルできる。
- h5fcやh5ccで実際に使われているコンパイラとフラッグは"h5fc -show"で確認できる。
- (注)c++用のスクリプト作成は成功しなかった。
** ホストマシン shake [10.249.84.173] について(ファイルサーバー、コンパイル、ジョブの投入) [#r2e9025b]
- アプリケーション
~''/opt/intel/'' インテルコンパイラ
~''/usr/sge/'' Sun Grid Engine
~''/usr/local/cuda'' CUDA
*** ikura0*(GPUマシン)へのジョブの投入 [#r4fd19d7]
-並列環境
~OpenMPが使えます。
~ノード間並列する際は、コア数の指定はノードのコア数の倍数としてください。(ikuraは4コア)
~並列環境オプション(-pe)はikuraでは openmp です。
-キューの種類 (オプション -q で指定)
~''all.q'' : シングル・並列計算共用(4コア)。ノードはikura00--ikura0b。
-スクリプトファイル (run.sh) の例
~all.qで8CPUのOpenMPの計算を投げる場合
#!/bin/sh
#$ -S /bin/sh #シェルの指定
#$ -N username #ジョブ名の指定
#$ -V #qsubを実行したシェルの環境変数を反映
#$ -cwd #カレントディレクトリでジョブを実行
#$ -j y #標準出力と標準エラーを1つのファイルに保存
#$ -q all.q #使用キューの指定
#$ -pe openmp 4 #並列環境と使用プロセス数の指定
#$ -v OMP_NUM_THREADS=4 # スレッド数の指定(環境変数を指定する場合は -v を使う)
# run
./a.out
** !!ここから下は古い情報!! [#m55eb30a]
*** 緊急にジョブを投入する必要がある場合 [#h55ef87d]
~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 はユーザの使用を制限しています。''~
-tako_all.q, ika1_all.q の使用を許可する方法(rootのみ)~
root# qconf -au (username) deadlineusers
-tako_all.q, ika1_all.q の使用を解除する方法(rootのみ)
root# qconf -du (username) deadlineusers
-tako_all.qについての注意~
tako_all.qに関してですが、tako[1-3].qと同じ用に使うことが可能です。
ただ明示的にホストを指定しない限りtakoのどのホストに入るかは判りませんの
でアンバランスが生じる可能性があります。例えば tako_all.qでtako10-15の6
台を使いたい場合は -q "tako_all.q@tako1*" などとしてください(正規表現が
使えます)。
またtako[1-3].qはtako_all.qの従属キューになっていますので、tako_all.qが
使われると''重なったジョブはサスペンドされジョブは止まってしまいます''。
いわずもがなかとは思いますが、サスペンドされたジョブのメモリは開放いたし
ません。足りなくなった場合は一時的に(サスペンドされたジョブが)swapはさ
れるとは思いますがパフォーマンスに影響が出ますのでご注意ください。また
swapはメモリの2倍程度とっているはずですが、それでも足りない場合はどちら
のプロセスがkillされますが、どちらのジョブになるのかはそのときのOSの判断
によります。
*** GWマシン anago [133.3.134.16] について [#d6b2adbe]
学外から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)に連絡すること。
- SSH
-- アカウント(user_name)の追加はsuになり以下の通り。
/usr/sbin/useradd -m user_name
passwd user_name
-- パスワードの変更は各自のIDでログイン後に以下のようにする。
passwd
-- Windowsからの接続はコマンドプロンプトから以下のようにする、あるいはSSHのクライアントソフト(ex. putty)を別途インストールする。
ssh anago.cheme.kyoto-u.ac.jp -l user_name
又は
ssh user_name@anago.cheme.kyoto-u.ac.jp
--外部からsshでanagoに入り,研究室のマシンにmagic packetを送る(WOLで起動する)ことが出来ます。
wakeonlan ##:##:##:##:##:## <-起動すべきマシンのMACアドレス