// mssonly * 共通計算機の使用マニュアル [#v27ed8ef] ** [[IP addressの使用状況>jp/IPlist]] [#b0e4eec1] ** [[サーバー室の温度モニター:http://10.249.84.177]] [#p803a962] ** 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 -- アカウントの追加はsuになり以下の通り。 /usr/sbin/useradd -m new_user passwd new_user -- パスワードの変更は各自のIDでログイン後に以下のようにする。 passwd -- Linuxからの接続は以下のようにする。 ssh anago.cheme.kyoto-u.ac.jp 又は ssh new_user@anago.cheme.kyoto-u.ac.jp -- Windowsからの接続はコマンドプロンプトから以下のようにする、あるいはSSHのクライアントソフトを別途インストールする。 ssh2 anago.cheme.kyoto-u.ac.jp 又は ssh2 new_user@anago.cheme.kyoto-u.ac.jp --外部からsshでanagoに入り,研究室のマシンにmagic packetを送る(WOLで起動する)ことが出来ます。 wakeonlan ##:##:##:##:##:## <-起動すべきマシンのMACアドレス ** ホストマシン ebi [10.249.84.174] について(ファイルサーバー、コンパイル、ジョブの投入) [#h5879dde] *** File System [#q95ecc89] - ユーザーデータ ~''/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 *** tako**, ika**へのジョブの投入 [#r4fd19d7] -並列環境 ~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) -キューの種類 (オプション -q で指定) //~''tako1.q'' : 並列計算用。使用するノードはtako01--05。 //~''tako2.q'' : 並列計算用。ノードはtako06--09,0a。 ~''tako3.q'' : シングル・並列計算共用(8コア)。ノードはtako10--15。 ~''ika_s.q'' : シングル・並列計算共用(4コア)。ノードはika00--05。 ~''ika_p.q'' : シングル・並列計算共用(4コア)。ノードはika06--0a。 ~''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。 -スクリプトファイル (run.sh) の例 >tako1.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 tako1.q #使用キューの指定 #$ -pe openmp 8 #並列環境と使用プロセス数の指定 #$ -v OMP_NUM_THREADS=8 # スレッド数の指定(環境変数を指定する場合は -v を使う) # run ./a.out >tako2.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 ===" 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 -ジョブの投入と管理 ~ジョブの投入は''ebi''から行います。Grid Engineの基本的なコマンドは以下のようです。 ~''qsub'': ジョブの投入コマンド。例えば,スクリプトファイル run.sh を投入する場合 qsub run.sh ~''qstat'': ジョブの状態を確認。(オプション -f でキュー毎のジョブの状態を確認。) ~''qhost'': ノードの状態を確認。 *** 緊急にジョブを投入する必要がある場合 [#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の判断 によります。 *** OpenMP並列のジョブを投入するときの注意点 [#y7f4f690] qsub でOpenMP並列のジョブを投入すると、例えば #$ -pe openmp 2 などとCPU数を指定したとしても、その数ではなく、デフォルト値(ika=4, tako=8, uni=12)の並列数のジョブが流れます。別途OMP_NUM_THREADSの値を設定する必要があり、以下の行をスクリプト内に書けば設定できます。 #$ -v OMP_NUM_THREADS=2 *** Intelコンパイラのバージョンアップメモ [#m8dddb11] - C++ for Linux、Fortran for Linux、Cluster Tool Kit for Linuxをインストールする。 - /opt/intel/i*.*shを確認し、最新版に正しくリンクを張り直す。このファイルは各ノードの/etc/profile.d/i*.*shからシンボリックリンクが貼られており、ログイン時に自動的にbash、cshに反映される。 *** 新規ユーザーを追加する [#ja2caf25] - ebiでスーパーユーザになり以下を実行。 # /usr/sbin/useradd -m USERNAME # passwd USERNAME # cd /var/yp; make - パスワードの変更は、各自のアカウントでログイン後に以下のコマンドで行なう。 yppasswd *** NISの設定 [#y0e1a9e1] - ebiはNISのプライマリサーバー NISドメイン: jstcrestmss NISサーバー(Primary): ebi: 10.249.84.174, 172.16.2.201 NISサーバー(Secondary): tako: 10.249.84.173, 172.16.2.20 *** 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にパスワードを登録する。 -- SWATによる設定 [http://10.249.84.174:901/] -- SWAT->PASSWARD->ローカルマシンのパスワード管理->新規ユーザー追加 *** 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++用のスクリプト作成は成功しなかった。 IP:130.54.130.236 TIME:"2012-12-13 (Thu) 22:38:21" REFERER:"http://multiscale.jp/index.php" USER_AGENT:"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20100101 Firefox/17.0"