1.1.Gaussianの実行

目次 (1.1.Gaussianの実行)

1.1.   Gaussianの実行
1.1.1.  環境の設定
1.1.2.  ジョブ投入スクリプトの作成
1.1.2.1. 環境変数「GAUSS_SCRDIR」の指定(/work)
1.1.3.  ジョブ投入スクリプトの実行

▲このページの先頭へ

1.1. Gaussian の実行

以下ではフロントエンドサーバにログインし、SLURM を利用したジョブ投入スクリプトとしてGaussian の計算を実行する方法を説明します。

1.1.1. 環境の設定

利用したいバージョンのGaussian の環境を設定します。
適切な環境設定ファイルを読み込んでください。下記の通り設定をジョブ投入スクリプトに記述してください。
(シェルの環境設定ファイル $HOME/.bashrc に記述することも可能です)
まず、利用する Gaussian のトップディレクトリを g16root として読み込みます。
利用するバージョンに応じて下記のいずれかの行を指定してください

設定値 (Gaussian16 Rev.A 03) 説明
export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_legacy # G16 Rev. A03 バイナリ版 (legacy)
export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_sse4 # G16 Rev. A03 バイナリ版 (SSE4)
export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_avx # G16 Rev. A03 バイナリ版 (AVX)
export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_avx2 # G16 Rev. A03 バイナリ版 (AVX2)
設定値 (Gaussian16 Rev.B 01) 説明
export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_legacy # G16 Rev. B01 バイナリ版(legacy)
export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_sse4 # G16 Rev. B01 バイナリ版(SSE4)
export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_avx # G16 Rev. B01 バイナリ版(AVX)
export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_avx2 # G16 Rev. B01 バイナリ版(AVX2)
設定値 (Gaussian16 Rev.C 01) 説明
export g16root=/home1/share/x86_64/el8/Gaussian/g16c01_sse4 # G16 Rev. C01 バイナリ版(SSE4.2)
export g16root=/home1/share/x86_64/el8/Gaussian/g16c01_avx # G16 Rev. C01 バイナリ版(AVX)
export g16root=/home1/share/x86_64/el8/Gaussian/g16c01_avx2 # G16 Rev. C01 バイナリ版(AVX2)
export g16root=/home1/share/A64FX/Gaussian/g16c01_a64fx # G16 Rev. C01 バイナリ版 (A64FX)Xシステム
設定値 (Gaussian16 Rev.C 02) 説明
export g16root=/home1/share/x86_64/el8/Gaussian/g16c02_avx2 # G16 Rev. C02 バイナリ版 全システム版(AVX2)

G16実行状況一覧表 (2024.04 更新)

○: 実行可能
×: 実行不可
Ver.形式SIMD対応導入ディレクトリ名
/home1/share/
x86_64/el8/Gaussian
ABFHQRS
32
S
92
S
192
VWZX備考
G16 Rev.C 02バイナリAVX2g16c02_avx2×××
G16 Rev.C 01バイナリSSE4g16c01_sse4×△:64並列まで
G16 Rev.C 01バイナリAVXg16c01_avx×××△:128並列まで
G16 Rev.C 01バイナリAVX2g16c01_avx2×××△:128並列まで
G16 Rev.C 01バイナリ--g16c01_a64fx××××××××××××
G16 Rev.B 01バイナリ(Legacy)g16b01_lagacy×
G16 Rev.B 01バイナリSSE4g16b01_sse4×
G16 Rev.B 01バイナリAVXg16b01_avx××××××××
G16 Rev.B 01バイナリAVX2g16b01_avx2××××××××
G16 Rev.A 03バイナリ(Legacy)g16a03_legacy××××××
G16 Rev.A 03バイナリSSE4g16a03_sse4××××××
G16 Rev.A 03バイナリAVX g16a03_avx××××××××
G16 Rev.A 03バイナリAVX2g16a03_avx2××××××××

利用するGaussianの設定後、プロファイルを読み込みます。

