計算モジュール(CASTEP,Dmol3など)をコマンドラインから実行する方法

Materials Studioに附属する計算モジュールを使ったジョブ投入の方法としては、大きく分けて2通りの方法があります。 ひとつは Materials Studioの GUI からネットワークを介してジョブを計算サーバへ投入する方法であり、 もうひとつは一旦その GUIを使って計算に必要なファイルを作成して、計算サーバー上で直接ジョブを実行する方法です。
どちらでも利用できるバッチジョブのキューに違いはありませんが、指定可能CPU数は利用されるキューに関わらず、 前者では8までとなります。 後者の場合には各キューの制限値がそのまま実行可能な最大CPU数となります。

以下では、後者の方法で特に CASTEP の場合を例にとって説明します。

実行手順


Step 1
最初に、Materials Studio上で入力ファイルを作成します。 そのために、計算設定を行ったあと、"CASTEP Calculation"ダイアログにて 「Files...」ボタンをクリックします。



Step 2
次に下図のように" CASTEP Job Files"ダイアログにて、「Save Files」をクリックします。
その結果、右図のように Project ウィンドウに新規フォルダが作成され、 そのフォルダ内に入力ファイルが作成されます。



Step 3
ファイル転送ソフトなどを使って、入力ファイルをディレクトリごと計算サーバへ転送します。もし、入力ファイルの保存場所が不明の時には、 フォルダ名をマウス右ボタンでクリックして、「場所:」の行をみることで確認できます。 また、もしディレクトリに空白や日本語が含まれている場合には、英数字のみへ変更してください。そのままでは、計算サーバがUNIX環境であるため、正しく処理ができない場合があります。



Step 4
計算サーバにディレクトリを転送後、そのディレクトリ内で以下のコマンドを実行してください。

perl -i -pe 's/\r//' *
このコマンドにより、Windowsで利用される改行コードを UNIXで利用される改行コードへ変換することができます。 この変換を行わない場合、バッチジョブとして実行した際に、
/var/spool/PBS_MOM/mom_priv/jobs/10383.uva.SC: Command not found.
といったエラーメッセージが出力され、ジョブが正常に実行されない場合があります。


Step 5
以下では、転送されたディレクトリ名が l_alanine と仮定して説明します。
転送されたディレクトリに移動し、バッチファイルを作成してください。
以下にバッチファイルの例を示します。

#!/bin/csh
#PBS -q SMALL
#PBS -N castep_job
#PBS -l ncpus=2

cd $PBS_O_WORKDIR
RunCASTEP.sh -np 2 l_alanine

RunCASTEP.sh の引数は、転送したディレクトリ内のファイルの拡張子をはずした名前としてください。 上記では、その名前は l_alanine となっています。
また、ncpus で指定する CPU数と RunCASTEP.sh で指定する CPU数は必ず同じにしてください。


Step 6
最後に、作成したバッチスクリプトをバッチ投入コマンド qsub で実行させます。 以下では、上記のバッチスクリプト名を castep.qsub としています。また、qstat -a でジョブの状況も確認できます。詳しくは、PBSジョブ投入システムをご参照下さい。

% qsub castep.qsub
9169.uva
% qstat -a

uva: 
                                                            Req'd  Req'd   Elap
Job ID          Username Queue    Jobname    SessID NDS TSK Memory Time  S Time
--------------- -------- -------- ---------- ------ --- --- ------ ----- - -----
9169.uva     fukumoto SMALL    castep_job  31019   1   2    2gb 672:0 R 00:00


Step 7
バッチジョブが終了後、必要に応じて計算結果ファイルを端末PCに転送し、再度 Materials Studio にて結果を表示させることができます。