チュートリアル SMASH version 2.2.0 (Linux 64 ビット版 )
本チュートリアルでは 量子化学計算ソフトウェア SMASH バージョン 2.2.0 について ソフトウェアの入手 / 実行モジュール作成 / 計算実行 / 可視化処理までを例示します 1. ソフトウェアの入手以下の URL よりダウンロードします https://sourceforge.net/projects/smash-qc/files/smash-2.2.0.tgz/download Linux のコマンドラインでは 例えば wget コマンドにより $ wget https://sourceforge.net/projects/smash-qc/files/smash-2.2.0.tg z/download -O smash-2.2.0.tgz(1 行で入力してください ) のようにダウンロードします 2. システム環境本チュートリアルでは 以下のシステム環境を仮定します 1 OS:RedHat Enterprise Linux 7.2 2 コンパイラ : インテル Parallel Studio XE Cluster Edition for Linux 17.0.4 3 MPI: インテル MPI ライブラリ for Linux 2017 Update 3 ( 上記コンパイラに同梱のバージョン コマンド :mpiifort) 4 数学ライブラリ : インテル Math Kernel Library for Linux ( 上記コンパイラに同梱のバージョン ) 3. ログイン TeraTerm などの端末エミュレータによって上記システムにログインします 以降同ウィンドウにて操作します 4. 実行モジュール作成詳細は SMASH version2.2.0 インストール手順書 の 3. アプリケーションのインストールをご参照ください Intel コンパイラ及び MPI ライブラリの環境変数を設定 $. /opt/intel/compilers_and_libraries_2017.4.196/linux/bin/ifortvar s.sh intel64(1 行で入力してください ) アプリケーションファイルの展開ダウンロードした圧縮ファイルを展開します $ tar xvf smash-2.2.0.tgz コンパイル圧縮ファイルの展開により smash ディレクトリが出来るので移動します $ cd smash Makefile.mpiifort のコンパイル オプションを変更し コンパイル リンクを実行します $ sed -i 's/opt = -openmp -i8 -xhost -ilp64/opt = -qopenmp -i8 -xhost - ilp64/' Makefile.mpiifort(1 行で入力してください ) $ make -f Makefile.mpiifort 以下のように bin ディレクトリの下に実行モジュール smash が生成されます bin/smash 5. 計算実行実行方法の詳細は SMASH version2.2.0 インストール手順書 の 4. 動作確認の実施をご参照ください 入力データの内容については ユーザーマニュアル ver. 2.2.0 の 7. キーワード内容をご参照ください ユーザーマニュアルは以下の URL からダウンロードできます https://sourceforge.net/projects/smash-qc/files/smash_user_manual_jp-2.2.0.pdf/download
複数の例題が smash/example ディレクトリ下にあります example ディレクトリに移動 ( 現在 smash ディレクトリにいるものとします ) $ cd example 入力データ変更 ( チェックポイントファイル出力 ) 入力データ A.inp ファイルにおいて job runtype 行と geom 行の間に control check=a.chk を挿入します ここで A は識別可能なファイル名とします (check-generation.inp には既にチェックポイントファイル出力指示が入っています ) 実行シェルスクリプト SLURM での実行用シェルスクリプトの例 (run.sh) を以下に示します $ cat run.sh #!/bin/bash #SBATCH -p knl #SBATCH -N ノード数 #SBATCH -t 3:00:00 #SBATCH -J ジョブ名 ulimit -s unlimited export OMP_STACKSIZE=1G export SLURM_TASKS_PER_NODE=64 export OMP_NUM_THREADS= スレッド数. /opt/intel/compilers_and_libraries_2017.4.196/linux/bin/ifortvars.sh intel64 mpirun -np プロセス数 インストールディレクトリ /bin/smash < input ファイル名 > output ログファイル名 2>&1 バッチ実行上記 run.sh を計算ノードに投入しバッチ実行します $ sbatch run.sh 実行状況は squeue コマンドで確認 また 実行を取り消す場合は scancel コマンドを使います 計算結果の確認計算が正常終了していれば output ログファイルにおいて $ tail output ログファイル名 ( 略 ) Your calculation finished with 0 warning(s). が記されています 6. 可視化処理計算が正常終了すると example ディレクトリには output ログファイル 及びチェックポイントファイル (anthracene.chk) が出力されます visual/ ディレクトリには チェックポイントファイルから cube ファイル vtk ファイルを生成するためのユーティリティ (cube-generator, vtk-generator) のソースが置かれています 以下のようにユーティリティの実行モジュールを作成できます ディレクトリ移動 ( 現在 example ディレクトリにいるものとします ) $ cd../visual コンパイル Makefile のコンパイル オプションを変更し コンパイル リンクを実行します $ sed -i 's/opt = -openmp -i8 -xhost/opt = -qopenmp -i8 -xhost/' Makefile(1 行で入力してください ) $ make 同ディレクトリに cube-generator, vtk-generator が生成されます
これらユーティリティは実行モジュール smash と同じディレクトリ (bin) に置くものとします $ cp -p *-generator../bin/ cube, vtk ファイルの生成詳細は visual ディレクトリにある cube-generator_manual 及び vtk-generator_manual をご参照ください ファイル生成ジョブは計算ノードにてバッチ実行します 実行シェルスクリプト実行用のシェルスクリプトの例 (run_cube-vtk.sh) を以下に示します $ cat run_cube-vtk.sh #!/bin/bash #SBATCH -p knl #SBATCH -N ノード数 #SBATCH -t 3:00:00 #SBATCH -J ジョブ名 ulimit -s unlimited export OMP_STACKSIZE=1G export SLURM_TASKS_PER_NODE=64 export OMP_NUM_THREADS= スレッド数. /opt/intel/compilers_and_libraries_2017.4.196/linux/bin/ifortvars.sh intel64 インストールディレクトリ /bin/cube-generator A.chk A-homo.cube MO HOMO 2>&1 インストールディレクトリ /bin/vtk-generator A.chk A-homo.vtk MO HOMO 2>&1 バッチ実行上記 run_cube-vtk.sh を計算ノードに投入しバッチ実行します $ sbatch run_cube-vtk.sh 正常終了すると上記例では A-homo.cube, A-homo.vtk が出力されます ParaView による可視化詳細は visual/ ディレクトリにある vtk-generator_manual をご参照ください ParaView は手元の PC にて稼動しているものとします 上記 vtk ファイルと visual/ ディレクトリ下の mo-view.pvsm を winscp 等を用いて PC に転送します 可視化手順 ) 1 PC 側にフォルダ smash vtk を作成し 上記 vtk ファイル, mo-view.pvsm を格納 2 ParaView 起動 3 File/Load State にて smash vtk フォルダに格納した mo-view.pvsm を読込み 4 smash vtk フォルダに格納した vtk ファイルを指定
Fig.1 example/check-generation のチェックポイントファイル anthracene.chk から vtk ファイルを生成し ParaView にて可視化 以上