computer/linux/torque
の編集
http://siti.dip.jp/wiki/index.php?computer/linux/torque
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
bikefriday
books
BracketName
chemical
computer
computer/equation
computer/gromacs
computer/linux
computer/linux/apache2
computer/linux/cluster
computer/linux/emacs
computer/linux/FreeNAS
computer/linux/iptables
computer/linux/networking
computer/linux/ProFTPD
computer/linux/pukiwiki
computer/linux/RaspberryPi
computer/linux/service
computer/linux/torque
computer/programing
computer/programing/Eclipse
computer/programing/Python
computer/programing/python
computer/programing/Python/matplotlib
computer/programing/regular expression
computer/programing/vba
computer/programing/vmd
computer/windows
computer/windows/command prompt
computer/windows/ffmpeg
computer/windows/ImageJ
computer/windows/Inkscape
computer/windows/service
computer/windows/VBA
computer/windows/WebExpression
english
english/mail
english/P.R. response
english/あ
english/か
english/さ
FormattingRules
FrontPage
gnuplot
Help
InterWiki
InterWikiName
InterWikiSandBox
memo
memo/201902
memo/201903
memo/201904
memo/201905
memo/201907
memo/201911
memo/ai
memo/descri
memo/document
memo/life
memo/message
memo/procedure
memo/record
memo/work
memo/引っ越し
MenuBar
microserver
Notebook
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RecentDeleted
SandBox
ST
testable
WikiEngines
WikiName
WikiWikiWeb
work
YukiWiki
#contents *network construction [#f20a1bcb] Following network is constructed in our Lab. &color(#ff0000){''Head node''}; scf000 ip1:10.34.83.50 Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 8core ip2:192.168.2.200 ┗--swich &color(Blue){''node''}; scf001:192.168.2.1 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz 8core scf002:192.168.2.2 Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 8core scf003:192.168.2.3 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core scf004:192.168.2.4 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core scf005:192.168.2.5 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core scf006:192.168.2.6 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core **NIC setting [#g0a3b5f5] &color(Red){''Head node''}; /etc/network/interfaces #highlighter(){{ auto lo iface lo inet loopback #enp4s0 and enp3s0 mean NIC name #outward connection auto enp4s0 iface enp4s0 inet static address 10.34.83.50 netmask 255.255.255.0 network 10.34.83.0 broadcast 10.34.83.255 gateway 10.34.83.1 dns-nameservers 130.34.40.53 130.34.40.54 #inward connection auto enp3s0 iface enp3s0 inet static address 192.168.2.200 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 }} &color(Blue){''node''}; #highlighter(){{ #auto lo #iface lo inet loopback auto enp0s31f6 iface enp0s31f6 inet static address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.200 dns-nameservers 8.8.8.8 }} ** IP forwarding[#j0b5ad92] &color(Red){''Head node''}; /etc/sysctl.conf #highlighter(){{ # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 #コメントを外す }} **IP masquerade[#w3187eed] &color(Red){''Head node''}; #highlighter(){{ $ sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j MASQUERADE $ sudo iptables-save -c > iptables.rules $ sudo mv iptables.rules /etc/iptables.rules $ sudo mv iptables.rules /etc/iptables.rules }} Load /etc/iptables.rules at startup. /etc/network/if-pre-up.d/iptables-restore #highlighter(){{ #!/bin/bash /sbin/iptables-restore < /etc/iptables.rules exit 0 }} #highlighter(){{ $ sudo chmod 755 iptables-restore }} These setting allow the connection of node computer to internet via the head node. **Host name setting[#k8bb300a] &color(Red){''Head node''}; /etc/hosts #highlighter(){{ #127.0.0.1 localhost 127.0.0.1 scf000 #127.0.1.1 scf000 192.168.2.1 scf001 192.168.2.2 scf002 #192.168.2.200 scf000 #192.168.2.1 scf001 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters }} &color(Blue){''node''}; /etc/hosts #highlighter(){{ 127.0.0.1 localhost #127.0.1.1 scf001 #10.34.83.50 scf000 #192.168.2.200 scf000 scf000.nis 192.168.2.200 scf000 192.168.2.1 scf001 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters }} ''&color(#ff0000){A little more verification is necessary here.};'' **NFS[#zefd2c1f] Share home directory of each calculation node. &color(#ff0000){''Head node''}; #highlighter(){{ $ sudo apt-get install nfs-kernel-server }} /etc/exports #highlighter(){{ /home 192.168.2.0/24(rw,no_root_squash)#&color(Blue){''Not input the space''}; }} &color(Blue){''node''}; #highlighter(){{ $ sudo apt-get install nfs-common }} /etc/fstab #highlighter(){{ scf000:/home /home nfs defaults 0 0 }} ここを変えると、HDDだけをまとめられるかも・・・ 設定後マウント。 #highlighter(){{ $ sudo mount -a }} &color(#0000ff){と、ここで少しめんどくさいことをする。ヘッドノードの /home ディレクトリを共有しようとしているが、このPCが若干クセがある。SSDにインストールしたものの、もう1台HDD(/dev/sdb1)を搭載している。そこで、/home を若干余裕があるHDDに移すことにする。ちなみにこのHDDはmountからする必要がある。}; OS起動時自動マウント デバイス名でドライブを指定することもできるが、OS起動時にデバイス名が変わる可能性があるらしい。そこでUUIDを指定する。 この設定は、NFSのホストサーバのみで行う?''&color(#ff0000){A little more verification is necessary here.};'' #highlighter(){{ $ sudo blkid /dev/sdb1 /dev/sdb1: UUID="3e64f303-0397-4a68-9e8b-9f86ca55b7f8" TYPE="ext4" PARTUUID="9d451ca5-5c7d-41b4-8dc0-4d4b863c0cd2" }} /etc/fstab #highlighter(){{ # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda3 during installation UUID=1ae5f91e-9dd4-4ec4-8006-14f9d6ce9637 / ext4 errors=remount-ro 0 1 # /boot/efi was on /dev/sda1 during installation UUID=E41C-031D /boot/efi vfat umask=0077 0 1 # swap was on /dev/sda5 during installation UUID=411c4262-1b36-48cd-8744-5f06fc3d6b90 none swap sw 0 0 UUID=3e64f303-0397-4a68-9e8b-9f86ca55b7f8 /home ext4 defaults 0 0 #追加 }} ''references'' [[Linux で計算機クラスタを作る (1. ネットワーク構築):http://qiita.com/yubais/items/7c40227a17569dc9d412]] [[HDD増設手順メモ:http://qiita.com/bwtakacy/items/c181f661e8655c42d85a]] [[渋谷生活:http://ext.omo3.com/linux/mke2fs.html]] [[K.Kodama's page:http://www.math.kobe-u.ac.jp/~kodama/tips-mount-optinos.html]] *Installation of TORQUE[#y53f8d56] **TORQUE install in Ubuntu 16.04.4 [#l39ba8f2] I want to use calculation system in Debian GNU/Linux &color(#ff0000){''Head node''}; #highlighter(){{ $ sudo apt-get install torque-server }} &color(Blue){''node''}; #highlighter(){{ $ sudo apt-get install torque-mom torque-client }} **Server name configuration [#q4af9a52] &color(#ff0000){''Head node''}; and &color(Blue){''Node''}; /etc/torque/server_name #highlighter(){{ scf000 }} ヘッドノードの設定。 /var/spool/torque/server_priv/nodes #新規作成 #highlighter(){{ scf001 np=8 scf002 np=8 node003 np=8 node004 np=8 node005 np=8 }} 最初ノード名で(IPアドレスで書くとエラーになる)、np=のあとにはスレッド数を書く。 もし/var/spool/torque/server_priv/arraysというディレクトリが作成されていなければ、作成する #highlighter(){{ $ sudo mkdir /var/spool/torque/server_priv/arrays }} パーミッション設定 #highlighter(){{ $ sudo chmod 777 /var/spool/torque/spool /var/spool/torque/undelivered $ sudo chmod o+t /var/spool/torque/spool /var/spool/torque/undelivered $ sudo chmod 777 /var/spool/torque/spool $ sudo chmod o+t /var/spool/torque/spool }} torqueサーバの設定 #highlighter(){{ $ sudo pbs_server -t create $ sudo qmgr -c "set server scheduling=true" $ sudo qmgr -c "create queue batch queue_type=execution" $ sudo qmgr -c "set queue batch started=true" $ sudo qmgr -c "set queue batch enabled=true" $ sudo qmgr -c "set queue batch resources_default.nodes=1" $ sudo qmgr -c "set queue batch resources_default.walltime=3600" $ sudo qmgr -c "set server default_queue=batch" $ sudo qmgr -c 'set server allow_node_submit = True' }} サーバー、ノードの順に再起動すると認識する。 [[今夜もLab.に独り:http://ezb4.hateblo.jp/entry/2015/06/15/040931]] [[TORQUE:https://wiki.archlinuxjp.org/index.php/TORQUE]] [[CentOS 6でバッチシステムといえばTORQUE(OpenPBS):http://a98.jugem.jp/?eid=433]] [[TORQUE:https://heavywatal.github.io/dev/torque.html]] [[torque (旧OpenPBS):http://mumeiyamibito.0am.jp/doku.php/%E3%82%B5%E3%83%BC%E3%83%90%E9%96%A2%E9%80%A3/torque_pbs]] [[TORQUEのインストールと設定:http://tech.ckme.co.jp/torque.shtml]] [[ジョブスケジューラー torque の設定:http://www.ep.sci.hokudai.ac.jp/~kodama/tebiki/TEBIKI.hikari-torque.htm]] [[黒ぶちメガネのLinuxサーバ構築まとめ:http://www.kurobuti.com/linux_server/?page_id=257]] [[Linux(CentOS 5)で計算機ネットワーク:http://www.rcs.arch.t.u-tokyo.ac.jp/kusuhara/tips/linux/cluster.html#sec6]] [[Linux で計算機クラスタを作る (1. ネットワーク構築):http://qiita.com/yubais/items/7c40227a17569dc9d412]] [[ubuntu 16.04 での pbs torque のインストール:http://qiita.com/hdoi/items/88d3cf93a32747acc7f3]] [[Torque(琉球大学):http://www.cr.ie.u-ryukyu.ac.jp/~game/pukiwiki/index.php?Torque]] [[ネットワークの設定 (Debian/Linux 系):http://www.fml.org/home/fukachan/ja/linux.share.network.debian.html#FTN.AEN8425]] *TORQUE運用 [#s43fa3a3] **ノードの確認 [#g8a99d28] $ pbsnodes #highlighter(){{ scf001 state = job-exclusive np = 8 ntype = cluster jobs = 0/1021.scf000, 1/1022.scf000, 2/1023.scf000, 3/1024.scf000, 4/1025.scf000, 5/1026.scf000, 6/1027.scf000, 7/1028.scf000 status = rectime=1500436617,varattr=,jobs=1021.scf000 1022.scf000 1023.scf000 1024.scf000 1025.scf000 1026.scf000 1027.scf000 1028.scf000,state=free, netload=153556233, gres=,loadave=8.00,ncpus=8,physmem=32630832kb, availmem=4 0144012kb,totmem=42396716kb, idletime=88309,nusers=1,nsessions=8,sessions=976 977 978 979 993 999 1003 1008, uname=Linux scf001 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017x86_64,opsys=linux }} 的なこととが出力される。これは、実行中ノード。 **ジョブの投入 [#w0ae560f] テストジョブの投入 $ echo 'sleep 30' | qsub 基本的にはスクリプトでキューを投入する。 $ qsub jobfile.sh #highlighter(){{ #!/bin/sh #PBS -V #PBS -l nodes=1:ppn=1←ノード数の指定:ノード内のコア数(必須) #PBS -l walltime=720:00:00 #PBS -l nice=19 cd /home/onot/temp ./a.out > out.log }} **投入ジョブの参照 [#u06d5ea5] $ qstat #highlighter(){{ Job id Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 64.scf000 ...ro_nwm5481.sh onot 00:09:39 R batch 65.scf000 ...ro_nwm5482.sh onot 00:13:54 R batch 66.scf000 ...ro_nwm5483.sh onot 0 Q batch 67.scf000 ...ro_nwm5484.sh onot 0 Q batch 68.scf000 ...ro_nwm5485.sh onot 0 Q batch }} 各項目は、下記の通り。 |項目|説明|h |Job id|PBSによって割り振られるジョブ番号| |Name|ジョブ名| |User|ジョブを投入したユーザ名| |Time Use|経過時間(時:分:秒)| |S|ジョブの状態| |Queue|実行中・実行予定のキュー名| ジョブの状態は以下に分類される。 |項目|説明|h |B|ジョブアレイのみに表記される状態(ジョブアレイが起動)| |E|ジョブは実行済みで終了処理中| |H|ジョブは保留状態| |Q|ジョブはキュー待機状態| |R|ジョブは実行中| |S|ジョブはサーバによって中断中(他の優先度の高いジョブに計算リソースが必要になると、ジョブは中段状態となる)| |T|ジョブは移行中| |U|ジョブはワークステーションがビジー状態になったため中断中| |W|ジョブは要求された実行時間になるまで待機中もしくはジョブは何らかの理由で失敗したステージイン要求を指定している| |X|サブジョブのみに表記される状態です。(時間切れにより、サブジョブが終了)| qstat コマンドのオプションの解説 qstat -q システムの全ての queue を表示 qstat -B PBS Server のサマリー情報を表示 qstat -a システムの全てのジョブを表示 qstat -Q 全ての queue のリミット値を表示 qstat -s 全てのジョブをステータスコメント付きで表示 qstat -r 実行中の全てのジョブを表示 qstat -f [jobid] 指定したジョブの詳細な情報を表示 qstat -Qf [queue] 指定したキューの詳細な情報を表示 ジョブ情報に関するqstatコマンドの主なオプション |オプション|機能|h |-a|ユーザのすべてのジョブに対する情報を表示します。要求されたメモリ量や要求された経過時間、ジョブの状態の経過時間などが表示されます。| |-r|-a オプションと同じフォーマットですが、実行中のジョブのみを表示します。| |-f jobID|jobIDに対するもっとも詳細な情報を表示します。なお、f は full を意味します。| キュー情報の参照 qstatコマンドは、キュー情報の参照にも使用できます。 #highlighter(){{ scf000:~> qstat -Q Queue Max Tot Ena Str Que Run Hld Wat Trn Ext T ---------------- --- --- --- --- --- --- --- --- --- --- - batch 0 24 yes yes 16 8 0 0 0 0 E }} |項目|説明|h |Queue|キュー名| |Max|同時実行可能な最大ジョブ数| |Tot|キューに投入されたすべてのジョブ数| |Ena|ジョブが利用可能か否か| |Str|キューに投入されたジョブを実行させるか否か| |Que|同時実行数が何らかの制限値を超えたため、待機の状態にあるジョブ数| |Run|実行中のジョブ数| |Hld|何らかの理由により実行が保留された状態のジョブ数| |Wat|予約されたジョブなど、指定された時間となるまで待機の状態にあるジョブ数| |Trn|移行状態のジョブ数| |Ext|終了状態のジョブ数| |Type|キューのタイプ| キューに関するqstatコマンドの主なオプション |オプション|機能|h |-Q|キューに設定された情報およびキューの状態を表示します。| |-q|キューに設定された情報およびキューの状態を表示します。(-Q とは表示される情報が一部異なります。)| |-Qf Queue|指定したキューの最も詳細な情報を表示します。なお f は full を意味します。| [[計算サービスの使い方と注意事項:http://www.scl.kyoto-u.ac.jp/Attention_Altix/altix_batch_stat.html]] qstat システムの状況を表示 qstat コマンドのオプションの解説 qstat -q システムの全ての queue を表示 qstat -B PBS Server のサマリー情報を表示 qstat -a システムの全てのジョブを表示 qstat -Q 全ての queue のリミット値を表示 qstat -s 全てのジョブをステータスコメント付きで表示 qstat -r 実行中の全てのジョブを表示 qstat -f [jobid] 指定したジョブの詳細な情報を表示 qstat -Qf [queue] 指定したキューの詳細な情報を表示 ネットワークの設定 (Debian/Linux 系) 現在の設定状況の確認 $ sudo ifconfig -a DHCPによりIPをもらうと /etc/network/interfaces #highlighter(){{ # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback }} 固定 IP アドレスの設定(Debian/Linux 系) /etc/network/interfaces #highlighter(){{ auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.0.0 gateway 192.168.0.1 dns-nameservers 192.168.0.2 }} $ sudo /etc/init.d/networking stop $ sudo /etc/init.d/networking start で反映されるはずなのですが、 最近の Debian (6 だか 7 だか)の起動ファイルは少しおかしいので、 変更が反映されないことがある。 そういうわけで再起動するほうが無難です。 英語表記は「Sequential Read」。シーケンシャルアクセスの、特に「読出し」方法のこと。HDDなどの記録媒体を先頭から順番に読出していくアクセス方法を言う。 先頭から順番に読出すため、後尾データへのアクセスに時間がかかるという特徴がある。同様に、読出しが常に先頭から行われるため、シークタイムが少ない。 ランダムアクセスとは、記憶装置にアクセスする手法の一つで、読み書きしたいデータの場所をインデックスなどの位置情報をもとに割り出し、直接その場所にアクセスする方法。必要な部分だけにアクセスできるため、データにランダムにアクセスした場合、平均所要時間は短くなる。 枠線を書くBorder http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20070304/gnuplot-ja-div/node162.html gnuplotで実験データのアニメーションを作る http://kengo700.hatenablog.com/entry/2016/01/16/gnuplot_%E3%81%A7%E5%AE%9F%E9%A8%93%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BD%9C%E3%82%8B gnuplotコマンド集 http://www.gnuplot-cmd.com/index.html /etc/samba/smb.conf ## Browsing/Identification ### #highlighter(){{ dos charset = cp932 unix charset = utf-8 }} MySqlについて とりあえず http://siti.dip.jp/zzz/pma/ にてphpMyAdminが起動するようにしてある。 Debian Jessie に MySQL を入れてみた(phpMyAdminの導入について) http://namotch.hatenablog.com/entry/2015/06/12/223808 データベースサーバー構築(MySQL) http://mysql.javarou.com/dat/000389.html MySQL 逆引きリファレンスについて http://mysql.javarou.com/ MySQL初心者入門講座 http://mysqlweb.net/ Torque(PBS)バッチシステム取扱い説明 ・現在製品にプレインストールされている Torque について 使用方法およびカスタマイズ方法を紹介いたします。 ・ 基本スクリプトのテンプレートを解説いたします。 mpi を使用したジョブの例 --------------------------------------------- #!/bin/sh #PBS -l ncpus = 4 ←コア数の指定(使用したい全ノードのコア数の指定:必須ではない) #PBS -l nodes=1:ppn = 8 ←ノード数の指定:ノード内のコア数(必須) cd $PBS_O_WORKDIR ←PBS に渡す変数(必須) mpirun -np 4 ./himeM4 ←実行ファイルの指定(必須) --------------------------------------------- 1.Torque ノードを指定してジョブを投入する方法 ・Torque の設定変更なしで、ノードを指定してジョブを投入する 方法をご案内いたします。 用途等:計算ノードが複数あるが、ある特定ノードに対し ジョブを割り当てたくない、もしくはジョブを割り当てたい と言う場合に有効です。 変更箇所:ユーザーのジョブ投入スクリプト変更で対応 --------------------------------------------- #!/bin/sh #PBS -l ncpus = 4 ←コア数の指定(使用したい全ノードのコア数の指定:必須ではない) #PBS -l nodes=1:ppn = 8:vt02.localdomain←ノード数の指定:ノードの指定(必須) cd $PBS_O_WORKDIR ←PBS に渡す変数(必須) mpirun -np 4 ./himeM4 ←実行ファイルの指定(必須) --------------------------------------------- 2 2.Torque グループの作成方法 ・グループを設定し 用途等:Torque に参加しているマシンが複数台ある状態で 所属グループ等を分けて特定グループに所属する 特定のノードにジョブをスポットで割り当てる ことができます。 *設定については root(スーパーユーザー)で作業 [#ed561659] 変更必要ノード:管理ノードのみ 変更箇所:/var/spool/torque/server_priv/nodes * 下記変更例は 4 ノードのクラスターに各 A、B というグループを割り当てて グループを作成しています。 書き方は np=8 の後にスペースを空け文字を入れます。 変更例:変更前 vt001.localdomain np=8 vt002.localdomain np=8 vt003.localdomain np=8 vt004.localdomain np=8 変更例:変更後 vt001.localdomain np=8 A vt002.localdomain np=8 A vt003.localdomain np=8 B vt004.localdomain np=8 B 変更後リブートもしくは /etc/init.d/pbs stop /etc/init.d/pbs start を実行してください。 ------------------------------------------ --------------------------------------- 作成したグループを指定してジョブを投入する方法です --------------------------------------- #!/bin/sh #PBS -l ncpus=8 #PBS -l nodes=1:ppn=8:B ←ノードの後ろに:で区切ってグループを指定 cd $PBS_O_WORKDIR mpirun -np 8 ./himeM8 --------------------------------- 3.Torque の queue 作成方法 root(スーパーユーザー)でログインして作業します。 下記は 16CPU を使用して流す queue を batch16 とし 8CPU を使用して流す queue を batch8 と名前をつけて作成する時のパラメータのリストです。 (batch8 は batch16 よりもジョブ投入時のプライオリティを上げてあります。) * 例ですので、クラスターの計算ノードや環境により 適宜変更してください。 ---------------------------------------------------------- # # Create and define queue batch16 # create queue batch16 set queue batch16 queue_type = Execution set queue batch16 Priority = 70 set queue batch16 max_running = 2 set queue batch16 resources_max.ncpus = 16 set queue batch16 resources_max.nodes = 2 set queue batch16 resources_min.ncpus = 8 set queue batch16 resources_min.neednodes = 2:ppn=8 set queue batch16 resources_min.nodes = 2:ppn=8 set queue batch16 resources_default.ncpus = 16 set queue batch16 resources_default.neednodes = 2:ppn=16 set queue batch16 resources_default.nodes = 2:ppn=16 set queue batch16 max_user_run = 2 set queue batch16 enabled = True set queue batch16 started = True # # Create and define queue batch8 # create queue batch8 set queue batch8 queue_type = Execution 5 set queue batch8 Priority = 60 set queue batch8 max_running = 4 set queue batch8 resources_max.ncpus = 8 set queue batch8 resources_max.nodes = 1 set queue batch8 resources_min.ncpus = 8 set queue batch8 resources_min.neednodes = 1:ppn=8 set queue batch8 resources_min.nodes = 1:ppn=8 set queue batch8 resources_default.ncpus = 8 set queue batch8 resources_default.neednodes = 1:ppn=8 set queue batch8 resources_default.nodes = 1:ppn=8 set queue batch8 max_user_run = 2 set queue batch8 enabled = True set queue batch8 started = True ---------------------------------------------------------- 上記キューをテキストファイル等にし適当な場所に置き、キューマネージャに 読み込むコマンドを実行します。(管理ノード) 例: ↓キーボードの\マークの上のパイプです cat queue.txt | qmgr 作成後クラスターを再起動します。 作成したキューが有効かどうか確認します。 qstat -q 作成したキューを使いジョブを投入します。 -------------------------------- #!/bin/sh #PBS -l ncpus=8 #PBS -l nodes=1:ppn=8 #PBS ‒q batch8 ←ここを追加してキューを指定 cd $PBS_O_WORKDIR NPROCS=`wc -l < $PBS_NODEFILE` mpirun -np 8 ./himeM8 -------------------------------- 6 4.Torque(PBS)コマンド集 Torqueで主に使用するコマンドの解説 ジョブ投入時のスクリプトのオプション コマンド名 内容 qsub ジョブを投入する qdel ジョブを削除する qstat キュー、ジョブの状態を表示する pbsnodes 計算ノードのステータスを確認する -N jobname ジョブの名前を指定 -q queue_name ジョブを投入するキューを指定 -o output_file 標準出力をファイルに出力 -e error_file エラー出力をファイルに出力 -l ncpus 1 つのジョブに必要な CPU 数を指定 -l nodes 1 つのジョブに必要なノード数 7 MPI ジョブ用スクリプト例 ----------------------------------- #!/bin/bash #PBS -N himeM8.out #PBS -j oe #PBS -l ncpus=8 #PBS -l nodes=2:ppn=4 #PBS -q default cd $PBS_O_WORKDIR mpirun -n 8 ./himeM8 ----------------------------------- シングルコア用スクリプトの例 ----------------------------------- #!/bin/sh #PBS -j oe #PBS -l nodes=1 cd $PBS_O_WORKDIR ./a.out ----------------------------------- *細かいメモ [#t4b50824] **rootアカウント [#a8296e0c] Ubuntuではセキュリティの都合上、デフォルトでrootアカウントが無効になっている。 特に理由がなければ、rootアカウントは無効のままにしておく。 rootアカウントを有効にする $ sudo passwd root rootアカウントを無効にする $ sudo passwd -l root また、sudo による全管理者権限が与えられたユーザーであれば、 sudo のオプション指定で root 権限のシェルを取得可能。 $ sudo -s [sudo] password for onot: # 自身のパスワード **ディスクシステム基本 [#h9ab6b8b] 各ノードに計算ファイルを投げて、それぞれのローカルディレクトリで計算させるため、作業用ディレクトリを作製。 $ sudo mkdir /var/local/work $ sudo mkdir /var/local/work/onot $ sudo mkdir /var/local/work/furukawa $ sudo chown -R onot /var/local/work/onot $ sudo chown -R furukawa /var/local/work/furukawa ファイルサーバーのマウント。これは、計算ノード以外も設定しておく。 sudo mkdir /mnt/scf051 sudo mkdir /mnt/scf051/onot sudo mkdir /mnt/scf051/furukawa sudo mkdir /mnt/scf051/share sudo mount -t nfs 10.34.83.51:/mnt/scf051/onot /mnt/scf051/onot sudo mount -t nfs 10.34.83.51:/mnt/scf051/furukawa /mnt/scf051/furukawa sudo mount -t nfs 10.34.83.51:/mnt/scf051/share /mnt/scf051/share これは/etc/fstabに記述しておき、起動と同時にマウントするようにしておく。 #highlighter(){{ 10.34.83.51:/mnt/scf051/onot /mnt/scf051/onot nfs defaults 0 0 10.34.83.51:/mnt/scf051/furukawa /mnt/scf051/furukawa nfs defaults 0 0 10.34.83.51:/mnt/scf051/share /mnt/scf051/share nfs defaults 0 0 }} **torque注意点 [#x1709de5] デフォルトログインシェルをヘッドノード、計算ノードでそろえておくこと。 研究室使用PCは基本的にtcshを使う。 **ubuntsuインストール時の注意 [#l461f05e] ubuntuをインストールするとき、パーティションをは下記 /home swap boot 要検討。 **NFSによるNAS(FreeNAS)のマウント [#z60ba7eb] user idおよびgroup id をそろえておく必要がある。 FreeNASであればsshでアクセスできるので、 $ id uid=1000(onot) gid=1000(onot) groups=1000(onot),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare) と確認できる。 そこで、接続したいPC側のuser idおよびgroup idを変更する。ユーザーがログイン中だとはじかれるので注意。 $sudo usermod -u 1000 onot $sudo groupmod -g 1000 onot **mount時のトラブル [#v777d730] umount で target is busy となったときの対処法。 #highlighter(){{ onot@scf000:/work/onot$ sudo umount /work umount: /work: target is busy (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1).) }} #highlighter(){{ onot@scf000:/work/onot$ sudo fuser -muv /work onot@scf000:/work/onot$ sudo fuser -muv /work USER PID ACCESS COMMAND /work: root kernel mount (root)/work onot 26720 ..c.. (onot)bash root 26977 ..c.. (root)sudo }} ここで、bashを終了させる必要がああるけれど、終了させるとSSHクライアントまで落ちてしまうため、SSHクライアントの再起動が必要。 onot@scf000:/work/onot$ sudo kill -9 26720 #contents
タイムスタンプを変更しない
#contents *network construction [#f20a1bcb] Following network is constructed in our Lab. &color(#ff0000){''Head node''}; scf000 ip1:10.34.83.50 Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz 8core ip2:192.168.2.200 ┗--swich &color(Blue){''node''}; scf001:192.168.2.1 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz 8core scf002:192.168.2.2 Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz 8core scf003:192.168.2.3 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core scf004:192.168.2.4 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core scf005:192.168.2.5 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core scf006:192.168.2.6 Intel(R) Core(TM) i7-3930K CPU @ 3.20GHz 12core **NIC setting [#g0a3b5f5] &color(Red){''Head node''}; /etc/network/interfaces #highlighter(){{ auto lo iface lo inet loopback #enp4s0 and enp3s0 mean NIC name #outward connection auto enp4s0 iface enp4s0 inet static address 10.34.83.50 netmask 255.255.255.0 network 10.34.83.0 broadcast 10.34.83.255 gateway 10.34.83.1 dns-nameservers 130.34.40.53 130.34.40.54 #inward connection auto enp3s0 iface enp3s0 inet static address 192.168.2.200 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 }} &color(Blue){''node''}; #highlighter(){{ #auto lo #iface lo inet loopback auto enp0s31f6 iface enp0s31f6 inet static address 192.168.2.1 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.2.255 gateway 192.168.2.200 dns-nameservers 8.8.8.8 }} ** IP forwarding[#j0b5ad92] &color(Red){''Head node''}; /etc/sysctl.conf #highlighter(){{ # Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 #コメントを外す }} **IP masquerade[#w3187eed] &color(Red){''Head node''}; #highlighter(){{ $ sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/255.255.255.0 -j MASQUERADE $ sudo iptables-save -c > iptables.rules $ sudo mv iptables.rules /etc/iptables.rules $ sudo mv iptables.rules /etc/iptables.rules }} Load /etc/iptables.rules at startup. /etc/network/if-pre-up.d/iptables-restore #highlighter(){{ #!/bin/bash /sbin/iptables-restore < /etc/iptables.rules exit 0 }} #highlighter(){{ $ sudo chmod 755 iptables-restore }} These setting allow the connection of node computer to internet via the head node. **Host name setting[#k8bb300a] &color(Red){''Head node''}; /etc/hosts #highlighter(){{ #127.0.0.1 localhost 127.0.0.1 scf000 #127.0.1.1 scf000 192.168.2.1 scf001 192.168.2.2 scf002 #192.168.2.200 scf000 #192.168.2.1 scf001 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters }} &color(Blue){''node''}; /etc/hosts #highlighter(){{ 127.0.0.1 localhost #127.0.1.1 scf001 #10.34.83.50 scf000 #192.168.2.200 scf000 scf000.nis 192.168.2.200 scf000 192.168.2.1 scf001 # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters }} ''&color(#ff0000){A little more verification is necessary here.};'' **NFS[#zefd2c1f] Share home directory of each calculation node. &color(#ff0000){''Head node''}; #highlighter(){{ $ sudo apt-get install nfs-kernel-server }} /etc/exports #highlighter(){{ /home 192.168.2.0/24(rw,no_root_squash)#&color(Blue){''Not input the space''}; }} &color(Blue){''node''}; #highlighter(){{ $ sudo apt-get install nfs-common }} /etc/fstab #highlighter(){{ scf000:/home /home nfs defaults 0 0 }} ここを変えると、HDDだけをまとめられるかも・・・ 設定後マウント。 #highlighter(){{ $ sudo mount -a }} &color(#0000ff){と、ここで少しめんどくさいことをする。ヘッドノードの /home ディレクトリを共有しようとしているが、このPCが若干クセがある。SSDにインストールしたものの、もう1台HDD(/dev/sdb1)を搭載している。そこで、/home を若干余裕があるHDDに移すことにする。ちなみにこのHDDはmountからする必要がある。}; OS起動時自動マウント デバイス名でドライブを指定することもできるが、OS起動時にデバイス名が変わる可能性があるらしい。そこでUUIDを指定する。 この設定は、NFSのホストサーバのみで行う?''&color(#ff0000){A little more verification is necessary here.};'' #highlighter(){{ $ sudo blkid /dev/sdb1 /dev/sdb1: UUID="3e64f303-0397-4a68-9e8b-9f86ca55b7f8" TYPE="ext4" PARTUUID="9d451ca5-5c7d-41b4-8dc0-4d4b863c0cd2" }} /etc/fstab #highlighter(){{ # /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda3 during installation UUID=1ae5f91e-9dd4-4ec4-8006-14f9d6ce9637 / ext4 errors=remount-ro 0 1 # /boot/efi was on /dev/sda1 during installation UUID=E41C-031D /boot/efi vfat umask=0077 0 1 # swap was on /dev/sda5 during installation UUID=411c4262-1b36-48cd-8744-5f06fc3d6b90 none swap sw 0 0 UUID=3e64f303-0397-4a68-9e8b-9f86ca55b7f8 /home ext4 defaults 0 0 #追加 }} ''references'' [[Linux で計算機クラスタを作る (1. ネットワーク構築):http://qiita.com/yubais/items/7c40227a17569dc9d412]] [[HDD増設手順メモ:http://qiita.com/bwtakacy/items/c181f661e8655c42d85a]] [[渋谷生活:http://ext.omo3.com/linux/mke2fs.html]] [[K.Kodama's page:http://www.math.kobe-u.ac.jp/~kodama/tips-mount-optinos.html]] *Installation of TORQUE[#y53f8d56] **TORQUE install in Ubuntu 16.04.4 [#l39ba8f2] I want to use calculation system in Debian GNU/Linux &color(#ff0000){''Head node''}; #highlighter(){{ $ sudo apt-get install torque-server }} &color(Blue){''node''}; #highlighter(){{ $ sudo apt-get install torque-mom torque-client }} **Server name configuration [#q4af9a52] &color(#ff0000){''Head node''}; and &color(Blue){''Node''}; /etc/torque/server_name #highlighter(){{ scf000 }} ヘッドノードの設定。 /var/spool/torque/server_priv/nodes #新規作成 #highlighter(){{ scf001 np=8 scf002 np=8 node003 np=8 node004 np=8 node005 np=8 }} 最初ノード名で(IPアドレスで書くとエラーになる)、np=のあとにはスレッド数を書く。 もし/var/spool/torque/server_priv/arraysというディレクトリが作成されていなければ、作成する #highlighter(){{ $ sudo mkdir /var/spool/torque/server_priv/arrays }} パーミッション設定 #highlighter(){{ $ sudo chmod 777 /var/spool/torque/spool /var/spool/torque/undelivered $ sudo chmod o+t /var/spool/torque/spool /var/spool/torque/undelivered $ sudo chmod 777 /var/spool/torque/spool $ sudo chmod o+t /var/spool/torque/spool }} torqueサーバの設定 #highlighter(){{ $ sudo pbs_server -t create $ sudo qmgr -c "set server scheduling=true" $ sudo qmgr -c "create queue batch queue_type=execution" $ sudo qmgr -c "set queue batch started=true" $ sudo qmgr -c "set queue batch enabled=true" $ sudo qmgr -c "set queue batch resources_default.nodes=1" $ sudo qmgr -c "set queue batch resources_default.walltime=3600" $ sudo qmgr -c "set server default_queue=batch" $ sudo qmgr -c 'set server allow_node_submit = True' }} サーバー、ノードの順に再起動すると認識する。 [[今夜もLab.に独り:http://ezb4.hateblo.jp/entry/2015/06/15/040931]] [[TORQUE:https://wiki.archlinuxjp.org/index.php/TORQUE]] [[CentOS 6でバッチシステムといえばTORQUE(OpenPBS):http://a98.jugem.jp/?eid=433]] [[TORQUE:https://heavywatal.github.io/dev/torque.html]] [[torque (旧OpenPBS):http://mumeiyamibito.0am.jp/doku.php/%E3%82%B5%E3%83%BC%E3%83%90%E9%96%A2%E9%80%A3/torque_pbs]] [[TORQUEのインストールと設定:http://tech.ckme.co.jp/torque.shtml]] [[ジョブスケジューラー torque の設定:http://www.ep.sci.hokudai.ac.jp/~kodama/tebiki/TEBIKI.hikari-torque.htm]] [[黒ぶちメガネのLinuxサーバ構築まとめ:http://www.kurobuti.com/linux_server/?page_id=257]] [[Linux(CentOS 5)で計算機ネットワーク:http://www.rcs.arch.t.u-tokyo.ac.jp/kusuhara/tips/linux/cluster.html#sec6]] [[Linux で計算機クラスタを作る (1. ネットワーク構築):http://qiita.com/yubais/items/7c40227a17569dc9d412]] [[ubuntu 16.04 での pbs torque のインストール:http://qiita.com/hdoi/items/88d3cf93a32747acc7f3]] [[Torque(琉球大学):http://www.cr.ie.u-ryukyu.ac.jp/~game/pukiwiki/index.php?Torque]] [[ネットワークの設定 (Debian/Linux 系):http://www.fml.org/home/fukachan/ja/linux.share.network.debian.html#FTN.AEN8425]] *TORQUE運用 [#s43fa3a3] **ノードの確認 [#g8a99d28] $ pbsnodes #highlighter(){{ scf001 state = job-exclusive np = 8 ntype = cluster jobs = 0/1021.scf000, 1/1022.scf000, 2/1023.scf000, 3/1024.scf000, 4/1025.scf000, 5/1026.scf000, 6/1027.scf000, 7/1028.scf000 status = rectime=1500436617,varattr=,jobs=1021.scf000 1022.scf000 1023.scf000 1024.scf000 1025.scf000 1026.scf000 1027.scf000 1028.scf000,state=free, netload=153556233, gres=,loadave=8.00,ncpus=8,physmem=32630832kb, availmem=4 0144012kb,totmem=42396716kb, idletime=88309,nusers=1,nsessions=8,sessions=976 977 978 979 993 999 1003 1008, uname=Linux scf001 4.4.0-83-generic #106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017x86_64,opsys=linux }} 的なこととが出力される。これは、実行中ノード。 **ジョブの投入 [#w0ae560f] テストジョブの投入 $ echo 'sleep 30' | qsub 基本的にはスクリプトでキューを投入する。 $ qsub jobfile.sh #highlighter(){{ #!/bin/sh #PBS -V #PBS -l nodes=1:ppn=1←ノード数の指定:ノード内のコア数(必須) #PBS -l walltime=720:00:00 #PBS -l nice=19 cd /home/onot/temp ./a.out > out.log }} **投入ジョブの参照 [#u06d5ea5] $ qstat #highlighter(){{ Job id Name User Time Use S Queue ------------------------- ---------------- --------------- -------- - ----- 64.scf000 ...ro_nwm5481.sh onot 00:09:39 R batch 65.scf000 ...ro_nwm5482.sh onot 00:13:54 R batch 66.scf000 ...ro_nwm5483.sh onot 0 Q batch 67.scf000 ...ro_nwm5484.sh onot 0 Q batch 68.scf000 ...ro_nwm5485.sh onot 0 Q batch }} 各項目は、下記の通り。 |項目|説明|h |Job id|PBSによって割り振られるジョブ番号| |Name|ジョブ名| |User|ジョブを投入したユーザ名| |Time Use|経過時間(時:分:秒)| |S|ジョブの状態| |Queue|実行中・実行予定のキュー名| ジョブの状態は以下に分類される。 |項目|説明|h |B|ジョブアレイのみに表記される状態(ジョブアレイが起動)| |E|ジョブは実行済みで終了処理中| |H|ジョブは保留状態| |Q|ジョブはキュー待機状態| |R|ジョブは実行中| |S|ジョブはサーバによって中断中(他の優先度の高いジョブに計算リソースが必要になると、ジョブは中段状態となる)| |T|ジョブは移行中| |U|ジョブはワークステーションがビジー状態になったため中断中| |W|ジョブは要求された実行時間になるまで待機中もしくはジョブは何らかの理由で失敗したステージイン要求を指定している| |X|サブジョブのみに表記される状態です。(時間切れにより、サブジョブが終了)| qstat コマンドのオプションの解説 qstat -q システムの全ての queue を表示 qstat -B PBS Server のサマリー情報を表示 qstat -a システムの全てのジョブを表示 qstat -Q 全ての queue のリミット値を表示 qstat -s 全てのジョブをステータスコメント付きで表示 qstat -r 実行中の全てのジョブを表示 qstat -f [jobid] 指定したジョブの詳細な情報を表示 qstat -Qf [queue] 指定したキューの詳細な情報を表示 ジョブ情報に関するqstatコマンドの主なオプション |オプション|機能|h |-a|ユーザのすべてのジョブに対する情報を表示します。要求されたメモリ量や要求された経過時間、ジョブの状態の経過時間などが表示されます。| |-r|-a オプションと同じフォーマットですが、実行中のジョブのみを表示します。| |-f jobID|jobIDに対するもっとも詳細な情報を表示します。なお、f は full を意味します。| キュー情報の参照 qstatコマンドは、キュー情報の参照にも使用できます。 #highlighter(){{ scf000:~> qstat -Q Queue Max Tot Ena Str Que Run Hld Wat Trn Ext T ---------------- --- --- --- --- --- --- --- --- --- --- - batch 0 24 yes yes 16 8 0 0 0 0 E }} |項目|説明|h |Queue|キュー名| |Max|同時実行可能な最大ジョブ数| |Tot|キューに投入されたすべてのジョブ数| |Ena|ジョブが利用可能か否か| |Str|キューに投入されたジョブを実行させるか否か| |Que|同時実行数が何らかの制限値を超えたため、待機の状態にあるジョブ数| |Run|実行中のジョブ数| |Hld|何らかの理由により実行が保留された状態のジョブ数| |Wat|予約されたジョブなど、指定された時間となるまで待機の状態にあるジョブ数| |Trn|移行状態のジョブ数| |Ext|終了状態のジョブ数| |Type|キューのタイプ| キューに関するqstatコマンドの主なオプション |オプション|機能|h |-Q|キューに設定された情報およびキューの状態を表示します。| |-q|キューに設定された情報およびキューの状態を表示します。(-Q とは表示される情報が一部異なります。)| |-Qf Queue|指定したキューの最も詳細な情報を表示します。なお f は full を意味します。| [[計算サービスの使い方と注意事項:http://www.scl.kyoto-u.ac.jp/Attention_Altix/altix_batch_stat.html]] qstat システムの状況を表示 qstat コマンドのオプションの解説 qstat -q システムの全ての queue を表示 qstat -B PBS Server のサマリー情報を表示 qstat -a システムの全てのジョブを表示 qstat -Q 全ての queue のリミット値を表示 qstat -s 全てのジョブをステータスコメント付きで表示 qstat -r 実行中の全てのジョブを表示 qstat -f [jobid] 指定したジョブの詳細な情報を表示 qstat -Qf [queue] 指定したキューの詳細な情報を表示 ネットワークの設定 (Debian/Linux 系) 現在の設定状況の確認 $ sudo ifconfig -a DHCPによりIPをもらうと /etc/network/interfaces #highlighter(){{ # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback }} 固定 IP アドレスの設定(Debian/Linux 系) /etc/network/interfaces #highlighter(){{ auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.0.10 netmask 255.255.0.0 gateway 192.168.0.1 dns-nameservers 192.168.0.2 }} $ sudo /etc/init.d/networking stop $ sudo /etc/init.d/networking start で反映されるはずなのですが、 最近の Debian (6 だか 7 だか)の起動ファイルは少しおかしいので、 変更が反映されないことがある。 そういうわけで再起動するほうが無難です。 英語表記は「Sequential Read」。シーケンシャルアクセスの、特に「読出し」方法のこと。HDDなどの記録媒体を先頭から順番に読出していくアクセス方法を言う。 先頭から順番に読出すため、後尾データへのアクセスに時間がかかるという特徴がある。同様に、読出しが常に先頭から行われるため、シークタイムが少ない。 ランダムアクセスとは、記憶装置にアクセスする手法の一つで、読み書きしたいデータの場所をインデックスなどの位置情報をもとに割り出し、直接その場所にアクセスする方法。必要な部分だけにアクセスできるため、データにランダムにアクセスした場合、平均所要時間は短くなる。 枠線を書くBorder http://takeno.iee.niit.ac.jp/~foo/gp-jman/data/20070304/gnuplot-ja-div/node162.html gnuplotで実験データのアニメーションを作る http://kengo700.hatenablog.com/entry/2016/01/16/gnuplot_%E3%81%A7%E5%AE%9F%E9%A8%93%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BD%9C%E3%82%8B gnuplotコマンド集 http://www.gnuplot-cmd.com/index.html /etc/samba/smb.conf ## Browsing/Identification ### #highlighter(){{ dos charset = cp932 unix charset = utf-8 }} MySqlについて とりあえず http://siti.dip.jp/zzz/pma/ にてphpMyAdminが起動するようにしてある。 Debian Jessie に MySQL を入れてみた(phpMyAdminの導入について) http://namotch.hatenablog.com/entry/2015/06/12/223808 データベースサーバー構築(MySQL) http://mysql.javarou.com/dat/000389.html MySQL 逆引きリファレンスについて http://mysql.javarou.com/ MySQL初心者入門講座 http://mysqlweb.net/ Torque(PBS)バッチシステム取扱い説明 ・現在製品にプレインストールされている Torque について 使用方法およびカスタマイズ方法を紹介いたします。 ・ 基本スクリプトのテンプレートを解説いたします。 mpi を使用したジョブの例 --------------------------------------------- #!/bin/sh #PBS -l ncpus = 4 ←コア数の指定(使用したい全ノードのコア数の指定:必須ではない) #PBS -l nodes=1:ppn = 8 ←ノード数の指定:ノード内のコア数(必須) cd $PBS_O_WORKDIR ←PBS に渡す変数(必須) mpirun -np 4 ./himeM4 ←実行ファイルの指定(必須) --------------------------------------------- 1.Torque ノードを指定してジョブを投入する方法 ・Torque の設定変更なしで、ノードを指定してジョブを投入する 方法をご案内いたします。 用途等:計算ノードが複数あるが、ある特定ノードに対し ジョブを割り当てたくない、もしくはジョブを割り当てたい と言う場合に有効です。 変更箇所:ユーザーのジョブ投入スクリプト変更で対応 --------------------------------------------- #!/bin/sh #PBS -l ncpus = 4 ←コア数の指定(使用したい全ノードのコア数の指定:必須ではない) #PBS -l nodes=1:ppn = 8:vt02.localdomain←ノード数の指定:ノードの指定(必須) cd $PBS_O_WORKDIR ←PBS に渡す変数(必須) mpirun -np 4 ./himeM4 ←実行ファイルの指定(必須) --------------------------------------------- 2 2.Torque グループの作成方法 ・グループを設定し 用途等:Torque に参加しているマシンが複数台ある状態で 所属グループ等を分けて特定グループに所属する 特定のノードにジョブをスポットで割り当てる ことができます。 *設定については root(スーパーユーザー)で作業 [#ed561659] 変更必要ノード:管理ノードのみ 変更箇所:/var/spool/torque/server_priv/nodes * 下記変更例は 4 ノードのクラスターに各 A、B というグループを割り当てて グループを作成しています。 書き方は np=8 の後にスペースを空け文字を入れます。 変更例:変更前 vt001.localdomain np=8 vt002.localdomain np=8 vt003.localdomain np=8 vt004.localdomain np=8 変更例:変更後 vt001.localdomain np=8 A vt002.localdomain np=8 A vt003.localdomain np=8 B vt004.localdomain np=8 B 変更後リブートもしくは /etc/init.d/pbs stop /etc/init.d/pbs start を実行してください。 ------------------------------------------ --------------------------------------- 作成したグループを指定してジョブを投入する方法です --------------------------------------- #!/bin/sh #PBS -l ncpus=8 #PBS -l nodes=1:ppn=8:B ←ノードの後ろに:で区切ってグループを指定 cd $PBS_O_WORKDIR mpirun -np 8 ./himeM8 --------------------------------- 3.Torque の queue 作成方法 root(スーパーユーザー)でログインして作業します。 下記は 16CPU を使用して流す queue を batch16 とし 8CPU を使用して流す queue を batch8 と名前をつけて作成する時のパラメータのリストです。 (batch8 は batch16 よりもジョブ投入時のプライオリティを上げてあります。) * 例ですので、クラスターの計算ノードや環境により 適宜変更してください。 ---------------------------------------------------------- # # Create and define queue batch16 # create queue batch16 set queue batch16 queue_type = Execution set queue batch16 Priority = 70 set queue batch16 max_running = 2 set queue batch16 resources_max.ncpus = 16 set queue batch16 resources_max.nodes = 2 set queue batch16 resources_min.ncpus = 8 set queue batch16 resources_min.neednodes = 2:ppn=8 set queue batch16 resources_min.nodes = 2:ppn=8 set queue batch16 resources_default.ncpus = 16 set queue batch16 resources_default.neednodes = 2:ppn=16 set queue batch16 resources_default.nodes = 2:ppn=16 set queue batch16 max_user_run = 2 set queue batch16 enabled = True set queue batch16 started = True # # Create and define queue batch8 # create queue batch8 set queue batch8 queue_type = Execution 5 set queue batch8 Priority = 60 set queue batch8 max_running = 4 set queue batch8 resources_max.ncpus = 8 set queue batch8 resources_max.nodes = 1 set queue batch8 resources_min.ncpus = 8 set queue batch8 resources_min.neednodes = 1:ppn=8 set queue batch8 resources_min.nodes = 1:ppn=8 set queue batch8 resources_default.ncpus = 8 set queue batch8 resources_default.neednodes = 1:ppn=8 set queue batch8 resources_default.nodes = 1:ppn=8 set queue batch8 max_user_run = 2 set queue batch8 enabled = True set queue batch8 started = True ---------------------------------------------------------- 上記キューをテキストファイル等にし適当な場所に置き、キューマネージャに 読み込むコマンドを実行します。(管理ノード) 例: ↓キーボードの\マークの上のパイプです cat queue.txt | qmgr 作成後クラスターを再起動します。 作成したキューが有効かどうか確認します。 qstat -q 作成したキューを使いジョブを投入します。 -------------------------------- #!/bin/sh #PBS -l ncpus=8 #PBS -l nodes=1:ppn=8 #PBS ‒q batch8 ←ここを追加してキューを指定 cd $PBS_O_WORKDIR NPROCS=`wc -l < $PBS_NODEFILE` mpirun -np 8 ./himeM8 -------------------------------- 6 4.Torque(PBS)コマンド集 Torqueで主に使用するコマンドの解説 ジョブ投入時のスクリプトのオプション コマンド名 内容 qsub ジョブを投入する qdel ジョブを削除する qstat キュー、ジョブの状態を表示する pbsnodes 計算ノードのステータスを確認する -N jobname ジョブの名前を指定 -q queue_name ジョブを投入するキューを指定 -o output_file 標準出力をファイルに出力 -e error_file エラー出力をファイルに出力 -l ncpus 1 つのジョブに必要な CPU 数を指定 -l nodes 1 つのジョブに必要なノード数 7 MPI ジョブ用スクリプト例 ----------------------------------- #!/bin/bash #PBS -N himeM8.out #PBS -j oe #PBS -l ncpus=8 #PBS -l nodes=2:ppn=4 #PBS -q default cd $PBS_O_WORKDIR mpirun -n 8 ./himeM8 ----------------------------------- シングルコア用スクリプトの例 ----------------------------------- #!/bin/sh #PBS -j oe #PBS -l nodes=1 cd $PBS_O_WORKDIR ./a.out ----------------------------------- *細かいメモ [#t4b50824] **rootアカウント [#a8296e0c] Ubuntuではセキュリティの都合上、デフォルトでrootアカウントが無効になっている。 特に理由がなければ、rootアカウントは無効のままにしておく。 rootアカウントを有効にする $ sudo passwd root rootアカウントを無効にする $ sudo passwd -l root また、sudo による全管理者権限が与えられたユーザーであれば、 sudo のオプション指定で root 権限のシェルを取得可能。 $ sudo -s [sudo] password for onot: # 自身のパスワード **ディスクシステム基本 [#h9ab6b8b] 各ノードに計算ファイルを投げて、それぞれのローカルディレクトリで計算させるため、作業用ディレクトリを作製。 $ sudo mkdir /var/local/work $ sudo mkdir /var/local/work/onot $ sudo mkdir /var/local/work/furukawa $ sudo chown -R onot /var/local/work/onot $ sudo chown -R furukawa /var/local/work/furukawa ファイルサーバーのマウント。これは、計算ノード以外も設定しておく。 sudo mkdir /mnt/scf051 sudo mkdir /mnt/scf051/onot sudo mkdir /mnt/scf051/furukawa sudo mkdir /mnt/scf051/share sudo mount -t nfs 10.34.83.51:/mnt/scf051/onot /mnt/scf051/onot sudo mount -t nfs 10.34.83.51:/mnt/scf051/furukawa /mnt/scf051/furukawa sudo mount -t nfs 10.34.83.51:/mnt/scf051/share /mnt/scf051/share これは/etc/fstabに記述しておき、起動と同時にマウントするようにしておく。 #highlighter(){{ 10.34.83.51:/mnt/scf051/onot /mnt/scf051/onot nfs defaults 0 0 10.34.83.51:/mnt/scf051/furukawa /mnt/scf051/furukawa nfs defaults 0 0 10.34.83.51:/mnt/scf051/share /mnt/scf051/share nfs defaults 0 0 }} **torque注意点 [#x1709de5] デフォルトログインシェルをヘッドノード、計算ノードでそろえておくこと。 研究室使用PCは基本的にtcshを使う。 **ubuntsuインストール時の注意 [#l461f05e] ubuntuをインストールするとき、パーティションをは下記 /home swap boot 要検討。 **NFSによるNAS(FreeNAS)のマウント [#z60ba7eb] user idおよびgroup id をそろえておく必要がある。 FreeNASであればsshでアクセスできるので、 $ id uid=1000(onot) gid=1000(onot) groups=1000(onot),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare) と確認できる。 そこで、接続したいPC側のuser idおよびgroup idを変更する。ユーザーがログイン中だとはじかれるので注意。 $sudo usermod -u 1000 onot $sudo groupmod -g 1000 onot **mount時のトラブル [#v777d730] umount で target is busy となったときの対処法。 #highlighter(){{ onot@scf000:/work/onot$ sudo umount /work umount: /work: target is busy (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1).) }} #highlighter(){{ onot@scf000:/work/onot$ sudo fuser -muv /work onot@scf000:/work/onot$ sudo fuser -muv /work USER PID ACCESS COMMAND /work: root kernel mount (root)/work onot 26720 ..c.. (onot)bash root 26977 ..c.. (root)sudo }} ここで、bashを終了させる必要がああるけれど、終了させるとSSHクライアントまで落ちてしまうため、SSHクライアントの再起動が必要。 onot@scf000:/work/onot$ sudo kill -9 26720 #contents
テキスト整形のルールを表示する