ホーム > 計算化学 > ソフトウェア > Gaussian > Gaussian Tips > Gaussian計算エラー対処・虎の巻/第7回配信: Link 0コマンド指定に関するエラー

Gaussian入門メールニュース:
Gaussian計算エラー対処・虎の巻

計算がエラーで止まってしまった!でもどうすればいいかわからない。
結果が何かおかしい。どこがいけなかったのだろうか?
といった疑問の解決に少しでもお力添えするべく、よくあるエラーを中心に、直接的な対処法から簡単な理論的背景まで含めて解説いたします。

第7回配信: Link 0コマンド指定に関するエラー

 前回までの配信では、Gaussian計算に伴うエラーに本格的に対処していくために、「第2部 Gaussianでエラーが起こる仕組みを知る」と題し、量子化学計算の流れやOverlayとLinkの概念についての解説を行ってきました。ここからは「第3部 Gaussianエラー対処各論」と題して、いよいよ、さまざまなエラーの具体的事例とその対処法をできるだけ例示していきたいと思います。
 とはいえ、第2回配信でも少し触れましたように、Gaussianのエラーは何千種類もあり、いかに多くの実例を紹介したとしても、恐らくGaussianで起こり得る全エラーの1割も紹介することができないでしょう。また、同じエラーメッセージでもその根本原因や対処法は1つではなかったり、逆に見かけ上全然違うエラーメッセージでもその原因や対処法は同じだったりすることもよくあり、エラーメッセージと対処法は一対一に対応しているわけではありません。大事なことは、なぜそのエラーが起きたのかの理屈を理解しながら対処することです。そのためには、これから紹介するエラー事例を、実際のエラー遭遇時に照らし合わせるためだけに読むのではなく、これまで解説してきた、計算やOverlayの流れを頭に思い描きながら読んでいただけると幸いです。
 今回の配信では、Link 0コマンド指定に関するエラーを紹介いたします(「Link 0コマンド」って何だっけ?という方は、第3回配信をご参照下さい)。Link 0コマンド指定でよくあるエラーは、チェックポイントファイルの指定(%Chk)とメモリの指定(%Mem)の2つですので、これらについて解説します。
 また、エラーではありませんが、%NProcSharedの指定を忘れると、マルチコアCPUでの並列化処理が行われず計算が遅くなりますので、ご注意下さい。(%NProcSharedの代わりに%NProcと書いても可ですが、公式には%NProcは廃止コマンド扱いであり、非推奨です。)

(7-1) チェックポイントファイル指定(%Chk)に関するエラー

 チェックポイントファイル(以下、chkファイル)がないのに、そのファイルからデータを読み込もうとするとエラーとなります。こう書くと、実に当たり前にも思えますが、意外と忘れがちで盲点となりやすいです。よくあるミスは、

・インプットファイル内に「%Chk=」コマンドが指定されていない
・インプットファイル内で指定されたchkファイル名と実際のファイル名が一いたしていない
・chkファイルがインプットファイルと同じディレクトリ内にない

などであり、計算ジョブを走らせる前に上記のミスがないかチェックする必要があります。
 実際のエラーのインプットとアウトプット例を示します。下記の計算では、Guess=Readで分子軌道の初期値をchkファイルから読み込もうとしていますが、「%Chk=」でchkファイル名を指定していないため、初期軌道生成に必要な基底関数演算を行うLink 301(Overlay 3)で計算が停止しています。

 また下記の計算では、分子構造最適化における初期構造をGeom=Checkpointでchkファイルから読み込もうとしていますが、「%Chk=」で指定したtest.chkファイルが見つからないため、分子構造の読み込みを行うLink 101(Overlay 1)で計算が停止しています。

 実際問題として、本当に実在しないchkファイルからデータを読み込もうとした場合はエラーで計算が止まるだけなのですが、インプットで指定したchkファイルが、実在しないファイルではなく別の計算のファイルとして実在する場合、もっと深刻な事態が想定されます。この場合は、実在するファイルからデータが読み込まれ、さらに計算結果もそこに上書きされます。こうなると、エラーで止まる可能性ももちろんありますが、エラーで止まらずに正常終了するが正しくない計算結果が得られてしまうだけでなく、正しいchkファイルデータは上書きされて消滅するという最悪のケースがありえますので、chkファイルの指定ミスには十分注意して下さい。
