シフト型クリロフ部分空間解法を用いた大規模疎行列向け並列化数値計算ルーチン。ハミルトニアン行列と状態ベクトルを入力として動的相関関数を効率よく計算することが可能。汎用な数値ライブラリであり、多体量子模型ソルバーHΦでの動的グリーン関数の計算機能の実装などに利用されている。また、Heisenberg模型などの量子格子模型の動的相関関数を計算するミニアプリが付属している。

ホームページ

公式ページ: https://www.pasums.issp.u-tokyo.ac.jp/komega

GitHub: https://github.com/issp-center-dev/Komega

MateriApps: http://ma.cms-initiative.jp/ja/listapps/komega/komega

マニュアル

公式ページよりダウンロード可能。

インストール済最新バージョン

2.0.0 (2020/12/10 現在)

物性研スパコン(システムB)での利用方法

  • Kωのインストール場所
    /home/issp/materiapps/intel/komega/
  • モジュールファイル(ヘッダファイル)のインストール場所
    /home/issp/materiapps/intel/komega/komega-2.0.0-0/include/
  • ライブラリのインストール場所
    /home/issp/materiapps/intel/komega/komega-2.0.0-0/lib/
  • ミニアプリのインストール場所
    /home/issp/materiapps/intel/komega/komega-2.0.0-0/bin/
    (*) ビルド時のオプション等は
    $ less /home/issp/materiapps/intel/komega/komega-2.0.0-0.log
    で確認できます。
  • サンプルスクリプトと入力ファイルの場所
    /home/issp/materiapps/intel/komega/komega-2.0.0-0/sample/
  • 実行方法 (例:4サイト1次元HeisenbergのGreen関数の計算)
    1.  計算環境の準備
      $  source /home/issp/materiapps/intel/komega/komegavars.sh
      これにより、最新バージョンのKωのバイナリファイルへのPATHが通ります。また、環境変数 KOMEGA_ROOT にKω のインストールディレクトリのパスが保存されます。
    2. 入力ファイルの準備
      $ cp -r $KOMEGA_ROOT/sample/ShiftK/denovo/ . && cd denovo
    3. ジョブのサブミット
      実行ファイルは$KOMEGA_ROOT/bin/ShiftK.outにあり、入力ファイルはnamelist.defです。 ジョブ投入時には、例えば以下のジョブスクリプト(sample_job.sh)を作成します。
      #!/bin/sh
      #!/bin/sh
      
      #SBATCH -p i8cpu
      #SBATCH -N 1
      #SBATCH -n 4
      #SBATCH -c 32
      #SBATCH -t 00:10:00
      
      set -e
      
      source /home/issp/materiapps/intel/komega/komegavars.sh
      module list
      
      srun ShiftK.out namelist.def
      その上で、
      $ sbatch ./sample_job.sh
      を実行することで、サンプルの計算が可能です。なお、実行ファイルのプロセス数は並列化の関係上、2のべき乗にする必要があります。計算が終了すると、output/ フォルダにTriDiagComp.dat, ResVec.dat, dynamicalG.datが出力されます.  ここで, TriDiagComp.dat はリスタート用の係数およびノルムが格納されているファイル, ResVec.dat はリスタート用の残差ベクトルが格納されているファイル, dynamicalG.dat は動的グリーン関数の計算結果が格納されているファイルをそれぞれ表します. 各ファイルのフォーマットやテスト計算内容の詳細については、ミニアプリのマニュアルをご覧ください。

物性研スパコン(システムC)での利用方法

  • Kωのインストール場所
    /home/issp/materiapps/komega/
  • モジュールファイル(ヘッダファイル)のインストール場所
    /home/issp/materiapps/komega/komega-2.0.0-0/include/
  • ライブラリのインストール場所
    /home/issp/materiapps/komega/komega-2.0.0-0/lib/
  • ミニアプリのインストール場所
    /home/issp/materiapps/komega/komega-2.0.0-0/bin/
    (*) このバイナリはMPTを用いてビルドされています。デフォルト(MPT)設定ではなくintelMPIを使っている方はmoduleコマンドでMPTに切り替える必要があります。なお、ビルド時のオプション等は
    $ less /home/issp/materiapps/komega/komega-2.0.0-0.log
    で確認できます。
  • サンプルスクリプトと入力ファイルの場所
    /home/issp/materiapps/komega/komega-2.0.0-0/sample/
  • 実行方法 (例:4サイト1次元HeisenbergのGreen関数の計算)
    1.  計算環境の準備
      $  source /home/issp/materiapps/komega/komegavars.sh
      これにより、最新バージョンのKωのバイナリファイルへのPATHが通ります。また、環境変数 KOMEGA_ROOT にKω のインストールディレクトリのパスが保存されます。
    2. 入力ファイルの準備
      $ cp -r $KOMEGA_ROOT/sample/ShiftK/denovo/ . && cd denovo
    3. ジョブのサブミット
      実行ファイルは$KOMEGA_ROOT/bin/ShiftK.outにあり、入力ファイルはnamelist.defです。 ジョブ投入時には、例えば以下のジョブスクリプト(sample_job.sh)を作成します。
      #!/bin/sh
      #QSUB -queue i18cpu
      #QSUB -node  4
      #QSUB -mpi   4
      #QSUB -omp   24
      #QSUB -place pack
      #QSUB -over false
      #PBS -l walltime=00:10:00
      #PBS -N KOmega
      
      source /home/issp/materiapps/komega/komegavars.sh
      cd ${PBS_O_WORKDIR}
      mpijob ShiftK.out namelist.def
      
      その上で、
      $ qsub ./sample_job.sh
      を実行することで、サンプルの計算が可能です。なお、実行ファイルのプロセス数は並列化の関係上、2のべき乗にする必要があります。計算が終了すると、output/ フォルダにTriDiagComp.dat, ResVec.dat, dynamicalG.datが出力されます.  ここで, TriDiagComp.dat はリスタート用の係数およびノルムが格納されているファイル, ResVec.dat はリスタート用の残差ベクトルが格納されているファイル, dynamicalG.dat は動的グリーン関数の計算結果が格納されているファイルをそれぞれ表します. 各ファイルのフォーマットやテスト計算内容の詳細については、ミニアプリのマニュアルをご覧ください。

問い合わせ先

  • 物性研スパコンシステムにおける実行方法について
    物性研スパコン対応ソフトウェア相談窓口 center-apps@issp.u-tokyo.ac.jp