source $g16root/g16/bsd/g16.profile

 

▲このページの先頭へ

1.1.2. ジョブ投入スクリプトの作成

サンプルスクリプトを参考にして、ジョブ投入スクリプトを作成します。
また、/home1/share/x86_64/el8/Gaussian/FOCUS_sample/ にジョブ投入スクリプト例を置いておりますので参考にしてください。

(A64FX版は/home1/share/A64FX/Gaussian/g16c01_a64fx/FOCUS_sample 内にあるサンプルスクリプトを参考にしてください)

・ノード内並列用サンプルスクリプト:sample.sh

#!/bin/bash
#SBATCH -p s006m_032c             # キュー名
#SBATCH -N 1                            # 実行ノード数
#SBATCH -n 32                          # 最大プロセス数
#SBATCH -J g16sample                 # ジョブ名
#SBATCH -o %x.o%J                      # 標準出力ファイル、%JはSLURMが割り当てるジョブIDに置換
#SBATCH -e %x.e%J                      # 標準エラー出力ファイル、%Jは同上

### Gaussian環境設定(以下いずれかをexport(コメント(#)削除))
#export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_avx                   # G16 Rev.A03 binary版 AVX
#export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_avx2                # G16 Rev.A03 binary版 AVX2
#export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_legacy             # G16 Rev.A03 binary版 Legacy
#export g16root=/home1/share/x86_64/el8/Gaussian/g16a03_sse4                # G16 Rev.A03 binary版 SSE4
#export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_avx                  # G16 Rev.B01 binary版 AVX
#export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_avx2               # G16 Rev.B01 binary版 AVX2
#export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_legacy            # G16 Rev.B01 binary版 Legacy
#export g16root=/home1/share/x86_64/el8/Gaussian/g16b01_sse4               # G16 Rev.B01 binary版 sse4
#export g16root=/home1/share/x86_64/el8/Gaussian/g16c01_avx                 # G16 Rev.C01 binary版 AVX
#export g16root=/home1/share/x86_64/el8/Gaussian/g16c01_avx2               # G16 Rev.C01 binary版 AVX2
#export g16root=/home1/share/x86_64/el8/Gaussian/g16c01_sse4               # G16 Rev.C01 binary版 SSE4
 export g16root=/home1/share/x86_64/el8/Gaussian/g16c02_avx2               # G16 Rev.C02 binary版 AVX2

source   $g16root/g16/bsd/g16.profile              # Gaussian環境設定

export INPUT=test0397x                           # 入力ファイルの指定
export GAUSS_SCRDIR=/work                   # GAUSS_SCRDIRの指定

time g16 <${INPUT}.com > ${INPUT}.log             # 実行

▲このページの先頭へ

1.1.2.1. 環境変数「GAUSS_SCRDIR」の指定(/work)

環境変数「GAUSS_SCRDIR」ではGaussian の作業ファイル(※)が作成されるスクラッチディレクトリを指定します。/work 配下を指定してください。
※「Gau-プロセスID.拡張子」というファイルで、ジョブが終われば自動的に消されます。

環境変数「GAUSS_SCRDIR」の指定を行わない場合は、Gaussian 環境設定ファイルにて指定されているディレクトリ(ホームディレクトリ内tmp)がスクラッチディレクトリとして設定されます。

演算ノードのローカルディレクトリ(/work)や、分散ファイルシステム(/home3)は、比較的高速に書込みを行いますが、それに対し各アカウントのホームディレクトリ(/home1)は書込みが遅く、他の利用者も含めて同時に多数のGaussianジョブが流れると、この書き込み速度をそれらのジョブで分け合うことになり、書込み速度が低下します。このことから /work/home3の使用を推奨します。

▲このページの先頭へ

1.1.3. ジョブ投入スクリプトの実行

sbatch コマンドを使ってジョブ投入スクリプト(例:sample.sh)を実行します。

$ sbatch sample.sh

▲このページの先頭へ