IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2024-115602量子化学計算プログラム、量子化学計算方法、および情報処理装置
<>
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図1
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図2
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図3
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図4
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図5
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図6
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図7
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図8
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図9
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図10
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図11
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図12
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図13
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図14
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図15
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図16
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図17
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図18
  • 特開-量子化学計算プログラム、量子化学計算方法、および情報処理装置 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024115602
(43)【公開日】2024-08-27
(54)【発明の名称】量子化学計算プログラム、量子化学計算方法、および情報処理装置
(51)【国際特許分類】
   G16C 10/00 20190101AFI20240820BHJP
   G16C 60/00 20190101ALI20240820BHJP
【FI】
G16C10/00
G16C60/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023021304
(22)【出願日】2023-02-15
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】大田 栄二
(57)【要約】
【課題】電子密度の計算時間を短縮する。
【解決手段】情報処理装置10は、物質が存在する空間2内の複数の点それぞれの電子密度を、自己無撞着場法により繰り返し計算する。情報処理装置10は、複数の点それぞれについて、電子密度が計算されるごとに、計算された電子密度に基づく複数の指標値が、複数の指標値それぞれの収束判定基準を満足しているか否かを判定する。そして情報処理装置10は、複数の点それぞれについて、複数の指標値のうちの少なくとも1つが収束判定基準を満足した場合、電子密度の繰り返し計算を終了する。
【選択図】図1
【特許請求の範囲】
【請求項1】
物質が存在する空間内の複数の点それぞれの電子密度を、自己無撞着場法により繰り返し計算し、
前記複数の点それぞれについて、前記電子密度が計算されるごとに、計算された前記電子密度に基づく複数の指標値が、前記複数の指標値それぞれの収束判定基準を満足しているか否かを判定し、
前記複数の点それぞれについて、前記複数の指標値のうちの少なくとも1つが前記収束判定基準を満足した場合、前記電子密度の繰り返し計算を終了する、
処理をコンピュータに実行させる量子化学計算プログラム。
【請求項2】
前記複数の点それぞれの前記電子密度の初期値に基づいて、前記複数の点それぞれを複数の部分空間のいずれかに分類する処理を、前記コンピュータにさらに実行させ、
前記収束判定基準を満足しているか否かを判定する処理では、分類された複数の前記部分空間のうちの、第1の部分空間に属する第1の判定対象の点について、複数の第1の指標値をそれぞれ計算し、
計算された複数の前記第1の指標値それぞれについて、前記複数の部分空間それぞれについて設定された、前記複数の指標値それぞれの前記収束判定基準に基づいて、前記第1の判定対象の点が属する前記第1の部分空間に設定された前記収束判定基準を満足しているか否かを判定する、
請求項1記載の量子化学計算プログラム。
【請求項3】
前記収束判定基準を満足しているか否かを判定する処理では、前記複数の部分空間のうち、前記第1の部分空間に属する点それぞれについて、前記複数の指標値のうちの少なくとも1つが前記収束判定基準を満足した前記第1の部分空間を、収束済みと判定し、以後、収束済みとなった前記第1の部分空間以外の第2の部分空間に属する点について前記収束判定基準を満足しているか否かを判定する、
請求項2記載の量子化学計算プログラム。
【請求項4】
前記複数の指標値は、前記電子密度の前回の計算結果と前記電子密度の今回の計算結果との差分と、前記電子密度の前記差分の前回の計算結果と前記電子密度の前記差分の今回の計算結果との変化の度合いを示す差分変化率と、を含む、
請求項1から3までのいずれかに記載の量子化学計算プログラム。
【請求項5】
物質が存在する空間内の複数の点それぞれの電子密度を、自己無撞着場法により繰り返し計算し、
前記複数の点それぞれについて、前記電子密度が計算されるごとに、計算された前記電子密度に基づく複数の指標値が、前記複数の指標値それぞれの収束判定基準を満足しているか否かを判定し、
前記複数の点それぞれについて、前記複数の指標値のうちの少なくとも1つが前記収束判定基準を満足した場合、前記電子密度の繰り返し計算を終了する、
処理をコンピュータが実行する量子化学計算方法。
【請求項6】
物質が存在する空間内の複数の点それぞれの電子密度を、自己無撞着場法により繰り返し計算し、前記複数の点それぞれについて、前記電子密度が計算されるごとに、計算された前記電子密度に基づく複数の指標値が、前記複数の指標値それぞれの収束判定基準を満足しているか否かを判定し、前記複数の点それぞれについて、前記複数の指標値のうちの少なくとも1つが前記収束判定基準を満足した場合、前記電子密度の繰り返し計算を終了する処理部、
を有する情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、量子化学計算プログラム、量子化学計算方法、および情報処理装置に関する。
【背景技術】
【0002】
近年、材料開発の分野において、研究開発期間の短縮、低コスト化を目指すデータ駆動型研究開発の取り組みとして、マテリアルズ・インフォマティクス(以後、MIと呼ぶ)が世界的に進展している。MIには良質なマテリアルデータの蓄積が重要である。そこで、実験に加えて量子化学などのシミュレーションによる効率的なデータ蓄積が期待されている。
【0003】
量子化学の主要な計算手法の一つに密度汎関数理論(DFT:Density Functional Theory)がある。DFTでは、まず、計算対象の物質の電子密度が自己無撞着場(SCF:Self-consistent Field)法により計算される。そして、得られた電子密度に基づいて、物質の状態を示す物理量(全エネルギーなど)が算出される。
【0004】
DFT関連の技術としては、例えば既存の近似モデルを出発点として、モデル空間中で与えられる密度汎関数変分法の変分原理に従って、複数の演算経路を探索しながら厳密解が示す物性に有限回の計算手続きで到達するための電子状態計算方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2012/023563号
【発明の概要】
【発明が解決しようとする課題】
【0006】
原子数をN(Nは自然数)とすると、DFTの計算量はオーダ表記でO(N3)となり、計算対象の系が大きくなると計算量が膨大となる。DFTの計算量が膨大となる原因の1つに、SCF法による電子密度計算の繰り返し回数の多さがある。
【0007】
SCF法では、解析対象の空間に設定された複数の点(座標)それぞれの電子密度が繰り返し計算される。そしてすべての点において電子密度に関する収束判定基準が満たされたときに、SCF計算が収束したと判定される。そのため、少なくとも一部の点で収束条件が満たされないとSCF計算が収束せず、計算時間が長期化する。
【0008】
1つの側面では、本件は、電子密度の計算時間を短縮することを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、以下の処理をコンピュータに実行させる量子化学計算プログラムが提供される。
コンピュータは、物質が存在する空間内の複数の点それぞれの電子密度を、自己無撞着場法により繰り返し計算する。コンピュータは、複数の点それぞれについて、電子密度が計算されるごとに、計算された電子密度に基づく複数の指標値が、複数の指標値それぞれの収束判定基準を満足しているか否かを判定する。そしてコンピュータは、複数の点それぞれについて、複数の指標値のうちの少なくとも1つが収束判定基準を満足した場合、電子密度の繰り返し計算を終了する。
【発明の効果】
【0010】
1態様によれば、電子密度の計算時間が短縮される。
【図面の簡単な説明】
【0011】
図1】第1の実施の形態に係る量子化学計算方法の一例を示す図である。
図2】システム構成の一例を示す図である。
図3】制御ノードのハードウェアの一例を示す図である。
図4】計算ノードのハードウェア構成の一例を示す図である。
図5】電子密度の大きさと差分が収束するまでのSCF計算の繰り返し回数との関係を示す図である。
図6】SCF計算の繰り返し回数ごとの電子密度の一例を示す図である。
図7】電子密度が小さい部分空間におけるSCF計算の繰り返し回数ごとの差分と差分変化率との関係を示す図である。
図8】部分空間ごとの電子密度の収束判定の一例を示す図である。
図9】計算システムで実現する機能の一例を示すブロック図である。
図10】エネルギー計算処理の手順の一例を示すフローチャートである。
図11】部分空間の一例を示す図である。
図12】電子密度に基づいて設定された部分空間の一例を示す図である。
図13】部分空間設定処理の手順の一例を示すフローチャートである。
図14】許容値情報の一例を示す図である。
図15】SCF計算処理の手順の一例を示すフローチャートである。
図16】高速化率の一例を示す図である。
図17】SCF計算の高速化の一例を示す図である。
図18】収束判定基準に電子密度の差分と差分変化率とを用いた場合の高速化率を示す図である。
図19】広域探索技術サービスの一例を示す図である。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、物質の電子密度をSCF計算で求める際のSCF計算の繰り返し回数を削減することで、電子密度の計算時間を短縮する量子化学計算方法である。
【0013】
図1は、第1の実施の形態に係る量子化学計算方法の一例を示す図である。図1には、量子化学計算方法を実施するための情報処理装置10が示されている。情報処理装置10は、例えば量子化学計算プログラムを実行することにより、量子化学計算方法を実施することができる。
【0014】
情報処理装置10は、記憶部11と処理部12とを有する。記憶部11は、例えば情報処理装置10が有するメモリまたはストレージ装置である。処理部12は、例えば情報処理装置10が有するプロセッサまたは演算回路である。
【0015】
記憶部11は、解析対象の物質を示す物質情報1を記憶する。物質情報1には、例えば物質に含まれる原子、原子間の結合状況、原子間の距離などの情報が含まれる。また物質情報1には、例えば物質が存在する空間2内の複数の点における電子密度の初期値が含まれる。
【0016】
処理部12は、物質情報1に基づいて、DFTにより、解析対象の物質の基底状態(エネルギーが最低となる状態)における電子密度を計算する。例えば処理部12は、物質が存在する空間2内の複数の点それぞれの電子密度を、自己無撞着場(SCF)法により繰り返し計算する。処理部12は、複数の点それぞれについて、電子密度が計算されるごとに、計算された電子密度に基づく複数の指標値が、複数の指標値それぞれの収束判定基準を満足しているか否かを判定する。
【0017】
複数の指標値には、例えば電子密度の前回の計算結果と電子密度の今回の計算結果との差分と、電子密度の差分の前回の計算結果と電子密度の差分の今回の計算結果との変化の度合いを示す差分変化率とが含まれる。差分についての収束判定基準は、例えば差分許容値で表される。判定対象の点の電子密度の差分が、差分許容値以下であれば、その点の電子密度は、差分についての収束判定基準を満足する。差分変化率についての収束判定基準は、例えば差分変化率許容値で表される。判定対象の点の電子密度の差分変化率が、差分変化率許容値以下であれば、その点の電子密度は、差分変化率についての収束判定基準を満足する。
【0018】
そして処理部12は、複数の点それぞれについて、複数の指標値のうちの少なくとも1つが収束判定基準を満足した場合、電子密度の繰り返し計算を終了する。すなわち各点の複数の指標値それぞれの収束判定の論理和によって、その点の電子密度の収束判定が行われる。
【0019】
例えば複数の指標値が電子密度の差分と差分変化率の場合、処理部12は、複数の点それぞれについて、差分と差分変化率との少なくとも一方が収束判定基準を満足していれば、全体の電子密度が収束したと判定し、電子密度の繰り返し計算を終了する。
【0020】
このように処理部12は、複数の点それぞれについて、複数の指標値のいずれかが収束判定基準を満足したことで、全体の電子密度が収束したと判定してSCF計算を終了する。つまり、例えば、ある判定対象の点について、電子密度の差分が収束していなかったとしても、電子密度の差分変化率が収束判定基準を満たしていれば電子密度が収束したと判定できることで、電子密度の差分でしか判定をしていなかったときと比較して、SCF計算の繰り返し回数を削減することができる。SCF計算の繰り返し回数が削減されることで、電子密度の計算時間が短縮される。
【0021】
例えば電子密度が相対的に小さい点では、電子密度が増減を繰り返してしまい、電子密度の差分が収束判定基準を満足しづらい場合がある。このような点が存在していても、その点についての差分変化率が収束判定基準を満足していれば、SCF計算を終了させることができる。なお、電子密度が小さい点の電子密度の増減が繰り返していたとしても、解析対象の物質の全エネルギーに対する影響は小さい。そのため電子密度が小さい点の電子密度の差分が収束判定基準を満たす前に電子密度の計算を終了してしまっても、その電子密度に基づいて算出される全エネルギーへの影響は少ない。そのため、計算精度の劣化は少なくて済む。
【0022】
なお、処理部12は、解析対象の空間2を、電子密度の初期値に基づいて、予め複数の部分空間に分割しておいてもよい。例えば処理部12は、複数の点の電子密度の初期値に基づいて、複数の点それぞれを複数の部分空間のいずれかに分類する。その場合、処理部12は、分類された複数の部分空間のうちの、第1の部分空間に属する第1の判定対象の点について、複数の第1の指標値をそれぞれ計算する。そして処理部12は、計算された複数の第1の指標値それぞれについて、複数の部分空間それぞれについて設定された、複数の指標値それぞれの収束判定基準に基づいて、第1の判定対象の点が属する第1の部分空間に設定された収束判定基準を満足しているか否かを判定する。
【0023】
このように処理部12は、空間2を部分空間に分割し、部分空間ごとに収束判定基準を設定することで、例えば全エネルギーへの影響が低い点を含む部分空間については収束判定基準を他の部分空間よりも緩めることなどが可能となる。
【0024】
図1の例では、空間2が、電子密度に応じた3つの部分空間に分割されている。1つ目の部分空間は、電子密度が「小」の点(空間2内の「S」の点)を含む。2つ目の部分空間は、電子密度が「中」の点(空間2内の「M」の点)を含む。3つ目の部分空間は、電子密度が「大」の点(空間2内の「L」の点)を含む。
【0025】
部分空間ごとの収束判定基準は、判定基準情報3に示されている。図1に示す判定基準情報3では、差分に関する収束判定基準(差分許容値)は、いずれの部分空間においても同じである。他方、差分変化率に関する収束判定基準(差分変化率許容値)は、電子密度が小さい点を含む部分集合に対して、他の部分集合よりも大きな値が設定されている。これにより、SCF計算の繰り返し回数が削減され、計算時間が短縮される。
【0026】
例えば指標値計算結果4には、部分空間それぞれについての、SCF計算ごとの差分と差分変化率との推移の一例が示されている。指標値計算結果4の例では、電子密度が「小」の点を含む部分空間内の点は、SCF計算を5回繰り返しても、差分が差分許容値以下とはならない(収束判定基準を満足しない)。他方、電子密度が「小」の点を含む部分空間内の点は、5回目のSCF計算で算出される差分変化率が差分変化率許容値以下となっている(収束判定基準を満足する)。すなわち電子密度が小さい点を含む部分空間内の電子密度は、5回のSCF計算で収束する。
【0027】
電子密度が「中」の点を含む部分空間内の点は、SCF計算を5回繰り返しても、差分変化率が差分変化率許容値以下とはならない(収束判定基準を満足しない)。他方、電子密度が「中」の点を含む部分空間内の点は、5回目のSCF計算で算出される差分が差分許容値以下となっている(収束判定基準を満足する)。すなわち電子密度が「中」の点を含む部分空間内の電子密度は、5回のSCF計算で収束する。
【0028】
電子密度が「大」の点を含む部分空間内の点は、SCF計算を4回繰り返しても、差分変化率が差分変化率許容値以下とはならない(収束判定基準を満足しない)。他方、電子密度が「大」の点を含む部分空間内の点は、4回目のSCF計算で算出される差分が差分許容値以下となっている(収束判定基準を満足する)。すなわち電子密度が「大」の点を含む部分空間内の電子密度は、4回のSCF計算で収束する。
【0029】
このように、処理部12は、部分空間ごとに差分と差分変化率とについての適切な収束判定基準を設定することにより、SCF計算の繰り返し回数に応じた差分または差分変化率の推移についての部分空間ごとの違いを考慮した収束判定が可能となる。その結果、SCF計算の繰り返し回数が削減される。
【0030】
また、空間2を複数の部分空間に分割した場合、処理部12は、部分空間ごとに収束の有無を判定することもできる。例えば処理部12は、複数の部分空間のうち、第1の部分空間に属する点それぞれについて、複数の指標値のうちの少なくとも1つが収束判定基準を満足した第1の部分空間を、収束済みと判定する。処理部12は、以後、収束済みとなった第1の部分空間以外の第2の部分空間に属する点について収束判定基準を満足しているか否かを判定する。これにより、収束済みの部分空間内の点については、以後、指標値(差分、差分変化値など)の計算および収束判定基準との比較を行わずに済み、収束判定を効率的に行うことができる。
【0031】
〔第2の実施の形態〕
第2の実施の形態は、DFTによる物質の分子状態の計算をHPC(High-performance Computing)で実行する場合におけるSCF計算時間を短縮させた計算システムである。
【0032】
図2は、システム構成の一例を示す図である。HPCを実現する計算システム30は、制御ノード100と複数の計算ノード200a,200b,・・・とを有する。複数の計算ノード200a,200b,・・・は、互いに高速な通信が可能なインターコネクト32で接続されている。インターコネクト32は、例えばプロセッサ間を6次元メッシュ/トーラスによって相互に接続したネットワークである。
【0033】
計算ノード200a,200b,・・・それぞれは、制御ネットワーク31にも接続されている。制御ネットワーク31には、さらに制御ノード100が接続されている。制御ノード100は、計算ノード200a,200b,・・・に対するジョブの実行指示を行うコンピュータである。
【0034】
制御ノード100は、ネットワーク20を介して端末40に接続されている。端末40は、ユーザの操作に基づいて、計算ノード200a,200b,・・・に実行させるジョブの情報を制御ノード100に登録するコンピュータである。制御ノード100は、端末40からの指示に従ってDFTによる計算を、複数の計算ノード200a,200b,・・・に指示する。
【0035】
例えばユーザは、DFTによる物質の状態の計算を計算ノード200a,200b,・・・に実行させることで、DFTで定義される電子系の全エネルギーなどの物理量を得ることができる。
【0036】
図3は、制御ノードのハードウェアの一例を示す図である。制御ノード100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してメモリ102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0037】
メモリ102は、制御ノード100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0038】
バス109に接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108a,108bがある。
【0039】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、制御ノード100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0040】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0041】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0042】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0043】
機器接続インタフェース107は、制御ノード100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0044】
ネットワークインタフェース108aは、ネットワーク20に接続されている。ネットワークインタフェース108aは、ネットワーク20を介して、端末40などの他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108bは、制御ネットワーク31に接続されている。ネットワークインタフェース108bは、制御ネットワーク31を介して、計算ノード200a,200b,・・・との間でデータの送受信を行う。
【0045】
ネットワークインタフェース108a,108bは、例えばスイッチやルータなどの有線通信装置にケーブルで接続される有線通信インタフェースである。またネットワークインタフェース108a,108bは、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0046】
制御ノード100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。制御ノード100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、制御ノード100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また制御ノード100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0047】
図4は、計算ノードのハードウェア構成の一例を示す図である。計算ノード200aは、CPU/メモリ部201とルータ202とを有している。CPU/メモリ部201とルータ202とは、複数の通信インタフェース(NIC)203で接続されている。またCPU/メモリ部201には、制御ネットワーク31に接続するためのNIC204も接続されている。
【0048】
CPU/メモリ部201には複数のコアを有するCPUとメモリとが含まれる。CPU/メモリ部201は、コアごとにプロセス(処理の実行単位)が生成される。CPU/メモリ部201のコアごとのプロセスが、他の計算ノード内のプロセスと同期処理を行う場合、ルータ202を介して他の計算ノード200b,・・・と通信する。
【0049】
ルータ202は、例えば3次元方向のそれぞれに隣接する計算ノードと通信を行う。ルータ202は、CPU/メモリ部201から他の計算ノードに送信するデータを、その計算ノードのインターコネクト32内での位置に応じた方向に隣接する計算ノードへ送信する。またルータ202は、隣接する計算ノードからCPU/メモリ部201内のプロセスへのデータを受信すると、そのデータをCPU/メモリ部201に送信する。さらにルータ202は、隣接する計算ノードから受信したデータが他の計算ノード宛てのデータの場合、送信先の計算ノードのインターコネクト32内での位置に応じた方向に隣接する計算ノードへデータを送信する。
【0050】
他の計算ノード200b,・・・も、計算ノード200aと同様のハードウェア構成である。図4に示すようなハードウェアの計算ノード200a,200b,・・・が3次元方向にメッシュ/トーラス接続されることで、3次元のメッシュ/トーラスのインターコネクト32となる。
【0051】
以上のようなハードウェアの制御ノード100と計算ノード200a,200b,・・・によって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した情報処理装置10も、制御ノード100または計算ノード200aと同様のハードウェアにより実現することができる。
【0052】
計算システム30では、DFTにより物質の状態を示す物理量(全エネルギーなど)を計算する。DFTでは、SCF法による電子密度の計算が行われる。SCF法による電子密度の計算では、空間または座標系に配置されたすべての点の電子密度が収束するまで、電子密度の計算が繰り返し実行される。その結果、自己無撞着な全エネルギーが計算される。
【0053】
ここでSCF法による電子密度の繰り返し計算において、電子密度が収束せずに繰り返し回数が増加する原因について説明する。各点の電子密度が収束したか否かの判定基準には、例えば繰り返し計算される電子密度の、前回の電子密度との差分が用いられる。i番目(iは自然数)の点riの収束を判定するための収束判定基準は、例えば以下の式で表すことができる。
収束判定基準:Δρ(ri)=|ρ(ri)-ρ’(ri)|≦Δρの許容値
Δρ(ri)は、i番目の点の電子密度の差分である。ρ(ri)は、最後のSCF計算で得られたi番目の点の電子密度である。ρ’(ri)は、前回のSCF計算で得られたi番目の点の電子密度である。Δρの許容値は、予め設定された値である。
【0054】
SCF計算において、全体の電子密度が収束したと判定するには、すべての点について収束判定基準が満たされることが求められる。ところが、以下のいずれかに該当する点(難収束点)があることにより、全電子エネルギーは微小変動へ遷移し、SCF計算の収束条件(全体の電子密度が収束すること)が満たされない場合がある。
【0055】
第1の難収束点として、電子エネルギーへの影響が小さい(電子密度が小さい)が、電子密度が増減を繰り返し、いつまでも収束判定基準を満たさない点がある。
第2の難収束点として、差分の変化率(差分変化率)は小さいものの差分が変化し続け、いつまでも収束判定基準を満たさない点がある。
【0056】
これらの難収束点が存在すると、なかなか全体の電子密度が収束したと判定することができず、SCF計算の繰り返し回数が増加する。このような難収束点となる点は、相対的に電子密度の小さい空間に配置された点に多い。物質の任意の点におけるおおよその電子密度は、原子配置と結合状態から判別できる。例えば、原子の位置の電子密度は高い。また結合部分の電子密度は中間の大きさである。そして、分子の形状を表す領域の電子密度は小さい。
【0057】
図5は、電子密度の大きさと差分が収束するまでのSCF計算の繰り返し回数との関係を示す図である。図5に示すグラフ41は、横軸がSCF計算の繰り返し回数であり、縦軸がSCF計算ごとの電子密度の差分である。グラフ41における実線の曲線41aは、電子密度が小さい空間の点における電子密度の差分の変化を示している。破線の曲線41bは、電子密度が中程度の空間の点における電子密度の差分の変化を示している。一点破線の曲線41cは、電子密度が大きい空間の点における電子密度の差分の変化を示している。グラフ41内の横線41dは、収束判定基準の許容値を示している。
【0058】
グラフ41に示すように、電子密度が大きい空間の点は、早期に収束判定基準を満たす。それに対して、電子密度が小さい空間の点は、収束判定基準を満たすまでのSCF計算の繰り返し回数が多い。
【0059】
図6は、SCF計算の繰り返し回数ごとの電子密度の一例を示す図である。図6に示す差分計算結果42には、SCF計算の繰り返し回数ごとの電子密度の差分が、各点の電子密度の大きさごとに示されている。ここで、電子密度の差分の許容値Δρは「1.0」(Δρ=1.0)であるものとする。
【0060】
差分計算結果42の例では、電子密度が小さい空間の点では、7回目のSCF計算で収束判定基準を満たす。電子密度が中程度の空間の点では、5回目のSCF計算で収束判定基準を満たす。電子密度が大きい空間の点では、4回目のSCF計算で収束判定基準を満たす。その結果、全空間の電子密度が収束するまでには、7回のSCF計算を要することとなる。
【0061】
そこで計算システム30では、計算精度を悪化させずに、上記の難収束点について早期に収束するようにする。例えば計算システム30は、SCF法の繰り返し計算の収束条件の判定対象空間を複数の部分空間に分割する。次に計算システム30は、各点の電子密度の差分変化率を部分空間ごとに算出する。計算システム30は、電子密度の差分と差分変化率とのそれぞれの収束判定基準を、分割空間ごとに設定する。そして計算システム30は、すべての部分空間において、属するすべての点について、電子密度の差分または差分変化率の少なくとも一方が収束判定基準を満たした場合、SCF計算が収束したと判定する。
【0062】
このように、電子密度に応じて空間を複数の部分空間に分割し、部分空間ごとに収束判定を行うと、すべての部分空間において、収束判定基準を満たすまでのSCF繰り返し回数が削減される。その結果、DFT全体の計算時間も削減される。
【0063】
差分変化率は、前回の差分と今回の差分の変化の度合いを表す値である。差分変化率は、例えば以下の式で表すことができる。
差分変化率=|(今回の差分-前回の差分)÷前回の差分|
なお、前回の差分に代えて、前回までのSCF計算で得られたすべての差分の代表値(平均値、中央値など)を用いてもよい。差分変化率に関する収束判定基準は、例えば部分空間ごとに設定される。収束判定基準は、例えば収束したと判定できる差分変化率の最小値(許容値)で表される。i番目の部分空間の差分変化率を示す許容値をDTHiとすると、例えば差分変化率に関する収束判定基準として、「DTH1=5%,DTH2=3%,DTH3=3%」と設定される。
【0064】
図7は、電子密度が小さい部分空間におけるSCF計算の繰り返し回数ごとの差分と差分変化率との関係を示す図である。グラフ43は、SCF計算の繰り返し回数と差分との関係を示している。グラフ43の横軸が繰り返し回数であり、縦軸が差分である。曲線43aが、電子密度が小さい部分空間内の点における電子密度の差分の変化を示している。横線43bは、収束判定基準となる差分の許容値を示している。
【0065】
グラフ43に示すように、電子密度が小さい部分空間内の点は、SCF計算の初期段階dでは徐々に差分が減少するが、差分がある程度まで減少すると、収束判定基準以下となる前に差分が増減を繰り返す。その結果、SCF計算を、繰り返し回数の最大値まで繰り返しても、差分が収束判定基準以下とならない場合がある。電子密度の差分がグラフ43に示すように変化する点は、電子密度の差分が増減を繰り返すようになった後は、さらにSCF計算により電子密度を繰り返し計算しても、最終的に算出する全エネルギーの大幅な精度向上は見込めない。
【0066】
グラフ44は、SCF計算の繰り返し回数と差分変化率との関係を示している。グラフ44の横軸が繰り返し回数であり、縦軸が差分変化率である。曲線44aが、電子密度が小さい部分空間内の点における電子密度の差分変化率の変化を示している。横線44bは、収束判定基準となる差分変化率の許容値を示している。
【0067】
グラフ44に示すように、電子密度が小さい部分空間内の点の差分変化率は、SCF計算の繰り返し回数の増加に伴い減少する。そして、繰り返し回数が最大になる前に、差分変化率が収束判定基準以下となる。
【0068】
計算システム30では、差分の収束判定と差分変化率の収束判定との論理和によって、各点の電子密度が収束したか否かを判定する。そのため、ある点の差分が収束判定基準以下となっていなくても、差分変化率が収束判定条件以下となっていれば、その点の電子密度は収束していると判定される。
【0069】
その結果、電子密度が小さい部分空間内の点においても早期に収束したと判定することができ、SCF計算の繰り返し回数を削減できる。
図8は、部分空間ごとの電子密度の収束判定の一例を示す図である。差分計算結果45には、SCF計算の繰り返し回数ごとの電子密度の差分が、各点の電子密度の大きさごとに示されている。ここで、電子密度の差分の許容値Δρは「1.0」であるものとする。
【0070】
差分変化率計算結果46には、SCF計算の繰り返し回数ごとの電子密度の差分変化率が、各点の電子密度の大きさごとに示されている。ここで、電子密度の差分変化率の許容値Δρは、電子密度が「小」の部分空間では「0.05」、電子密度が「中」および「大」の部分空間では「0.03」であるものとする。
【0071】
図8の例では、電子密度が「小」の部分空間の点では、SCF計算を7回繰り返したときに、差分が許容値以下となっている。他方、電子密度が「小」の部分空間の点では、SCF計算を5回繰り返したときに、差分変化率が許容値以下となっている。そのため、電子密度が「小」の部分空間の点は、SCF計算を5回繰り返したときに収束したと判定される。
【0072】
図8の例では、電子密度が「中」の部分空間の点では、SCF計算を5回繰り返したときに、差分が許容値以下となっている。他方、電子密度が「中」の部分空間の点では、SCF計算を7回繰り返しても、差分変化率が許容値以下とはならない。この場合、電子密度が「中」の部分空間の点は、SCF計算を5回繰り返したときに収束したと判定される。
【0073】
図8の例では、電子密度が「大」の部分空間の点では、SCF計算を4回繰り返したときに、差分が許容値以下となっている。他方、電子密度が「大」の部分空間の点では、SCF計算を7回繰り返しても、差分変化率が許容値以下とはならない。この場合、電子密度が「大」の部分空間の点は、SCF計算を4回繰り返したときに収束したと判定される。
【0074】
図8の例では、SCF計算による全体の電子密度が収束するまでの繰り返し回数は5回(小:5、中:5、大:4の最大値)となる。収束判定基準として差分変化率に関する基準を用いない場合には、SCF計算による全体の電子密度が収束するまでの繰り返し回数は7回となってしまう。すなわち、収束判定基準として差分変化率に関する基準を論理和で適用することで、SCF計算の繰り返し回数が削減できる。
【0075】
図9は、計算システムで実現する機能の一例を示すブロック図である。計算システム30は、記憶部110、計算指示部120、空間分割部130、およびSCF計算部210を有する。記憶部110と計算指示部120と空間分割部130は、例えば制御ノード100が有する機能である。SCF計算部210は、例えば計算ノード200a,200b,・・・が有する機能である。
【0076】
記憶部110は、計算対象の物質に関する情報(含まれる原子、既知の原子配置など)を記憶する。
計算指示部120は、端末40から所定の物質の物性などの解析指示を受け付けると、その物質の解析のための空間分割指示を空間分割部130に送信する。なお解析指示には、例えば解析空間内の点ごとの電子密度の初期値が含まれる。また解析指示には、例えば、収束判定基準(差分と差分変化率との許容値)が含まれる。
【0077】
計算指示部120は、空間分割部130から分割結果を示す情報(例えば各部分空間に含まれる点の座標のリスト)を取得すると、部分空間の情報を含む電子密度計算指示をSCF計算部210に送信する。そして計算指示部120は、SCF計算部から計算結果を受信すると、計算結果を端末40に送信する。
【0078】
空間分割部130は、解析空間を、電子密度が小さい部分空間と、電子密度が中程度の部分空間と、電子密度が大きい部分空間とに分割する。例えば空間分割部130は、電子密度の初期値に基づいて空間を分割する。
【0079】
SCF計算部210は、DFTによる電子密度を得るためのSCF計算を繰り返す。その際、SCF計算部210は、部分空間ごとに電子密度の収束判定を行う。SCF計算部210は、すべての部分空間において電子密度が収束した場合、そのときの各点の電子密度を計算結果として計算指示部120に送信する。
【0080】
なお、図9に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。例えば計算指示部120と空間分割部130に対応するプログラムを制御ノード100が実行し、計算指示部120を実現する。制御ノード100で実現された計算指示部120が、複数の計算ノード200a,200b・・・のうちの1台または複数台に対してSCF計算部210に対応するジョブの実行を指示する。指示された計算ノードは、指定されたジョブに対応するプログラムを実行することでSCF計算部210を実現する。
【0081】
次にSCF計算を用いた物質のエネルギー計算処理の手順について説明する。
図10は、エネルギー計算処理の手順の一例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
【0082】
[ステップS101]まず空間分割部130は、解析空間を分割し、部分空間を設定する。例えば解析指示を受信した計算指示部120が空間分割部130に空間分割指示を送信する。空間分割部130は、空間分割指示に応じて、部分空間設定処理を実行する。部分空間設定処理の詳細は後述する。
【0083】
[ステップS102]計算指示部120は、空間分割部130による部分空間設定処理が終了すると、収束判定基準を設定する。例えば計算指示部120は、解析指示に示される差分と差分変化率との許容値を、収束判定基準として設定する。収束判定基準は、例えば部分空間ごとに設定される。
【0084】
[ステップS103]SCF計算部210は、全体の電子密度が収束するまでSCF計算を繰り返す。SCF計算処理の詳細は後述する。
このように計算システム30は、予め部分空間に分割後、SCF計算を実行する。部分空間への空間分割では、電子密度の計算対象の点ごとに、その点をどの部分空間に含めるかが決定される。
【0085】
図11は、部分空間の一例を示す図である。解析対象の全体の空間50には、複数の点の集合を含む。空間50は、2以上の部分空間51~53に分割される。部分空間51~53それぞれには、1つ以上の点が含まれる。1つの部分空間に含まれる点は、不連続の点であってもよい。例えば空間分割部130は、各点の電子密度の初期値に基づいて、その点が属する部分空間を決定する。
【0086】
図12は、電子密度に基づいて設定された部分空間の一例を示す図である。全体の空間60には、電子密度の初期値が小さい点(図12では「S」と表記)、電子密度の初期値が中程度の点(図12では「M」と表記)、電子密度の初期値が大きい点(図12では「L」と表記)が含まれる。
【0087】
空間分割部130は、電子密度に基づいて、各点のグループ分けを行う。そして空間分割部130は、各グループを部分空間として設定する。例えば空間分割部130は、電子密度の初期値が第1の閾値未満の点を部分空間61(電子密度「小」の「部分空間1」)に含める。また空間分割部130は、電子密度の初期値が第1の閾値以上、第2の閾値未満の点を部分空間62(電子密度「中」の「部分空間2」)に含める。第2の閾値は、第1の閾値より大きな値である。さらに空間分割部130は、電子密度の初期値が第2の閾値以上の点を部分空間63(電子密度「大」の「部分空間3」)に含める。
【0088】
このようにして全体の空間60に含まれる点のグループ分けが行われ、各グループが部分空間61~63として設定される。
図13は、部分空間設定処理の手順の一例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
【0089】
[ステップS111]空間分割部130は、各点の電子密度の初期値を取得する。例えば空間分割部130は、解析指示に示される電子密度の初期値を計算指示部120から取得する。
【0090】
[ステップS112]空間分割部130は、全体の空間に含まれる未選択の点を1つ選択する。
[ステップS113]空間分割部130は、選択した点の電子密度が「小」か否かを判断する。例えば空間分割部130は、選択した点の電子密度が第1の閾値未満であれば「小」と判断する。空間分割部130は、電子密度が「小」であれば、処理をステップS114に進める。また空間分割部130は、電子密度が「小」でなければ、処理をステップS115に進める。
【0091】
[ステップS114]空間分割部130は、選択した点が属する部分空間を、「部分空間1」に設定する。その後、空間分割部130は処理をステップS118に進める。
[ステップS115]空間分割部130は、選択した点の電子密度が「中」か否かを判断する。例えば空間分割部130は、選択した点の電子密度が第1の閾値以上、第2の閾値未満であれば「中」と判断する。空間分割部130は、電子密度が「中」であれば、処理をステップS116に進める。また空間分割部130は、電子密度が「中」でなければ、処理をステップS117に進める。
【0092】
[ステップS116]空間分割部130は、選択した点が属する部分空間を、「部分空間2」に設定する。その後、空間分割部130は処理をステップS118に進める。
[ステップS117]空間分割部130は、選択した点が属する部分空間を、「部分空間3」に設定する。
【0093】
[ステップS118]空間分割部130は、すべての点について選択済みか否かを判断する。空間分割部130は、すべての点を選択済みであれば、部分空間設定処理を終了する。また空間分割部130は、未選択の点があれば処理をステップS112に進める。
【0094】
このようにして全体の空間が複数の部分空間に分割される。部分空間が生成されると、計算指示部120により、各部分空間に対して収束判定基準が設定される。設定された収束判定基準は、例えば、差分と差分変化率との許容値によって表される。差分と差分変化率の許容値は、許容値情報として、例えばメモリ102に保存される。
【0095】
図14は、許容値情報の一例を示す図である。許容値情報70には、例えば部分空間の名称に対応付けて、その部分空間の差分許容値(Δρ)と差分変化率許容値(DTHi)とが設定されている。図14の例では、各部分空間の差分許容値は同じ値となっているが、部分空間ごとに異なる差分許容値を設定することもできる。
【0096】
差分許容値と差分変化率許容値とにより、各部分空間の収束判定条件が定義される。収束判定条件が設定されると、SCF計算部210によりSCF計算が実行される。
図15は、SCF計算処理の手順の一例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。
【0097】
[ステップS121]SCF計算部210は、位置ベクトルrで示されるすべての点について、予め指定されている電子密度ρ(r)の初期値を設定する。
[ステップS122]SCF計算部210は、1電子波動関数φ(r)を計算する(図15では、φは一筆書き)。例えばSCF計算部210は、Kohn Sham方程式を解くことで1電子波動関数φ(r)を計算する。
【0098】
[ステップS123]SCF計算部210は、点ごとに、1電子波動関数φ(r)に基づいて、電子密度ρ’(r)を計算する。
[ステップS124]SCF計算部210は、点ごとに、電子密度ρ(r)と電子密度ρ’(r)との差分Δρ(r)を計算する。差分Δρ(r)は、例えば「Δρ(r)=|ρ(r)-ρ’(r)|」で計算できる。
【0099】
[ステップS125]SCF計算部210は、収束していない部分空間の1つを選択する。
[ステップS126]SCF計算部210は、選択した部分空間内のすべての点についての差分Δρ(r)が許容値Δρ以下か否かを判断する。例えばSCF計算部210は、選択した部分空間内の点ごとの差分Δρ(r)のうちの最大値を抽出する。そしてSCF計算部210は、抽出した最大値が許容値Δρ以下であれば、選択した部分空間内のすべての点についての差分Δρ(r)が許容値Δρ以下であると判断する。
【0100】
SCF計算部210は、選択した部分空間内のすべての点についての差分Δρ(r)が許容値Δρ以下であれば、処理をステップS129に進める。またSCF計算部210は、選択した部分空間内の少なくとも1つの点についての差分Δρ(r)が許容値Δρを超えていれば、処理をステップS127に進める。
【0101】
[ステップS127]SCF計算部210は、選択した部分空間内の全ての点について差分変化率を計算する。
[ステップS128]SCF計算部210は、選択した部分空間内のすべての点についての差分変化率が、その部分空間の許容値DTHi以下か否かを判断する。例えばSCF計算部210は、選択した部分空間内の点ごとの差分変化率のうちの最大値を抽出する。そしてSCF計算部210は、抽出した最大値が許容値DTHi以下であれば、選択した部分空間内のすべての点についての差分変化率が許容値DTHi以下であると判断する。
【0102】
SCF計算部210は、選択した部分空間内のすべての点についての差分変化率が許容値DTHi以下であれば、処理をステップS129に進める。またSCF計算部210は、選択した部分空間内の少なくとも1つの点についての差分変化率が許容値DTHiを超えていれば、処理をステップS130に進める。
【0103】
[ステップS129]SCF計算部210は、選択した部分空間を収束済みに設定する。
[ステップS130]SCF計算部210は、収束していない部分空間のうち、未選択の部分空間があるか否かを判断する。SCF計算部210は、未選択の部分空間があれば処理をステップS125に進める。またSCF計算部210は、すべての部分空間について選択済みであれば、処理をステップS131に進める。
【0104】
[ステップS131]SCF計算部210は、すべての部分空間が収束したか否かを判断する。SCF計算部210は、すべての部分空間が収束した場合、処理をステップS133に進める。またSCF計算部210は、収束していない部分空間がある場合、処理をステップS132に進める。
【0105】
[ステップS132]SCF計算部210は、電子密度ρ(r)を更新する。例えばSCF計算部210は、電子密度ρ’(r)を電子密度ρ(r)に設定する。電子密度ρ(r)を更新後、SCF計算部210は処理をステップS122に進める。
【0106】
[ステップS133]SCF計算部210は、各点の最新の電子密度ρ’(r)に基づいて、系の全エネルギーを計算する。
このようにしてSCF計算が行われ、電子密度が収束したときの全エネルギーが得られる。図15に示すようなSCF計算をDTF計算に適用することにより、計算が高速化する。計算の高速化率は差分と差分変化率の収束判定基準が成立する繰り返し回数を用いて、次式より算出できる。
【0107】
高速化率=max(nd1,nd2,・・・,ndn)/max(min(nd1,nr1),min(nd2,nr2),・・・,min(ndn,nrn))
nは部分空間の数を示す自然数である。nd1,nd2,・・・,ndnは、それぞれ1番目からn番目までの部分空間で差分の収束判定基準が満たされた繰り返し回数を示す。nr1,nr2,・・・,nrnは、それぞれ1番目からn番目までの部分空間で差分変化率の収束判定条件が満たされた繰り返し回数を示す。max()は、括弧内の数値の最大値を示す。min()は、括弧内の数値の最小値を示す。
【0108】
図16は、高速化率の一例を示す図である。例えば2つの部分空間があり、「部分空間1」では、SCF計算を40回繰り返したときに差分が収束(収束判定基準が満足)し、SCF計算を25回繰り返したときに差分変化率が収束するものとする。また「部分空間2」では、SCF計算を20回繰り返したときに差分が収束し、SCF計算を50回繰り返したときに差分変化率が収束するものとする。この場合の高速化率は以下の通りである。
【0109】
高速化率=max(40,20)/max(min(40,25),min(20,50))=40/25=1.6倍
第2の実施の形態に示すSCF計算の高速化は、例えばCP2Kと呼ばれるプログラムを用いた分子動力学の計算に適用できる。CP2Kは、擬ポテンシャル法および全電子計算法に対応したオープンソースの第一原理計算ライブラリである。CP2Kでは、基底としては、ガウス基底、平面波基底、およびそれらの混合基底を利用できる。またCP2Kは、大規模並列計算および線形スケーリングにおいて良好な結果を得ることができる。そして、CP2Kは、密度汎関数法やハートリー・フォック法など、種々の第一原理計算手法に対応している。
【0110】
なお、部分空間数が1つだけ(空間分割を行わない)であっても、差分と差分変化率との論理和を用いた収束判定を行うことで、SCF計算の高速化が実現される。
図17は、SCF計算の高速化の一例を示す図である。図17は、CP2Kプログラムを用いて、アンモニア触媒の構造をDFTによって計算したときの計算結果81を示している。部分空間数は「1」である。SCF計算は、収束判定基準に電子密度の差分のみを用いた場合と、電子密度の差分と差分変化率とを用いた場合との2パターンで行われている。差分変化率を用いる場合における差分変化率の許容値は「5%」である。
【0111】
収束判定基準に電子密度の差分のみを用いた場合、全エネルギーは「-4404.26877」、SCF計算繰り返し回数は「73」、収束までの経過時間は「243.249s」である。収束判定基準に電子密度の差分と差分変化率とを用いた場合、全エネルギーは「-4403.83420」、SCF計算繰り返し回数は「28」、収束までの経過時間は「92.959s」、高速化率は「2.62」である。
【0112】
図18は、収束判定基準に電子密度の差分と差分変化率とを用いた場合の高速化率を示す図である。グラフ82には、収束判定基準として電子密度の差分のみを用いた場合と、電子密度の差分と差分変化率とを用いた場合との高速化倍率が示されている。差分のみの場合の高速化倍率は「1」である。それに対して、差分と差分変化率とを用いた場合には、高速化倍率は「2.62」である。
【0113】
このように、電子密度の差分と差分変化率とを用いて収束判定を行うことで、計算速度が高速化される。しかも図17に示すように、得られる全エネルギーに大きな差はない。すなわち、計算精度を落とさずに計算時間が短縮されている。
【0114】
第2の実施の形態に示す技術を用いることで、例えばHPCとAI(Artificial Intelligence)を融合させた新素材の広域探索技術サービスを効率的に実施することができる。
【0115】
図19は、広域探索技術サービスの一例を示す図である。例えば計算システム30は、ユーザから、探索対象の材料などの物質に関する初期条件を示す入力データ91を取得する。計算システム30は、入力データ91に基づいて、量子化学シミュレーションを高速に実行する。第2の実施の形態に示す技術を用いれば、計算システム30は高精度のシミュレーションを、例えば10倍程度高速に実行できる。その結果、物質の構造に関する高品質のデータ92,94を生成できる。
【0116】
計算システム30で生成したデータ92は、例えばGNN(Graph Neural Network)などの技術を用いたAIシミュレーションにより、特性などの解析が可能である。AIシミュレーションによって生成したデータ93と計算システム30で生成したデータ94を用いれば、例えば因果発見AIを用いて、人間では分析しきれない、大量の材料候補とその物性の組合せから、因果関係を分析することができる。その結果、新たな発見・気づきを得ることが可能となる。
【0117】
因果関係の分析結果は、例えば量子化学シミュレーションの探索条件に反映させることで、探索範囲の絞り込みに利用することができる。探索範囲の絞り込みが適切に行われることにより、例えばユーザが希望する特性の物質を早期に見つけ出すことができる。
【0118】
〔その他の実施の形態〕
第2の実施の形態では、開示した技術を、AIを利用した新材料の広域探索サービスに適用する例を示したが、他の情報処理サービスに適用することもできる。
【0119】
また第2の実施の形態では、HPCによりDFTの計算を行っているが、解析対象の物質の原子数が少なければ、HPC以外のコンピュータによって、第2の実施の形態に示したDFT計算を行うこともできる。
【0120】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0121】
1 物質情報
2 空間
3 判定基準情報
4 指標値計算結果
10 情報処理装置
11 記憶部
12 処理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19