Kω体験記(2018.06.17)
Last Update:2021/12/09
X線散乱実験など行っている実験家が使ったり,理論家が実験家に興味をもってもらうには,動的構造因子の計算が欠かせません.Kωはランチョス法などの数値厳密対角化と類似の手法で効率よく動的構造因子の計算をするライブラリで,そうした目的には便利そうです.今回は物性研スパコンにインストール済みのものを使った体験を書いてみます.
■クイックスタート
マニュアルを読むのが王道ですが,以下のページにクイックスタートのための情報があるので,横着をして,まずはそれをなぞってみます.
http://www.issp.u-tokyo.ac.jp/supercom/softwaredev/softwareall/komega
まずは物性研スパコン sekirei.issp.u-tokyo.ac.jp にログインして,環境変数の設定.
$ source /home/issp/materiapps/tool/Komega/Komegavars.sh
これはうまく通ります.次に,
$ cp -rf $KOMEGA_ROOT/sample/Komega .
とやってみると,なにか違うみたいですね.そんなフォルダはないと叱られてしまいました.
$ /home/issp/materiapps/tool/Komega/Komega-2.0.0-0/sample/
が存在しないようです.あとで,開発者に連絡しておくことにして,いろいろ見まわしてみると,旧バージョンなら対応するフォルダがあるようです.なので,Komegavars.sh を手元にコピーして,このファイルの中に書いてあるバージョン名「 2.0.0」 を「 1.0.0」 に書き換えてやり直してみます.今度は cp -rf ができました.さて,
$ make
とやると,makefile がないようです.make のまえに
$ cd Komega
が必要でした.こういう当たり前のことはクイックスタートにはいちいち書かない流儀のようです.再び
$ make
今度はうまくいきました.さて,何ができたんでしょうか.リンクして使うためのモジュールファイルはいろいろできたみたいですが,実行ファイルは生成されないようです.やはりあるはずでなかったバージョン2.0.0以降の sample ディレクトリを置いておいてもらわないと,これ以上クイックスタートをそのままなぞることはできないか...と思って,新バージョンのディレクトリをのぞいてみると,bin の中に ShiftK.out という実行ファイルらしいものがありました.もしかすると,新バージョンでインストラクションどおりに make することができたとするとこれができるということなのかもしれません.
■実行ファイルの使い方
どうやらそのようなので,これを使ってみましょう.実行ファイルの使い方についてはインストラクションページには直接記述がないので,マニュアルを見ないといけません.インストラクションページの上のほうにマニュアルへのリンクがあります.「ミニアプリのマニュアル 」というのがそれらしいので,クリックしてみると,自分自身へのリンクのなっているようでどこにも行ってくれません.うーむ...なかなか手ごわいページです.やはり本家のページにいかないとだめですね.github の Kωページ経由でマニュアルページ
https://issp-center-dev.github.io/Komega/software/ja/_build/html/index.html
にたどり着きました.この中にでている入力ファイルのサンプルをコピペして namelist.def という名前のファイルを作りました.中身は以下のとおり.
&filename inham = "" invec = "" / &ham nsite = 4 Jx = 1d0 Jy = 1d0 Jz = 1d0 Dz = 0d0 / &cg maxloops = 100 convfactor = 6 / &dyn calctype = "normal" nomega = 100 omegamin = (-2d0, 0.1d0) omegamax = ( 1d0, 0.1d0) outrestart = .TRUE. / 4サイトのハイゼンベルクモデルのようですね.手でもできるサイズですが,とにかく練習ということでこれでやってみます.バッチシステムで実行する場合には,ジョブスクリプトも必要です.job.sh として以下の中身のファイルを作りました.
!/bin/sh
#QSUB -queue i18cpu
#QSUB -node 18
#QSUB -mpi 18
#QSUB -omp 24
#QSUB -place pack
#QSUB -over false
#PBS -l walltime=00:10:00
#PBS -N KOMEGA_TEST
date
source /home/issp/materiapps/tool/Komega/Komegavars.sh
mpijob ${KOMEGA_ROOT}/bin/ShiftK.out ./namelist.def
date
ジョブを投入します.
$ qsub job.sh
まつこと1分程度で終わりました.うまくいかなかったみたいです.エラーメッセージファイル KOMEGA_TEST.e???????? を見てみると,プログラムは走ったみたいですが,
ERROR ! Number of processes is not 2-exponent.
というメッセージを出して停止しています.プロセス数18で投げたのですが,プロセス数は2のべき乗でないと走ってくれないようです.
#QSUB -node 16
#QSUB -mpi 16
のように,job.shの中の18を2か所16にして再挑戦.待つこと1分...今度はうまくいきました.結果ファイルが output フォルダの中に格納されています.
...今日は時間切れになってしまったので,結果の見方については別の機会に...