(エラーで止まった方が「何か不適切なことが起こった」とわかる分まだマシで、正常終了してしまうと、誤った結果をそのまま信じてしまう可能性があります。また、大事なchkファイルは万一上書きされてもいいように別のファイル名でコピーしておくとよいでしょう。)

(7-2) メモリ指定(%Mem)に関するエラー

 基本的に、指定したメモリ容量が必要なメモリ容量に足りない場合に、エラー終了します。ただし、必要なメモリ容量は演算処理の種類により違いますから、Overlay 1の時点では十分な容量だったが、Overlay 5では十分ではなくなったということもあります。そのため、メモリ不足によるエラーメッセージは停止した箇所ごとに異なることに注意して下さい。
 また、Gaussianで並列計算を行う場合、並列数に応じて必要なメモリ容量も増大しますが、Gaussianは計算途中でメモリが不足した場合、並列数を自動的に落として計算を続行します。したがって、指定メモリ容量が必要量ギリギリだと、エラーや誤った計算結果にはならないものの、並列数低下により著しく計算速度のパフォーマンスが落ちることがあります。%Memの値は「必要なメモリ容量×並列数」に、さらに少し余裕を見て大きめに指定した方がよいでしょう。
 ただし、第3回配信でも述べましたが、%Memの値をむやみやたらに大きくし過ぎても、却って計算速度のパフォーマンスが落ちることがありますので、注意が必要です。(詳しくは、弊社のGaussian日本語マニュアルをご参照下さい。)また、実際のコンピュータの搭載メモリより大きい値を%Memで指定した場合、Gaussianはハードディスクを仮想メモリとして利用しながら計算を続行します。したがって、エラーや誤った計算結果にはならないものの、極めて深刻な計算速度の低下を招きますので、搭載メモリ容量の制限にも十分ご注意下さい。
 さて、メモリ不足による実際のエラーの例を示します。この計算のアウトプットファイルを見ると、「この処理を完了するのに最低限必要な容量9MW(=72MB)のメモリを指定せよ」とありますので、これは明らかにメモリ不足によるエラーメッセージとわかります。

 下記の計算ではSCF=InCoreを指定していますが、これはエネルギーSCF手続きにおいて必要な積分を全てメモリ上に保存して計算を行うためのオプションです。この指定により、SCF手続きが非常に高速になりますが、当然ながら、通常のSCFアルゴリズムより多くのメモリを必要とします。さて、このアウトプットのエラーメッセージは多少わかりにくいですが、「積分を保存できず、75341996ワードの不足」とあります。さらに停止したのがLink 502(Overlay 5)であることを考慮すると、これはSCF手続き中におけるメモリ不足であり、したがって、%Memの値を増やすかSCF=InCoreを取りやめればエラーを回避できます。

 今回の内容は以上です。次回(第8回配信)では、「キーワード指定に関するエラー」を解説いたします。

メールニュース会員募集中!

Gaussian入門者の皆様に、Gaussianを使いこなして高度な計算化学者に飛躍していただけるよう、Gaussianに関する様々な情報を発信しております。メールニュースの配信をご希望の方は、以下のフォームよりお願いいたします(お問い合わせ内容の項に「Gaussian入門メールニュース配信希望」とご記入ください)。

メールにてお申し込みされる方は、以下の必要事項をご記入の上、送信してください。

  • ◆電子メール件名 : Gaussian入門メールニュース配信希望
  • ◆記入項目:
    1. 氏名 :
    2. E-mail:
    3. 法人名/部署名:
    4. 住所:
    5. 電話番号:
  • キャンペーン情報
    現在開催されているお得なキャンペーン情報はこちらから。
    詳細
  • ご購入前のお問合せ
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
  • 見積り依頼
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
CONTACT

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
075-353-0120

平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)