// 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アドレス

- OpenVPN

-- クライアントマシンの追加は以下の様に行う。

--- クライアントマシンへのOpenVPNのインストール([[OpenVPN GUI for Windows日本語版:http://www.plum-systems.co.jp/techinfo/openvpn/]], [[公式サイト:http://openvpn.net/]])

--- anagoでの作業(クライアント証明書・秘密鍵作成)
  rootで作業
    
    # cd /etc/openvpn/easy-rsa
    # source vars
    NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
    # ./build-key your_client_name
    Generating a 1024 bit RSA private key
    ..............................++++++
    ........++++++
    writing new private key to 'your_client_name.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [JP]:
    State or Province Name (full name) [Kyoto]:
    Locality Name (eg, city) [Kyoto]:
    Organization Name (eg, company) [anago.cheme.kyoto-u.ac.jp]:
    Organizational Unit Name (eg, section) []:
    Common Name (eg, your name or your server's hostname) [your_client_name]:
    Email Address [ryoichi@cheme.kyoto-u.ac.jp]:
    
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:
    Using configuration from /etc/openvpn/easy-rsa/openssl.cnf
    Check that the request matches the signature
    Signature ok
    The Subject's Distinguished Name is as follows
    countryName           :PRINTABLE:'JP'
    stateOrProvinceName   :PRINTABLE:'Kyoto'
    localityName          :PRINTABLE:'Kyoto'
    organizationName      :PRINTABLE:'anago.cheme.kyoto-u.ac.jp'
    commonName            :T61STRING:'your_client_name'
    emailAddress          :IA5STRING:'ryoichi@cheme.kyoto-u.ac.jp'
    Certificate is to be certified until Feb 23 05:32:19 2018 GMT (3650 days)
    Sign the certificate? [y/n]:y
    
    
    1 out of 1 certificate requests certified, commit? [y/n]y
    Write out database with 1 new entries
    Data Base Updated


--- クライアントマシンでの作業1(CA証明書、クライアント証明書・秘密鍵、TLS認証鍵設置)
  サーバー側から以下のファイルをクライアント側へ持ち込み、
  設定ファイル格納フォルダ(C:\Program Files\OpenVPN\config)へ格納する。
    
    CA証明書(/etc/openvpn/ca.crt)
    クライアント証明書(/etc/openvpn/easy-rsa/keys/your_client_name.crt)
    クライアント秘密鍵(/etc/openvpn/easy-rsa/keys/your_client_name.key)
    TLS認証鍵(/etc/openvpn/ta.key)

--- クライアントマシンでの作業2(クライアント設定ファイル(C:\Program Files\OpenVPN\config\*.ovpn)の作成) 
#ref(anago_tap.ovpn)
  サンプルの設定ファイルanago_tap.ovpnを以下のように変更する。
  
  クライアント証明書・秘密鍵の名前を変更する。
    cert your_client_name.crt
    key your_client_name.key
    
  この2行はWindows XP以前では不要。Vistaではこれがないと動かない。
    route-method exe
    route-delay 2

-- Windowsからの接続手順

--- OpenVPN GUIを管理者権限で起動する。

--- タスクバー上のOpenVPN GUIアイコンを右クリックする。

--- 作成した設定ファイル(*.ovpn)を選択して「接続」する。終了するには「切断」する。

--- コマンドプロンプトで ping 10.249.84.174が通ればOK。

-- 接続が完了すると、クライアントマシンはMSS_Project_LANに直接繋がっているかのように振る舞う。MSS_Project_LANの設定は以下の通り。
    network: 10.249.84.0/255.255.255.0
    subnetmask: 255.255.255.0
    default gateway: 10.249.84.254
    DNS server: 10.224.253.1, 10.224.254.1
    web proxy: proxy.kuins.net:8080
    (自動設定 http://wpad.kuins.net/proxy.pac)
    smtp: semdmail.kuins.net


** ホストマシン 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

- アプリケーション
~''/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です。
-キューの種類 (オプション -q で指定)
~''tako1.q'' : 並列計算用。使用するノードはtako01--05。 
~''tako2.q'' : 並列計算用。ノードはtako06--09,0a。
~''tako3.q'' : 並列計算用。ノードはtako10--15。
~''tako_all.q'' : "大規模"並列計算用。takoの全ノードを使用。下記に注意書き。
~''ika_s.q'' : シングル計算用。ノードはika00-05。
~''ika_p.q''  : 並列計算用。ノードはika06-09,0a。
~''ika1.q'' : 並列計算用。ノードはika10-19,1a-1m。
~''uni1.q'' : 並列計算用。ノードはuni00-06。

-スクリプトファイル (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'': ノードの状態を確認。

-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の判断
によります。

*** 緊急にジョブを投入する必要がある場合 [#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 はユーザの使用を制限しています。


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