• The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
#freeze
// 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'' : 並列計算用。ノードはtako10--15。
~''ika_s.q'' : シングル計算用。ノードはika00-05。
~''ika_p.q''  : シングル計算用。ノードはika06-09,0a。
~''ika1.q'' : 並列計算用。ノードはika10-19,1a-1m。
~''uni1.q'' : 並列計算用。ノードはuni00-06。
//~''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。

-スクリプトファイル (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++用のスクリプト作成は成功しなかった。