[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#menu(LABO/MenuBar)
* LABO/RockyOHPC [#a02dfd8c]
#contents
** 一行メモ [#kbe38b35]
- 現在、ファイヤーウォールで最小限に閉じている。開けると...
-- sudo firewall-cmd --add-port=8801/tcp --zone=external...
-- リブートするともとにもどるので、sudo firewall-cmd --pe...
-- 閉じるには sudo firewall-cmd --remove-port=8801/tcp -...
- https://github.com/openhpc/ohpc/wiki/ -- &new{2024-09-...
-- https://openhpc.community/ OpenHPCコミュニティー
-- https://lists.openhpc.community/g/users
-- https://lists.openhpc.community/g/users/topics?sidebar...
- CentOS7とRockyのちがい -- &new{2024-10-08 (火) 22:14:5...
- yum -> dnf 引数はほぼ同じ
https://atmarkit.itmedia.co.jp/ait/articles/2001/09/n...
https://qiita.com/yasushi-jp/items/0dc7f413632927f92286
- service,chkconfig -> systemctl
- firewall-cmd(+iptables) -> firewall-cmd(+nftables)
- ext4 -> xfs
- ifconfig -> ip address
- RH9ドキュメント https://docs.redhat.com/ja/documentatio...
- taskset -cp 6717 #PID 6717がどのCPUコアを使っているか...
- (メモ) 計算ノードリブート後は -- &new{2025-06-02 (月) ...
$ clush -g all -L 'uptime'
で ブートを確認後、
$ sudo scontrol update NodeName=c10[1-2] state=idle #c1...
する。
- xdmのユーザー切り替えで、日本語のフォントがバグってた?...
- core i7 (i7-13700K) のアップデート情報(0x12Fあり) http...
#comment
//-------------------------------------------------------...
* 簡単な使い方 [#l1e3af70]
** kalmia (Rocky OpenHPCクラスタ) の概要 [#c2bbef7f]
*** 利用方法 [#gd2e51cf]
ssh等でフロントエンドの kalmia.eit.hirosaki-u.ac.jp にリ...
または、コンソールからログインする。
実行したいプログラムは、フロントエンド(kalmia)からsbatch...
フロントエンドか、計算ノード(cNNN)で実行させる。通常、計...
sbatchで実行させるためには、実行手順を記述したシェルスク...
(ジョブスクリプトやサブミットスクリプトなどと呼ばれる)。
スクリプトは、SLURMというジョブ管理システムにより取り扱わ...
スクリプトやスクリプトの内容を、ジョブや、計算ジョブ、バ...
スクリプト内に、スクリプト自身をどのようにのように実行さ...
SLURMのオプション(下記例のように #SBATCHによる指定行)を含...
ジョブは非対話処理であるため、実行時にキーボードからの入...
その場合は、入力リダイレクションか、ヒアドキュメントを使...
ログインディレクトリは /home/hogehoge である(計算ノード...
/opt/appsディレクトリには、いくつかのソフトウェアをインス...
また、/workも利用できる。
kalmiaでは、/homeと/opt/apps, /workはフロントエンドにあり、
各計算ノードはNFSによってそれらのディレクトリを利用してい...
*** ディスク容量 [#xd5c6e5b]
/ 200GB NVMe,LVM
/home 5.8TB NVMe,LVM
/work 2.2TB HDD,LVM(ストライピング数3)
/bkup 5.9TB HDD,LVM,/と/homeのバックアップ用
//-------------------------------------------------------...
** ジョブのサブミット方法 [#y65c545c]
*** ジョブの実行 [#jb842ec4]
フロントエンドからジョブスクリプトを、実行したいキュー, S...
sbatchで投入する形で実行させる(下記参照)。
ジョブをキューに投入することをサブミットと呼ぶ。
なお、フロントエンドでキュー以外ではあまり重たいプログラ...
*** キュー(パーティション)の種類 [#z477a4cd]
- all.p : 全計算ノードとフロントエンドを含むキュー
//:|全計算ノードとフロントエンドを含むキュー。
- compute.p : 全計算ノード(現在c101~c105,c171,c172)を含...
//:|全計算ノード(現在c101,c102)を含むキュー。
*** サブミット例(シリアルジョブ) [#db59d959]
例えば &ref(testPrime.c); がカレントディレクトリにあると...
$ gcc testPrime.c -o testPrime.x
$ ./testPrime.x
input number (max:9223372036854775807)> 60000
input print interval> 1000
print prime numbers up to 60000 th with interval 1000
Prime Number 1000 th: 7919
Prime Number 2000 th: 17389
...
Prime Number 59000 th: 732923
Prime Number 60000 th: 746773
DONE: up to 60000 th ( examined between 2 to 746773 )
real time: 40 sec
次の内容で testPrime.shを作る。最初の#SBATCHの行はどのよ...
である。-- jobs -- の部分の前半は、sysName変数などを設定...
後半部分はプログラムを実行させ、結果をリダイレクションで ...
リダイレクションしない場合は、testPrime.sh.oNNNというファ...
#!/bin/bash
# ver 1.0 script for slurm
#SBATCH -p compute.p -w c101 #queue(partition) [-w hosts...
#SBATCH -N 1 #num of node; SLURM_NNODES
#SBATCH -n 1 #num of process(task); SLURM_NTASKS ...
#SBATCH -c 1 #num of thread in process; SLURM_CPUS_PE...
#SBATCH -o %x.o%j # output stdout and stderr into .oNNN
#SBATCH -e %x.o%j
# -- jobs ------------------------------
sysName=`basename $0 ".sh"`
[ $sysName = "slurm_script" ] && sysName=`basename ${SL...
s_s_host=${SLURM_SUBMIT_HOST:-C}
OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
export OMP_NUM_THREADS
echo ${s_s_host%%.*} ${HOSTNAME%%.*} > $sysName.out
date >> $sysName.out
./testPrime.x <<EOF >> $sysName.out
60000
1000
EOF
# --------------------------------------
サブミットは
$ sbatch testPrime.sh
とする。サブミットすると JOB IDが割り当てられる。
前半部分のsysName変数などの設定は、ジョブスクリプト名を r...
実行すると($ sbatch runPrime.sh)、runPrime.outに結果が保...
キューでなくコマンドラインからでも同じように実行($ ./runP...
また、並列化に関する変数なども設定されている。
上記の例はシリアルジョブ(並列化していないジョブ)である。
通常のコンパイル・リンクで作ったプログラム(testPrime.xな...
並列化ジョブは、MPI並列化の場合はそのライブラリを使用して、
OpenMP並列化の場合はコンパイラのディレクティブを使用して...
そして、#SBATCHのオプションで node,task,threadの値を与え...
*** キューの込み具合の確認 [#z3677d2e]
現在、GUIのようなものは無いので、例えば以下のコマンドを使...
使用中や利用可のCPU数は allocatedや idleで確認できる。
$ sinfo -o "%.9P %5a %13C %.5D %10N %.9T |%38E"
PARTITION AVAIL CPUS(A/I/O/T) NODES NODELIST STA...
compute.* up 4/0/0/4 1 c102 allocat...
compute.* up 0/4/0/4 1 c101 id...
all.p up 4/0/0/4 1 c102 allocat...
all.p up 0/12/0/12 2 c101,kalmi id...
キュー内のジョブを表示する。
$ squeue -o "%.5i %9P %24j %.2t %.10M %.5D %.4C %8u %R"
JOBID PARTITION NAME ST TIME N...
35 all.p sample_optH2mb64g256t.in R 1:33 ...
各ノードの負荷を表示する(1)。
$ clush -g all -L 'uptime'
c101: 11:16:45 up 21:36, 0 users, load average: 0.00,...
c102: 11:16:46 up 21:35, 0 users, load average: 0.74,...
kalmia: 11:16:45 up 22 days, 35 min, 2 users, load av...
各ノードの負荷を表示する(2)。
$ pdsh -w 'c10[1,2],kalmia' 'uptime'
kalmia: 11:16:51 up 22 days, 35 min, 2 users, load av...
c102: 11:16:51 up 21:35, 0 users, load average: 0.76,...
c101: 11:16:51 up 21:36, 0 users, load average: 0.00,...
各計算ノードの負荷は次のリンクから確認できる。
(注) ここのリンクで表示される情報はやや少ない。[[PukiWiki...
- [[kalmia prometheus>http://kalmia.eit.hirosaki-u.ac.jp:...
- [[kalmia prometheus(研究室外)>https://orange.eit.hirosa...
*** サブミットしたジョブのキャンセル [#c97115e6]
$ scancel JOBID
*** OpenMP並列ジョブ [#p09af6c4]
SBATCH -c でスレッド数を指定する(SBATCH -N とSBATCH -n ...
プログラムはOpenMPディレクティブを使用して作ったもの。
*** フラットMPI並列(MPI並列)ジョブ [#hb314cd3]
SBATCH -N でノード数を指定し、
SBATCH -n でプロセス数(合計の数)を指定する。
SBATCH -c は 1のまま。
プログラムはMPIライブラリを使用して作ったもの。
プログラムの実行は prun PROGRAM などとする。
*** ハイブリッドMPI並列(MPI/OpenMP並列)ジョブ [#ge28fe13]
SBATCH -N でノード数を指定し、
SBATCH -n でプロセス数を指定(ノード数と同じ数)し、
SBATCH -c でスレッド数を指定する。
プログラムはOpenMPとMPIで作ったもので、実行は prun PROGRA...
*** salloc(対話ジョブ) [#qed61d0a]
$ salloc -p all.p -w c101,c102 -N 2 -n 8 -c 1 #例、オプ...
終了は exit
次のように prunコマンドなどもsbatchと同じく利用できる。
mpirun PROGRAM #場合によっては Segmentation faultす...
prun PROGRAM #主にMPI用、mpirunよりもこちらが推奨ら...
srun PROGRAM #ネイティブコマンドらしい(さらに高機能)
//-------------------------------------------------------...
* pythonの利用(anaconda版) [#nf6e02b6]
** python 3.7.0 [#td34363d]
使い方
$ source /opt/apps/anaconda3.bash_conda #py370
終了は conda deactivate
$ conda list #インストールされているパッケージの一覧表示
主なもの
numpy 1.21.5
scipy 1.7.3
h5py 2.10.0
jupyter 1.0.0
matplotlib 3.5.3
jupytext 1.15.0
** python 3.9.13 [#a4e2103e]
使い方
$ source /opt/apps/anaconda3.bash_conda; conda activate ...
終了は conda deactivate; conda deactivate
$ conda list #インストールされているパッケージの一覧表示
主なもの
numpy 1.25.0
scipy 1.10.1
h5py 3.7.0
jupyter 1.0.0
matplotlib 3.7.1
jupytext 1.15.0
openpyxl 3.0.10
openai 0.27.8
//-------------------------------------------------------...
* ParaView 5.11 [#rf56daa4]
- PyQt5を利用する場合は、LD_LIBRARY_PATHと PYTHONPATHを指...
プログラムへのパス(例では $HOME/hogehoge)も通す。
なお、リモートではなく、コンソールから起動する場合は --me...
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/apps/ParaView-5....
PYTHONPATH=/opt/apps/ParaView-5.11-etc/pypkg:$HOME/hog...
/opt/apps/ParaView-5.11.0-RC2-MPI-Linux-Python3.9-x86_...
(注) リモート接続でワイヤレスを経由する場合、ssh -Y より...
//-------------------------------------------------------...
* Gromacs 2020.4 と vmd 1.9.3 [#ia023148]
gromacsを利用するときは
$ source /opt/apps/gromacs.20204.mpi.avx256/bin/GMXRC ...
$ source /opt/apps/gromacs.20204.mpi.avx256.dbl/bin/GMXR...
のどちらかで環境設定をする。
ジョブスクリプトの例などは、allium:~okazaki/tmp/gmx_chig...
vmdを利用するときは
$ /opt/apps/vmd-1.9.3/bin/vmd-1.9.3
[[LABO/RockyOHPC/スクリプト例]]
//-------------------------------------------------------...
* Gaussian 16 [#ia023148]
g16, gvを利用するときは
$ export g16root=/opt/apps/gaussian16
$ export GAUSS_SCRDIR=$HOME/.gauss_scratch
$ [ -d $HOME/.gauss_scratch ] || mkdir $HOME/.gauss_scra...
$ source $g16root/g16/bsd/g16.profile
により環境設定をする。
$ g16 test0001.com #ジョブスクリプトで動かす例は、別に...
$ gv #VcXsrvごしに利用する場合などは gv -soft での起動...
[[LABO/RockyOHPC/スクリプト例]]
//-------------------------------------------------------...
* nameless [#ocf2b970]
* PySCF 1.7.6 [#n65cc2ed]
* PyEDB [#yc6e6291]
* jupyter notebookの利用 [#u0638fc5]
//-------------------------------------------------------...
* kalmia.eit.hirosaki-u.ac.jp の構成(2025/05/30現在) [#...
Frontend nodes
kalmia.eit.hirosaki-u.ac.jp: i7-13700K (P8E8core) HT d...
Compute nodes
c101.local: i5 (4core) 利用可なメモリ約14GB
c102.local: i5 (4core) 〃 14GB
c103.local: i5 (4core) 〃 14GB
c104.local: i5 (4core) 〃 14GB
c105.local: i5 (4core) 〃 14GB
c171.local: i7 (4core) 〃 30GB
c172.local: i7 (8core) 〃 126GB
詳細なスペック
kalmia c101 ...
-------------- -------------- ...
cpu i7-13700K i5-3470 ...
P8E8(HT,disa) 4(noHT) ...
P5.30,E4.20GHz 3.60GHz ...
-- -- ...
発売日 Q4'22 Q2'12 ...
リソグラフィー ? 22nm ...
最大メモリー帯域幅 89.6GB/s 25.6GB/s ...
命令セット拡張 SSE4.1,SSE4.2,AVX2 SSE4.1,SSE4.2,A...
メモリ DDR5-5200,32GB DDR3-1600,16GB ...
MB PRIME B760M-K-CSM ? ...
HDD NVMe6TB, HDD8.5TB -- ...
MB BIOS ver ? ? ...
ケース sharkoon SHA-VS7 ? ...
VC Geforce RTX 4070 ? ...
VENTUS 2X 12G OC ...
電源 750W/85+ ? ...
c105 c171 ...
-------------- -------------- ...
cpu i5-3470 i7-3770 ...
4(noHT) 4(noHT) ...
3.60GHz 3.4GHz ...
-- -- ...
発売日 Q2'12 ? ...
リソグラフィー 22nm ? ...
最大メモリー帯域幅 25.6GB/s ? ...
命令セット拡張 SSE4.1,SSE4.2,AVX ? ...
メモリ DDR3-1600,16GB DDR3,32GB ...
MB ? ? ...
HDD -- HDD250GB ...
MB BIOS ver ? ? ...
ケース ? ? ...
VC ? ? ...
...
電源 ? ? ...
* hydrangea.eit.hirosaki-u.ac.jp の構成(2025/05/30現在)...
テスト用
Frontend nodes
hydrangea.eit.hirosaki-u.ac.jp: i7-5960X (8core) HT di...
Compute nodes
c101.local: i3 (2core) 利用可なメモリ約6GB
c102.local: i5 (4core) 〃 14GB
詳細なスペック
hydrangea c101 ...
-------------- -------------- ...
cpu i7-5960X i3-4150 ...
8core(HT,disa) 2core(noHT) ...
3.00GHz 3.50GHz ...
-- -- ...
発売日 Q3'14 Q2'14 ...
リソグラフィー 22nm 22nm ...
最大メモリー帯域幅 68GB/s 25.6GB/s ...
命令セット拡張 SSE4.2,AVX2 SSE4.1,SSE4.2,A...
メモリ DDR4-3200,32GB空有 ?,8GB ...
MB X99-M WS SE ? ...
HDD NVMe500GB,HDD6.5TB HDD250GB ...
MB BIOS ver 4001(2019/08/01) ? ...
ケース ANTEX P100(ATX) ? ...
VC Geforce GTX 1650 ? ...
4GT LP ...
電源 In-win CB1250W(80+) ? ...
//-------------------------------------------------------...
* 新規ユーザの追加方法、パスワードの変更方法 [#b6976fac]
$ sudo useradd -m -u UID uhoge #UIDはマシン間で統一
$ sudo passwd uhoge
$ sudo wwsh file resync passwd shadow group #ユーザ追...
$ sudo pdsh -w c10[1-5] /warewulf/bin/wwgetfiles #DB情...
(ERROR: wwgetfiles already running が出るときがある...
→[[LABO/研究室のアカウントの作り方>https://orange.eit.hir...
パスワード変更はフロントエンドで、
$ passwd
をし、sudoか rootユーザが
$ sudo wwsh file resync passwd shadow group #5分毎で自動
をするものと思われる。
rootユーザのパスワード変更もpasswdをして、wwsh file resy...
と思われる。
//-------------------------------------------------------...
* その他 [#j0ea65d0]
** 用語・備忘録 [#n27489ff]
BOS base operating system, OSのこと
SMS system management server, 管理サーバー(計算ノード...
VNFS virtual node file system, 物理的な計算ノードをSMS...
MBC baseboard management controller, サーバー用マザー...
IPMI Intelligent Platform Management Interface, MBCなど...
フロントエンド 計算ノードにバッチ処理をさせるためのサー...
Nouveau(ヌーヴォー) LinuxカーネルのオープンソースNVIDIA...
** clush,pdsh(複数ホストでのコマンドの並列実行) [#feb3df2d]
$ clush -g compute -L 'hostname; uptime' #計算ノードのみ
$ clush -g all -L 'hostname; uptime' #フロントエン...
$ pdsh -w 'c10[1,2],kalmia' 'hostname; uptime'
$ pdsh -w 'c10[1,2],kalmia' 'hostname; uptime' | dshbak ...
** module (Lmod) [#n4e1f82c]
module avail #利用可能なモジュールを表示(ロード状態...
module overview #モジュール名と数(ver違い)だけ表示
module show gnu13 #モジュールのロードで、どのように環...
module list #読み込んでいるモジュール
module load gnu13 #モジュールのロード
module unload gnu13 #読み込んだモジュールの破棄
module purge #読み込んだすべてのモジュールの破棄
alliumはEnvironment module、kalmiaはLmodの moduleが使わ...
LmodはEnvironment moduleのファイル(先頭に#%Moduleあり)を...
$ module use /opt/apps/nvidia/hpc_sdk/modulefiles #use...
$ module load nvhpc #load...
$ module avail #確認
kalmiaで pgcc testPrime.c はエラー。nvc testPrime.c はOK。
nvcはpgccの後継で、最新のgcc独自の規格に対応らしい。
//-------------------------------------------------------...
** slurmの使い方 [#ve2b05af]
*** sinfo, scontrol [#j131b46f]
パーティション・ノード数など表示
$ sinfo -s
$ sinfo -al
他のオプション
--help や --usage
-V バージョン
-a 全てのパーティション
-l もっと情報表示
-R ダウン等にあるノードと理由を表示
$ scontrol show partition [パーティション名] #...
$ scontrol show nodes [ノード名(計算ノードホスト名)] #...
$ scontrol show JOBID #ジョブの状況表示
なぜか走らないときなどは次を確認など。
- Reason=Resources のとき、単にリソース待ち
- Reason=PartitionConfig のとき、リソースを超えた要...
*** sbatch [#xfddb62f]
サブミットする
$ sbatch [-p キュー(パーティション)] [-N ノード数] [-w ...
[-n プロセス(タスク)数] [-c スレッド数/プロセス...
他のオプションなど
--help や --usage
-J JOBNAME ジョブ名指定(デフォルトはスクリプト名)
Gresプラグインが追加されていると、GPUリソースのスケ...
-Nのノード数は指定しなくても自動的に決められるようだ。
例) sbatch -w 'c101,c102' jobscript.sh #ノードc101,c1...
sbatch -d afterany:152 jobscript.sh #ジョブID 152...
//-------------------------------------------------------...
** 設定関係 [#cd71ba78]
*** NICのWOL確認 [#r950c56a]
$ sudo clush -g all -L 'for n in `cd /sys/class/net; /bi...
echo $n; ethtool $n | grep Wake; done'
*** wwsh [#ca08708c]
$ sudo wwsh #wwshプロンプトで作業する場合
Warewulf> file list
Warewulf> node help #ヘルプ表示
Warewulf> pxe help
Warewulf> quit
wwsh provisionのオプションも、複数に分けて設定実行できる。
いくつかの表示(provision printと object print)
wwsh provision print c101 c102
wwsh object print c10[1,2] -p :all #provision printと...
wwsh object print c101 c102 -p :all
*** slurm.conf関係 [#nb1e5b9e]
[ref]
- https://www.hpc.co.jp/support/wp-content/uploads/sites/...
- https://qiita.com/daikumatan/items/fa6e2069adf828b3428c
- https://slurm.schedmd.com/sstat.html
ノードをshutdownしてもupのまま(STATEを見よ)。
/etc/slurm/slurm.conf の SlurmdTimeout=300 により、shutd...
5分後に down* になるようだ。*付きは何かの特別な状態を表...
ノードを立ち上げると downになる。(down*のときに、フロン...
自動的には簡単に idelにはならない?ので明示的に指定する...
$ sudo scontrol update NodeName=c10[1-2],kalmia state=idle
slurm.confで State=UNKNOWN にしているからか?
stateに resumeというもものある(ジョブが無い時に自動...
起動する状態らしい)。
slurm.confの変更を反映させるのは、これでよさげ。
$ sudo systemctl restart slurmctld
$ sudo pdsh -w 'c10[1,2],hydrangea' "systemctl restart ...
$ scontrol show config
GroupUpdateTime = 600 sec
HealthCheckInterval = 300 sec
JobAcctGatherFrequency = 30
など情報表示
$ scontrol show node
$ scontrol show partition
[cf] https://slurm.schedmd.com/configurator.html slurm.co...
でない。何かの参考になる?)
//-------------------------------------------------------...
終了行:
#menu(LABO/MenuBar)
* LABO/RockyOHPC [#a02dfd8c]
#contents
** 一行メモ [#kbe38b35]
- 現在、ファイヤーウォールで最小限に閉じている。開けると...
-- sudo firewall-cmd --add-port=8801/tcp --zone=external...
-- リブートするともとにもどるので、sudo firewall-cmd --pe...
-- 閉じるには sudo firewall-cmd --remove-port=8801/tcp -...
- https://github.com/openhpc/ohpc/wiki/ -- &new{2024-09-...
-- https://openhpc.community/ OpenHPCコミュニティー
-- https://lists.openhpc.community/g/users
-- https://lists.openhpc.community/g/users/topics?sidebar...
- CentOS7とRockyのちがい -- &new{2024-10-08 (火) 22:14:5...
- yum -> dnf 引数はほぼ同じ
https://atmarkit.itmedia.co.jp/ait/articles/2001/09/n...
https://qiita.com/yasushi-jp/items/0dc7f413632927f92286
- service,chkconfig -> systemctl
- firewall-cmd(+iptables) -> firewall-cmd(+nftables)
- ext4 -> xfs
- ifconfig -> ip address
- RH9ドキュメント https://docs.redhat.com/ja/documentatio...
- taskset -cp 6717 #PID 6717がどのCPUコアを使っているか...
- (メモ) 計算ノードリブート後は -- &new{2025-06-02 (月) ...
$ clush -g all -L 'uptime'
で ブートを確認後、
$ sudo scontrol update NodeName=c10[1-2] state=idle #c1...
する。
- xdmのユーザー切り替えで、日本語のフォントがバグってた?...
- core i7 (i7-13700K) のアップデート情報(0x12Fあり) http...
#comment
//-------------------------------------------------------...
* 簡単な使い方 [#l1e3af70]
** kalmia (Rocky OpenHPCクラスタ) の概要 [#c2bbef7f]
*** 利用方法 [#gd2e51cf]
ssh等でフロントエンドの kalmia.eit.hirosaki-u.ac.jp にリ...
または、コンソールからログインする。
実行したいプログラムは、フロントエンド(kalmia)からsbatch...
フロントエンドか、計算ノード(cNNN)で実行させる。通常、計...
sbatchで実行させるためには、実行手順を記述したシェルスク...
(ジョブスクリプトやサブミットスクリプトなどと呼ばれる)。
スクリプトは、SLURMというジョブ管理システムにより取り扱わ...
スクリプトやスクリプトの内容を、ジョブや、計算ジョブ、バ...
スクリプト内に、スクリプト自身をどのようにのように実行さ...
SLURMのオプション(下記例のように #SBATCHによる指定行)を含...
ジョブは非対話処理であるため、実行時にキーボードからの入...
その場合は、入力リダイレクションか、ヒアドキュメントを使...
ログインディレクトリは /home/hogehoge である(計算ノード...
/opt/appsディレクトリには、いくつかのソフトウェアをインス...
また、/workも利用できる。
kalmiaでは、/homeと/opt/apps, /workはフロントエンドにあり、
各計算ノードはNFSによってそれらのディレクトリを利用してい...
*** ディスク容量 [#xd5c6e5b]
/ 200GB NVMe,LVM
/home 5.8TB NVMe,LVM
/work 2.2TB HDD,LVM(ストライピング数3)
/bkup 5.9TB HDD,LVM,/と/homeのバックアップ用
//-------------------------------------------------------...
** ジョブのサブミット方法 [#y65c545c]
*** ジョブの実行 [#jb842ec4]
フロントエンドからジョブスクリプトを、実行したいキュー, S...
sbatchで投入する形で実行させる(下記参照)。
ジョブをキューに投入することをサブミットと呼ぶ。
なお、フロントエンドでキュー以外ではあまり重たいプログラ...
*** キュー(パーティション)の種類 [#z477a4cd]
- all.p : 全計算ノードとフロントエンドを含むキュー
//:|全計算ノードとフロントエンドを含むキュー。
- compute.p : 全計算ノード(現在c101~c105,c171,c172)を含...
//:|全計算ノード(現在c101,c102)を含むキュー。
*** サブミット例(シリアルジョブ) [#db59d959]
例えば &ref(testPrime.c); がカレントディレクトリにあると...
$ gcc testPrime.c -o testPrime.x
$ ./testPrime.x
input number (max:9223372036854775807)> 60000
input print interval> 1000
print prime numbers up to 60000 th with interval 1000
Prime Number 1000 th: 7919
Prime Number 2000 th: 17389
...
Prime Number 59000 th: 732923
Prime Number 60000 th: 746773
DONE: up to 60000 th ( examined between 2 to 746773 )
real time: 40 sec
次の内容で testPrime.shを作る。最初の#SBATCHの行はどのよ...
である。-- jobs -- の部分の前半は、sysName変数などを設定...
後半部分はプログラムを実行させ、結果をリダイレクションで ...
リダイレクションしない場合は、testPrime.sh.oNNNというファ...
#!/bin/bash
# ver 1.0 script for slurm
#SBATCH -p compute.p -w c101 #queue(partition) [-w hosts...
#SBATCH -N 1 #num of node; SLURM_NNODES
#SBATCH -n 1 #num of process(task); SLURM_NTASKS ...
#SBATCH -c 1 #num of thread in process; SLURM_CPUS_PE...
#SBATCH -o %x.o%j # output stdout and stderr into .oNNN
#SBATCH -e %x.o%j
# -- jobs ------------------------------
sysName=`basename $0 ".sh"`
[ $sysName = "slurm_script" ] && sysName=`basename ${SL...
s_s_host=${SLURM_SUBMIT_HOST:-C}
OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
export OMP_NUM_THREADS
echo ${s_s_host%%.*} ${HOSTNAME%%.*} > $sysName.out
date >> $sysName.out
./testPrime.x <<EOF >> $sysName.out
60000
1000
EOF
# --------------------------------------
サブミットは
$ sbatch testPrime.sh
とする。サブミットすると JOB IDが割り当てられる。
前半部分のsysName変数などの設定は、ジョブスクリプト名を r...
実行すると($ sbatch runPrime.sh)、runPrime.outに結果が保...
キューでなくコマンドラインからでも同じように実行($ ./runP...
また、並列化に関する変数なども設定されている。
上記の例はシリアルジョブ(並列化していないジョブ)である。
通常のコンパイル・リンクで作ったプログラム(testPrime.xな...
並列化ジョブは、MPI並列化の場合はそのライブラリを使用して、
OpenMP並列化の場合はコンパイラのディレクティブを使用して...
そして、#SBATCHのオプションで node,task,threadの値を与え...
*** キューの込み具合の確認 [#z3677d2e]
現在、GUIのようなものは無いので、例えば以下のコマンドを使...
使用中や利用可のCPU数は allocatedや idleで確認できる。
$ sinfo -o "%.9P %5a %13C %.5D %10N %.9T |%38E"
PARTITION AVAIL CPUS(A/I/O/T) NODES NODELIST STA...
compute.* up 4/0/0/4 1 c102 allocat...
compute.* up 0/4/0/4 1 c101 id...
all.p up 4/0/0/4 1 c102 allocat...
all.p up 0/12/0/12 2 c101,kalmi id...
キュー内のジョブを表示する。
$ squeue -o "%.5i %9P %24j %.2t %.10M %.5D %.4C %8u %R"
JOBID PARTITION NAME ST TIME N...
35 all.p sample_optH2mb64g256t.in R 1:33 ...
各ノードの負荷を表示する(1)。
$ clush -g all -L 'uptime'
c101: 11:16:45 up 21:36, 0 users, load average: 0.00,...
c102: 11:16:46 up 21:35, 0 users, load average: 0.74,...
kalmia: 11:16:45 up 22 days, 35 min, 2 users, load av...
各ノードの負荷を表示する(2)。
$ pdsh -w 'c10[1,2],kalmia' 'uptime'
kalmia: 11:16:51 up 22 days, 35 min, 2 users, load av...
c102: 11:16:51 up 21:35, 0 users, load average: 0.76,...
c101: 11:16:51 up 21:36, 0 users, load average: 0.00,...
各計算ノードの負荷は次のリンクから確認できる。
(注) ここのリンクで表示される情報はやや少ない。[[PukiWiki...
- [[kalmia prometheus>http://kalmia.eit.hirosaki-u.ac.jp:...
- [[kalmia prometheus(研究室外)>https://orange.eit.hirosa...
*** サブミットしたジョブのキャンセル [#c97115e6]
$ scancel JOBID
*** OpenMP並列ジョブ [#p09af6c4]
SBATCH -c でスレッド数を指定する(SBATCH -N とSBATCH -n ...
プログラムはOpenMPディレクティブを使用して作ったもの。
*** フラットMPI並列(MPI並列)ジョブ [#hb314cd3]
SBATCH -N でノード数を指定し、
SBATCH -n でプロセス数(合計の数)を指定する。
SBATCH -c は 1のまま。
プログラムはMPIライブラリを使用して作ったもの。
プログラムの実行は prun PROGRAM などとする。
*** ハイブリッドMPI並列(MPI/OpenMP並列)ジョブ [#ge28fe13]
SBATCH -N でノード数を指定し、
SBATCH -n でプロセス数を指定(ノード数と同じ数)し、
SBATCH -c でスレッド数を指定する。
プログラムはOpenMPとMPIで作ったもので、実行は prun PROGRA...
*** salloc(対話ジョブ) [#qed61d0a]
$ salloc -p all.p -w c101,c102 -N 2 -n 8 -c 1 #例、オプ...
終了は exit
次のように prunコマンドなどもsbatchと同じく利用できる。
mpirun PROGRAM #場合によっては Segmentation faultす...
prun PROGRAM #主にMPI用、mpirunよりもこちらが推奨ら...
srun PROGRAM #ネイティブコマンドらしい(さらに高機能)
//-------------------------------------------------------...
* pythonの利用(anaconda版) [#nf6e02b6]
** python 3.7.0 [#td34363d]
使い方
$ source /opt/apps/anaconda3.bash_conda #py370
終了は conda deactivate
$ conda list #インストールされているパッケージの一覧表示
主なもの
numpy 1.21.5
scipy 1.7.3
h5py 2.10.0
jupyter 1.0.0
matplotlib 3.5.3
jupytext 1.15.0
** python 3.9.13 [#a4e2103e]
使い方
$ source /opt/apps/anaconda3.bash_conda; conda activate ...
終了は conda deactivate; conda deactivate
$ conda list #インストールされているパッケージの一覧表示
主なもの
numpy 1.25.0
scipy 1.10.1
h5py 3.7.0
jupyter 1.0.0
matplotlib 3.7.1
jupytext 1.15.0
openpyxl 3.0.10
openai 0.27.8
//-------------------------------------------------------...
* ParaView 5.11 [#rf56daa4]
- PyQt5を利用する場合は、LD_LIBRARY_PATHと PYTHONPATHを指...
プログラムへのパス(例では $HOME/hogehoge)も通す。
なお、リモートではなく、コンソールから起動する場合は --me...
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/apps/ParaView-5....
PYTHONPATH=/opt/apps/ParaView-5.11-etc/pypkg:$HOME/hog...
/opt/apps/ParaView-5.11.0-RC2-MPI-Linux-Python3.9-x86_...
(注) リモート接続でワイヤレスを経由する場合、ssh -Y より...
//-------------------------------------------------------...
* Gromacs 2020.4 と vmd 1.9.3 [#ia023148]
gromacsを利用するときは
$ source /opt/apps/gromacs.20204.mpi.avx256/bin/GMXRC ...
$ source /opt/apps/gromacs.20204.mpi.avx256.dbl/bin/GMXR...
のどちらかで環境設定をする。
ジョブスクリプトの例などは、allium:~okazaki/tmp/gmx_chig...
vmdを利用するときは
$ /opt/apps/vmd-1.9.3/bin/vmd-1.9.3
[[LABO/RockyOHPC/スクリプト例]]
//-------------------------------------------------------...
* Gaussian 16 [#ia023148]
g16, gvを利用するときは
$ export g16root=/opt/apps/gaussian16
$ export GAUSS_SCRDIR=$HOME/.gauss_scratch
$ [ -d $HOME/.gauss_scratch ] || mkdir $HOME/.gauss_scra...
$ source $g16root/g16/bsd/g16.profile
により環境設定をする。
$ g16 test0001.com #ジョブスクリプトで動かす例は、別に...
$ gv #VcXsrvごしに利用する場合などは gv -soft での起動...
[[LABO/RockyOHPC/スクリプト例]]
//-------------------------------------------------------...
* nameless [#ocf2b970]
* PySCF 1.7.6 [#n65cc2ed]
* PyEDB [#yc6e6291]
* jupyter notebookの利用 [#u0638fc5]
//-------------------------------------------------------...
* kalmia.eit.hirosaki-u.ac.jp の構成(2025/05/30現在) [#...
Frontend nodes
kalmia.eit.hirosaki-u.ac.jp: i7-13700K (P8E8core) HT d...
Compute nodes
c101.local: i5 (4core) 利用可なメモリ約14GB
c102.local: i5 (4core) 〃 14GB
c103.local: i5 (4core) 〃 14GB
c104.local: i5 (4core) 〃 14GB
c105.local: i5 (4core) 〃 14GB
c171.local: i7 (4core) 〃 30GB
c172.local: i7 (8core) 〃 126GB
詳細なスペック
kalmia c101 ...
-------------- -------------- ...
cpu i7-13700K i5-3470 ...
P8E8(HT,disa) 4(noHT) ...
P5.30,E4.20GHz 3.60GHz ...
-- -- ...
発売日 Q4'22 Q2'12 ...
リソグラフィー ? 22nm ...
最大メモリー帯域幅 89.6GB/s 25.6GB/s ...
命令セット拡張 SSE4.1,SSE4.2,AVX2 SSE4.1,SSE4.2,A...
メモリ DDR5-5200,32GB DDR3-1600,16GB ...
MB PRIME B760M-K-CSM ? ...
HDD NVMe6TB, HDD8.5TB -- ...
MB BIOS ver ? ? ...
ケース sharkoon SHA-VS7 ? ...
VC Geforce RTX 4070 ? ...
VENTUS 2X 12G OC ...
電源 750W/85+ ? ...
c105 c171 ...
-------------- -------------- ...
cpu i5-3470 i7-3770 ...
4(noHT) 4(noHT) ...
3.60GHz 3.4GHz ...
-- -- ...
発売日 Q2'12 ? ...
リソグラフィー 22nm ? ...
最大メモリー帯域幅 25.6GB/s ? ...
命令セット拡張 SSE4.1,SSE4.2,AVX ? ...
メモリ DDR3-1600,16GB DDR3,32GB ...
MB ? ? ...
HDD -- HDD250GB ...
MB BIOS ver ? ? ...
ケース ? ? ...
VC ? ? ...
...
電源 ? ? ...
* hydrangea.eit.hirosaki-u.ac.jp の構成(2025/05/30現在)...
テスト用
Frontend nodes
hydrangea.eit.hirosaki-u.ac.jp: i7-5960X (8core) HT di...
Compute nodes
c101.local: i3 (2core) 利用可なメモリ約6GB
c102.local: i5 (4core) 〃 14GB
詳細なスペック
hydrangea c101 ...
-------------- -------------- ...
cpu i7-5960X i3-4150 ...
8core(HT,disa) 2core(noHT) ...
3.00GHz 3.50GHz ...
-- -- ...
発売日 Q3'14 Q2'14 ...
リソグラフィー 22nm 22nm ...
最大メモリー帯域幅 68GB/s 25.6GB/s ...
命令セット拡張 SSE4.2,AVX2 SSE4.1,SSE4.2,A...
メモリ DDR4-3200,32GB空有 ?,8GB ...
MB X99-M WS SE ? ...
HDD NVMe500GB,HDD6.5TB HDD250GB ...
MB BIOS ver 4001(2019/08/01) ? ...
ケース ANTEX P100(ATX) ? ...
VC Geforce GTX 1650 ? ...
4GT LP ...
電源 In-win CB1250W(80+) ? ...
//-------------------------------------------------------...
* 新規ユーザの追加方法、パスワードの変更方法 [#b6976fac]
$ sudo useradd -m -u UID uhoge #UIDはマシン間で統一
$ sudo passwd uhoge
$ sudo wwsh file resync passwd shadow group #ユーザ追...
$ sudo pdsh -w c10[1-5] /warewulf/bin/wwgetfiles #DB情...
(ERROR: wwgetfiles already running が出るときがある...
→[[LABO/研究室のアカウントの作り方>https://orange.eit.hir...
パスワード変更はフロントエンドで、
$ passwd
をし、sudoか rootユーザが
$ sudo wwsh file resync passwd shadow group #5分毎で自動
をするものと思われる。
rootユーザのパスワード変更もpasswdをして、wwsh file resy...
と思われる。
//-------------------------------------------------------...
* その他 [#j0ea65d0]
** 用語・備忘録 [#n27489ff]
BOS base operating system, OSのこと
SMS system management server, 管理サーバー(計算ノード...
VNFS virtual node file system, 物理的な計算ノードをSMS...
MBC baseboard management controller, サーバー用マザー...
IPMI Intelligent Platform Management Interface, MBCなど...
フロントエンド 計算ノードにバッチ処理をさせるためのサー...
Nouveau(ヌーヴォー) LinuxカーネルのオープンソースNVIDIA...
** clush,pdsh(複数ホストでのコマンドの並列実行) [#feb3df2d]
$ clush -g compute -L 'hostname; uptime' #計算ノードのみ
$ clush -g all -L 'hostname; uptime' #フロントエン...
$ pdsh -w 'c10[1,2],kalmia' 'hostname; uptime'
$ pdsh -w 'c10[1,2],kalmia' 'hostname; uptime' | dshbak ...
** module (Lmod) [#n4e1f82c]
module avail #利用可能なモジュールを表示(ロード状態...
module overview #モジュール名と数(ver違い)だけ表示
module show gnu13 #モジュールのロードで、どのように環...
module list #読み込んでいるモジュール
module load gnu13 #モジュールのロード
module unload gnu13 #読み込んだモジュールの破棄
module purge #読み込んだすべてのモジュールの破棄
alliumはEnvironment module、kalmiaはLmodの moduleが使わ...
LmodはEnvironment moduleのファイル(先頭に#%Moduleあり)を...
$ module use /opt/apps/nvidia/hpc_sdk/modulefiles #use...
$ module load nvhpc #load...
$ module avail #確認
kalmiaで pgcc testPrime.c はエラー。nvc testPrime.c はOK。
nvcはpgccの後継で、最新のgcc独自の規格に対応らしい。
//-------------------------------------------------------...
** slurmの使い方 [#ve2b05af]
*** sinfo, scontrol [#j131b46f]
パーティション・ノード数など表示
$ sinfo -s
$ sinfo -al
他のオプション
--help や --usage
-V バージョン
-a 全てのパーティション
-l もっと情報表示
-R ダウン等にあるノードと理由を表示
$ scontrol show partition [パーティション名] #...
$ scontrol show nodes [ノード名(計算ノードホスト名)] #...
$ scontrol show JOBID #ジョブの状況表示
なぜか走らないときなどは次を確認など。
- Reason=Resources のとき、単にリソース待ち
- Reason=PartitionConfig のとき、リソースを超えた要...
*** sbatch [#xfddb62f]
サブミットする
$ sbatch [-p キュー(パーティション)] [-N ノード数] [-w ...
[-n プロセス(タスク)数] [-c スレッド数/プロセス...
他のオプションなど
--help や --usage
-J JOBNAME ジョブ名指定(デフォルトはスクリプト名)
Gresプラグインが追加されていると、GPUリソースのスケ...
-Nのノード数は指定しなくても自動的に決められるようだ。
例) sbatch -w 'c101,c102' jobscript.sh #ノードc101,c1...
sbatch -d afterany:152 jobscript.sh #ジョブID 152...
//-------------------------------------------------------...
** 設定関係 [#cd71ba78]
*** NICのWOL確認 [#r950c56a]
$ sudo clush -g all -L 'for n in `cd /sys/class/net; /bi...
echo $n; ethtool $n | grep Wake; done'
*** wwsh [#ca08708c]
$ sudo wwsh #wwshプロンプトで作業する場合
Warewulf> file list
Warewulf> node help #ヘルプ表示
Warewulf> pxe help
Warewulf> quit
wwsh provisionのオプションも、複数に分けて設定実行できる。
いくつかの表示(provision printと object print)
wwsh provision print c101 c102
wwsh object print c10[1,2] -p :all #provision printと...
wwsh object print c101 c102 -p :all
*** slurm.conf関係 [#nb1e5b9e]
[ref]
- https://www.hpc.co.jp/support/wp-content/uploads/sites/...
- https://qiita.com/daikumatan/items/fa6e2069adf828b3428c
- https://slurm.schedmd.com/sstat.html
ノードをshutdownしてもupのまま(STATEを見よ)。
/etc/slurm/slurm.conf の SlurmdTimeout=300 により、shutd...
5分後に down* になるようだ。*付きは何かの特別な状態を表...
ノードを立ち上げると downになる。(down*のときに、フロン...
自動的には簡単に idelにはならない?ので明示的に指定する...
$ sudo scontrol update NodeName=c10[1-2],kalmia state=idle
slurm.confで State=UNKNOWN にしているからか?
stateに resumeというもものある(ジョブが無い時に自動...
起動する状態らしい)。
slurm.confの変更を反映させるのは、これでよさげ。
$ sudo systemctl restart slurmctld
$ sudo pdsh -w 'c10[1,2],hydrangea' "systemctl restart ...
$ scontrol show config
GroupUpdateTime = 600 sec
HealthCheckInterval = 300 sec
JobAcctGatherFrequency = 30
など情報表示
$ scontrol show node
$ scontrol show partition
[cf] https://slurm.schedmd.com/configurator.html slurm.co...
でない。何かの参考になる?)
//-------------------------------------------------------...
ページ名: