(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024050330
(43)【公開日】2024-04-10
(54)【発明の名称】最適化プログラム、最適化装置、および最適化方法
(51)【国際特許分類】
G16C 10/00 20190101AFI20240403BHJP
【FI】
G16C10/00
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022157146
(22)【出願日】2022-09-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】高 虹
(57)【要約】
【課題】FCIを用いた量子化学計算におけるノード数の決定までに、FCIを用いた計算の試行回数が複数回にわたる場合があり、全体の実行時間が増大してしまう。
【解決手段】最適化プログラムは、対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、算出したメモリ容量に基づいて、FCIを用いた計算に必要なノード数である第1の数を算出し、第1の数に基づいて、対象分子に対してFCIを用いた計算を行う際のノード数を決定する処理をコンピュータに実行させる。
【選択図】
図8
【特許請求の範囲】
【請求項1】
対象分子が有する電子および軌道の情報に基づいて、FCI(Full Configuration Interaction)を用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理をコンピュータに実行させることを特徴とする最適化プログラム。
【請求項2】
前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする請求項1に記載の最適化プログラム。
【請求項3】
前記情報に基づいて、前記FCIを用いた計算におけるシングルノードでの実行時間を算出し、
算出した前記実行時間に基づいて、前記FCIを用いた計算にかかる時間が最短となるノード数である第2の数を算出する
処理を前記コンピュータにさらに実行させ、
前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する
処理を含むことを特徴とする請求項1または2に記載の最適化プログラム。
【請求項4】
前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とのうちの大きい値を示す前記第1の数または前記第2の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする請求項3に記載の最適化プログラム。
【請求項5】
対象分子が有する電子および軌道の情報に基づいて、FCI(Full Configuration Interaction)を用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理を実行する制御部を備えたことを特徴とする最適化装置。
【請求項6】
対象分子が有する電子および軌道の情報に基づいて、FCI(Full Configuration Interaction)を用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理をコンピュータが実行することを特徴とする最適化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、FCI向け並列処理時のノード数の自動最適化技術に関する。
【背景技術】
【0002】
分子軌道構成の元となる関数である基底関数、および分子の種類とから対象分子のエネルギーを求めることで分子の特性を把握できる。分子特性の把握は、創薬や新材料の発見などに役に立つため、分子のエネルギー(ポテンシャルエネルギー)を求める量子化学計算の重要性は高い。
【0003】
高精度な量子化学計算アルゴリズムとして、FCI(Full Configuration Interaction:全配置間相互作用法)がある。FCIは、シュレーディンガー方程式の数値的厳密解を与え得、他の計算方法の評価基準としても用いられる。一方で、FCIは、計算時間が長く、計算に必要なメモリ容量が大きいという問題がある。このようなFCIの問題に対して、従来技術では、例えば、FCIを用いた計算をMPI(Message Passing Interface)で実行し並列処理することで、計算時間を減らしたり、利用可能なメモリ容量を増やしたりしている。
【0004】
このような従来技術では、計算する分子の情報が変わると、実行時間が最短となる最小ノード数も変わるため、分子情報に応じて、ユーザが手動でノードを調整し、FCIを用いた計算を行う際のノード数を決定している。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術では、FCIを用いた量子化学計算におけるノード数の決定までに、FCIを用いた計算の試行回数が複数回にわたる場合があり、全体の実行時間が増大してしまう。
【0007】
1つの側面では、FCIを用いた計算の実行時間を短縮することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様において、最適化プログラムは、対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、算出したメモリ容量に基づいて、FCIを用いた計算に必要なノード数である第1の数を算出し、第1の数に基づいて、対象分子に対してFCIを用いた計算を行う際のノード数を決定する処理をコンピュータに実行させる。
【発明の効果】
【0009】
1つの側面では、FCIを用いた計算の実行時間を短縮できる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、量子化学計算の一例について説明するための図である。
【
図2】
図2は、従来の量子化学計算処理の流れの一例を示すフローチャートである。
【
図3】
図3は、FCIについて説明するための図である。
【
図4】
図4は、分子の規模と実行時間およびメモリ使用量との関係の一例を示す図である。
【
図5】
図5は、本実施形態にかかる最適化装置10の構成例を示す図である。
【
図6】
図6は、量子化学計算の並列処理の特徴について説明するための図である。
【
図7】
図7は、本実施形態にかかる算出される各ノード数の関係の一例について示す図である。
【
図8】
図8は、本実施形態にかかる量子化学計算処理の流れの一例を示すフローチャートである。
【
図9】
図9は、本実施形態にかかる最適化装置10のハードウェア構成例を示す図である。
【発明を実施するための形態】
【0011】
以下に、本実施形態にかかる最適化プログラム、最適化装置、および最適化方法の実施例を図面に基づいて詳細に説明する。なお、この実施例により本実施形態が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0012】
まず、本実施形態の対象となる量子化学計算について説明する。
図1は、量子化学計算の一例について説明するための図である。
図1のグラフは、横軸を原子間距離、縦軸を基底エネルギーとして、水素分子(対象分子)のポテンシャルエネルギー曲線(PEC)を示すものである。
図1に示すように、量子化学計算では、原子間距離を変化させて複数点の基底エネルギーを求め、線で結ぶことによりPECを求めることができる。これにより、分子特性が把握可能である。例えば、
図1に示すように、PECの極大点では、原子同士が離れた状態である遷移状態を示す。一方、PECの極小点では、原子同士が結合し、分子が生成された安定状態を示す。このように、対象分子のエネルギーを求めることで対象分子の特性を把握できる。
【0013】
分子のエネルギーを求める量子化学計算について説明する。
図2は、従来の量子化学計算処理の流れの一例を示すフローチャートである。
【0014】
まず、
図2に示すように、情報処理装置は、分子情報を量子化学計算アルゴリズムに入力する(ステップS101)。ここで入力される分子情報は、分子軌道構成の元となる関数である基底関数、および分子の種類である。
【0015】
次に、ユーザは、量子化学計算の並列処理に用いるノード数を手動で調整する(ステップS102)。量子化学計算の対象となる分子の情報が変わると、実行時間が最短となる最小ノード数も変わるため、ユーザは、ステップS101で入力される分子情報に基づいて、並列処理に用いるノード数を選択する。
【0016】
次に、情報処理装置は、FCIを用いて、ステップS102で調整したノード数のMPIで量子化学計算を実行する(ステップS103)。なお、MPIでの量子化学計算は、情報処理装置における複数のプロセッサで実行されてもよいし、情報処理装置とその他の情報処理装置とによって実行されてもよい。
【0017】
次に、ユーザは、量子化学計算の実行を終了するか否かを判定する(ステップS104)。より具体的には、ユーザは、ステップS102で調整したノード数で量子化学計算が実行できたか否かを判定する。具体的には、実行のスピードや実行時間がどれくらいであったかを判定する。その結果、実行可能(実行時間が短い、十分な実行スピードである)と判定できた場合、ユーザは、量子化学計算の実行を終了すると判定する(ステップS104:Yes)。ステップS104の実行後、
図2に示す量子化学計算処理は終了する。
【0018】
一方、ステップS102で調整したノード数では、例えば、メモリ使用量が多すぎて量子化学計算が実行できなかったり、実行できても実行スピードが十分でなかったりした場合、ユーザは、量子化学計算の実行を続行すると判定する(ステップS104:No)。この場合、ステップS102に戻り、再度、ノード数を調整し、十分な実行スピードになるまで、ステップS102~S104が繰り返される。このように、従来の量子化学計算では、ノード数を調整しながら量子化学計算を複数回試行するため、全体の実行時間が増大してしまう。そこで、本実施形態では、情報処理装置が、FCIを用いた量子化学計算の並列処理に用いるノード数を計算によって予め決定する。このようにして、本実施形態では、ユーザによるノード数の調整や量子化学計算の複数回試行を行うことなく、FCIを用いた量子化学計算全体の実行時間を短縮できる。
【0019】
このような本実施形態にかかる量子化学計算をより具体的に説明するため、まず、FCIについて説明する。FCIは、対象分子の各軌道と、各軌道に配置される各電子との全ての組み合わせを挙げる量子化学計算方法である。
【0020】
図3は、FCIについて説明するための図である。
図3に示すように、電子と軌道との組み合わせは、例えば、「String」によって表すことができる。当該「String」は、例えば、
図3に示すように、電子によって占有された軌道は“1”、電子によって占有されていない軌道は“0”が記録され、各軌道の“1”または“0”が組み合わされて表現される。
【0021】
各軌道と、各軌道に配置される各電子との組み合わせの数num_stringは、例えば、次の式(1)を用いて算出される。
【0022】
【0023】
式(1)において、norbは、例えば、対象分子の種類と基底関数から決定される軌道の数を示す。また、neは、例えば、対象分子の種類から決定される電子の数を示す。
【0024】
なお、電子には、αまたはβの2種類のスピンがあるため、各軌道に配置されるスピンも2種類あり得る。すなわち、例えば、
図3の例でいうと、一番左の軌道にはαスピンの電子が配置され、左から3つ目の軌道にはβスピンの電子が配置されることが起こり得る。
【0025】
そのため、各軌道に配置される各電子との全ての組み合わせの数は、式(1)を用いて算出される、各軌道に配置される各電子との組み合わせの数num_stringの二乗、すなわち、num_string2となる。そして、num_string2では、軌道の数の階乗norb!が指数になるため、分子の規模が大きくなると、num_string2が膨大になる。そのため、分子の規模に応じて、FCIを用いた量子化学計算の実行時間と、計算に必要なメモリ使用量とか爆発的に増加してしまう。
【0026】
図4は、分子の規模と実行時間およびメモリ使用量との関係の一例を示す図である。
図4は、Hchain分子の規模と、FCIを用いた量子化学計算の実行時間、および計算に必要なメモリ使用量との関係を示すグラフである。
図4に示すように、Hchain分子の規模が大きくなるにつれて、実行時間および必要なメモリ使用量が階乗的に増加している。
【0027】
このような、FCIを用いた量子化学計算の特徴により、計算の実行時間、および計算に必要なメモリ使用量は、各軌道に配置される各電子との全ての組み合わせの数num_string2から見積り可能である。さらに、見積もられた、計算の実行時間や必要なメモリ使用量から、FCIを用いた量子化学計算の並列処理に用いるノード数が見積り可能である。そこで、本実施形態では、情報処理装置が、対象分子の各軌道に配置される各電子との全ての組み合わせの数num_string2から、FCIを用いた量子化学計算の並列処理に用いるノード数を計算によって予め決定する。
【0028】
(最適化装置10の機能構成)
次に、本実施形態の動作主体となる最適化装置10の機能構成について説明する。
図5は、本実施形態にかかる最適化装置10の構成例を示す図である。
図5に示す最適化装置10は、例えば、サーバコンピュータ、またはデスクトップPC(Personal Computer)やノートPCなどの情報処理装置である。なお、
図5では、最適化装置10を1台のコンピュータとして示しているが、複数台のコンピュータで構成される分散型コンピューティングシステムであってもよい。また、最適化装置10は、クラウドコンピューティングサービスを提供するサービス提供者によって管理されるクラウドコンピュータ装置であってもよい。
【0029】
図5に示すように、最適化装置10は、通信部20、記憶部30、および制御部40を有する。
【0030】
通信部20は、他の装置との間の通信を制御する処理部であり、例えば、ネットワークインタフェースカードなどの通信インタフェースやUSB(Universal Serial Bus)インタフェースである。
【0031】
記憶部30は、各種データや、制御部40が実行するプログラムを記憶する機能を有し、例えば、メモリやハードディスクなどの記憶装置により実現される。記憶部30は、分子情報31、およびスペック情報32などを記憶する。
【0032】
分子情報31には、例えば、量子化学計算時に入力される分子情報が記憶される。当該分子情報は、例えば、分子軌道構成の元となる関数である基底関数、分子の種類、および分子が有する電子や軌道に関する情報であってよい。
【0033】
スペック情報32には、例えば、量子化学計算時に入力されるCPU(Central Processing Unit)情報やメモリ情報が記憶される。当該CPU情報は、例えば、CPUの周波数や、シングルノードでのCPUコア数、当該メモリ情報は、例えば、1ノードに使用可能なメモリ容量である。
【0034】
なお、記憶部30に記憶される上記情報はあくまでも一例であり、記憶部30は、上記情報以外にも様々な情報を記憶できる。
【0035】
制御部40は、最適化装置10全体を司る処理部であり、例えば、プロセッサなどである。制御部40は、算出部41、および決定部42を備える。なお、各処理部は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0036】
算出部41は、例えば、対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出する。対象分子が有する電子および軌道の情報は、分子情報31に予め記憶されてよい。FCIを用いた計算において必要なメモリ容量memoryfciは、例えば、次の式(2)を用いて算出される。
【0037】
【0038】
式(2)において、cは、例えば、実行環境によって予め求められる値を示し、PySCF(Python-based Simulations of Chemistry Framework)に実装したFCIの場合はc=33となる。なお、PySCFは、電子状態を計算するオープンソースの量子化学計算ツールである。また、data_byteは、例えば、計算を行うデータのバイト数を示し、64bitのデータの場合はdata_byte=8となる。また、num_string2は、上述したように、式(1)を用いて算出可能である。
【0039】
また、算出部41は、例えば、対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算におけるシングルノードでの実行時間を算出する。FCIを用いた計算におけるシングルノードでの実行時間timesingleは、例えば、次の式(3)を用いて算出される。
【0040】
【0041】
式(3)において、num_string2は、上述したように、式(1)を用いて算出可能である。また、norbは、例えば、対象分子の種類と基底関数から決定される軌道の数を示す。また、CPUfrequencyは、例えば、CPUの周波数を示す。また、ncoresは、例えば、シングルノードでのCPUコア数を示す。CPUの周波数や、シングルノードでのCPUコア数の情報は、スペック情報32に予め記憶されてよい。
【0042】
次に、式(2)および式(3)を用いてそれぞれ算出されるメモリ容量および実行時間に基づいて、FCIを用いた量子化学計算の並列処理に用いるノード数を算出するが、まず、当該並列処理の特徴について説明する。
【0043】
図6は、量子化学計算の並列処理の特徴について説明するための図である。
図6のグラフは、横軸を並列処理時のノード数、縦軸を並列処理時のノードごとの実行時間として、両者の関係、すなわち、並列処理の特徴を示すものである。
図6に示すように、並列処理の特徴として、ノードごとの実行時間は、ノード数を増やせば増やすほど減少するわけではく、mintime
pernodeで示される時間を下回らない傾向がある。なお、mintime
pernodeは、例えば、1秒であり、通信立ち上がり時間とデータ転送時間とを加算して得られるデータの通信時間で決定できる。また、
図6に示すように、さらにノード数を増やすと、ノードごとの実行時間が却ってmintime
pernodeより増加してしまう傾向にあり、ノード数を増やしても一部のノードが無駄になることがわかる。
【0044】
このような、量子化学計算の並列処理の特徴から、算出部41は、無駄なノードを使わないように、実行時間が最短となるようなノード数を算出する。一方で、FCIを用いた量子化学計算に必要なノード数があるため、算出部41は、必要最低限のノード数を算出する。すなわち、計算上、実行時間が最短となるようなノード数であっても、必要最低限のノード数未満の場合は、実質、量子化学計算が実行不可になってしまうため、計算に用いるノード数は、必要最低限のノード数以上である必要がある。
【0045】
そこで、算出部41は、例えば、式(2)を用いて算出した、FCIを用いた計算において必要なメモリ容量に基づいて、FCIを用いた計算に必要なノード数である第1の数を算出する。FCIを用いた計算に必要なノード数numnodes1は、例えば、次の式(4)を用いて算出される。
【0046】
【0047】
式(4)において、memoryfciは、上述したように、式(2)を用いて算出可能である。また、memorypernodeは、例えば、1ノードに使用可能なメモリ容量を示す。1ノードに使用可能なメモリ容量の情報は、スペック情報32に予め記憶されてよい。
【0048】
また、算出部41は、例えば、式(3)を用いて算出した、FCIを用いた計算におけるシングルノードでの実行時間に基づいて、FCIを用いた計算にかかる時間が最短となるノード数である第2の数を算出する。FCIを用いた計算にかかる時間が最短となるノード数numnodes2は、例えば、次の式(5)を用いて算出される。
【0049】
【0050】
式(5)において、timesingleは、上述したように、式(3)を用いて算出可能である。また、mintimepernodeは、例えば、1秒であり、通信立ち上がり時間とデータ転送時間とを加算して得られるデータの通信時間から決定可能である。
【0051】
以上、式(4)および式(5)を用いて、それぞれ、FCIを用いた計算に必要なノード数numnodes1、およびFCIを用いた計算にかかる時間が最短となるノード数numnodes2が算出可能である。
【0052】
図5の説明に戻り、決定部42は、例えば、算出部41によって算出された、FCIを用いた計算に必要なノード数である第1の数に基づいて、FCIを用いた計算を行う際のノード数を決定する。これは、例えば、決定部42が、当該第1の数を、FCIを用いた計算を行う際のノード数に決定することを含む。
【0053】
また、決定部42は、例えば、当該第1の数と、算出部41によって算出された、FCIを用いた計算にかかる時間が最短となるノード数である第2の数とに基づいて、FCIを用いた計算を行う際のノード数を決定する。これは、例えば、決定部42が、当該第1の数と当該第2の数とのうちの大きい値を示す当該第1の数または当該第2の数を、FCIを用いた計算を行う際のノード数に決定することを含む。ここで、式(4)および式(5)を用いてそれぞれ算出されるノード数である第1の数numnodes1および第2の数numnodes2の関係について説明する。
【0054】
図7は、本実施形態にかかる算出される各ノード数の関係の一例について示す図である。
図7の例では、memory
pernodeを大きくした場合と小さくした場合のFCIを用いた計算に必要なノード数である第1の数num
nodes1と、FCIを用いた計算にかかる時間が最短となるノード数である第2の数num
nodes2とを示している。そして、
図7の例では、memory
pernodeを小さくした場合には、第2の数num
nodes2が、第1の数num
nodes1を下回っている。すなわち、FCIを用いた量子化学計算の実行時間が最短となるノード数が、必要なノード数を下回っており、第2の数num
nodes2では、実質、量子化学計算が実行不可になってしまう。
【0055】
そのため、例えば、第2の数numnodes2が、第1の数numnodes1を下回るような場合、決定部42は、FCIを用いた計算に必要なノード数である第1の数numnodes1を、FCIを用いた計算を行う際のノード数に決定する。一方、例えば、第2の数numnodes2が、第1の数numnodes1より大きい場合、決定部42は、FCIを用いた計算にかかる時間が最短となるノード数である第2の数numnodes2を、FCIを用いた計算を行う際のノード数に決定する。このように、決定部42は、第1の数numnodes1と第2の数numnodes2とのうちの大きい値を示す当該第1の数または当該第2の数を、FCIを用いた計算を行う際のノード数に決定できる。すなわち、FCIを用いた計算を行う際のノード数numnodesは、例えば、次の式(6)を用いて算出される。
【0056】
【0057】
(処理の流れ)
次に、
図8を用いて、最適化装置10によって実行される量子化学計算処理について説明する。
図8は、本実施形態にかかる量子化学計算処理の流れの一例を示すフローチャートである。
【0058】
まず、
図8に示すように、最適化装置10は、例えば、分子情報を量子化学計算アルゴリズムに入力する(ステップS201)。ここで入力される分子情報は、例えば、分子情報31に予め記憶された、分子軌道構成の元となる関数である基底関数、および分子の種類である。
【0059】
次に、最適化装置10は、例えば、FCIを用いた計算に必要なノード数、およびFCIを用いた計算にかかる時間が最短となるノード数を算出し、FCIを用いた計算を行う際のノード数numnodesを決定する(ステップS202)。例えば、最適化装置10は、FCIを用いた計算に必要なノード数numnodes1、およびFCIを用いた計算にかかる時間が最短となるノード数numnodes2を算出し、大きい値を示すnumnodes1またはnumnodes2をノード数numnodesに決定する。または、最適化装置10は、FCIを用いた計算に必要なノード数numnodes1を、FCIを用いた計算を行う際のノード数numnodesに決定してもよい。この場合、FCIを用いた計算にかかる時間が最短となるノード数numnodes2は用いないため、算出されなくてよい。
【0060】
次に、最適化装置10は、例えば、FCIを用いて、ステップS202で決定したノード数のMPIで量子化学計算を実行する(ステップS203)。なお、MPIでの量子化学計算は、最適化装置10における複数のプロセッサで実行されてもよいし、最適化装置10とその他の情報処理装置とによって実行されてもよい。ステップS203の実行後、
図8に示す量子化学計算処理は終了する。なお、この量子化学計算では、対象分子のポテンシャルエネルギーを算出することを一例とする。
【0061】
(効果)
上述したように、最適化装置10は、対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、算出したメモリ容量に基づいて、FCIを用いた計算に必要なノード数である第1の数を算出し、第1の数に基づいて、対象分子に対してFCIを用いた計算を行う際のノード数を決定する。
【0062】
このように、最適化装置10は、対象分子の情報に基づいて算出される必要なメモリ容量に基づいて、FCIを用いた計算に必要なノード数を算出し、対象分子に対してFCIを用いた計算を行う際のノード数を決定する。これにより、最適化装置10は、FCIを用いた計算の実行時間を短縮できる。
【0063】
また、最適化装置10によって実行される、FCIを用いた計算を行う際のノード数を決定する処理は、第1の数を、FCIを用いた計算を行う際のノード数に決定する処理を含む。
【0064】
このように、最適化装置10は、FCIを用いた計算に必要なノード数を算出し、FCIを用いた計算を行う際のノード数に決定することで、FCIを用いた計算の実行時間を短縮できる。
【0065】
また、最適化装置10は、対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算におけるシングルノードでの実行時間を算出し、算出した実行時間に基づいて、FCIを用いた計算にかかる時間が最短となるノード数である第2の数を算出する。また、最適化装置10によって実行される、FCIを用いた計算を行う際のノード数を決定する処理は、第1の数と第2の数とに基づいて、FCIを用いた計算を行う際のノード数を決定する処理を含む。
【0066】
このように、最適化装置10は、対象分子の情報に基づいて算出されるシングルノードでの実行時間に基づいて、FCIを用いた計算にかかる時間が最短となるノード数を算出し、FCIを用いた計算を行う際のノード数を決定する。これにより、最適化装置10は、FCIを用いた計算の実行時間をより適切に短縮できる。
【0067】
また、最適化装置10によって実行される、第1の数と第2の数とに基づいて、FCIを用いた計算を行う際のノード数を決定する処理は、第1の数と第2の数とのうちの大きい値を示す第1の数または第2の数を、FCIを用いた計算を行う際のノード数に決定する処理を含む。
【0068】
このように、最適化装置10は、FCIを用いた計算に必要なノード数、およびFCIを用いた計算にかかる時間が最短となるノード数のうち大きい値を示すノード数を、FCIを用いた計算を行う際のノード数に決定する。これにより、最適化装置10は、FCIを用いた計算の実行時間をより適切に短縮できる。
【0069】
(システム)
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報は、特記する場合を除いて任意に変更されてもよい。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更されてもよい。
【0070】
また、最適化装置10の構成要素の分散や統合の具体的形態は図示のものに限られない。例えば、最適化装置10の算出部41が複数の処理部に分散されたり、最適化装置10の算出部41と決定部42とが1つの処理部に統合されたりしてもよい。つまり、その構成要素の全部または一部は、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合されてもよい。さらに、各装置の各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0071】
図9は、本実施形態にかかる最適化装置10のハードウェア構成例を示す図である。
図9に示すように、最適化装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図9に示した各部は、バスなどで相互に接続される。
【0072】
通信インタフェース10aは、ネットワークインタフェースカードなどであり、他の情報処理装置との通信を行う。HDD10bは、例えば、最適化装置10の各機能を動作させるプログラムやデータを記憶する。
【0073】
プロセッサ10dは、CPU、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などである。また、プロセッサ10dは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現されるようにしてもよい。プロセッサ10dは、例えば、
図5などに示した各処理部と同様の処理を実行するプログラムをHDD10bなどから読み出してメモリ10cに展開する。これにより、プロセッサ10dは、最適化装置10の各機能を実現するプロセスを実行するハードウェア回路として動作可能である。
【0074】
また、最適化装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、最適化装置10によって実行されることに限定されるものではない。例えば、他の情報処理装置がプログラムを実行する場合や、他の情報処理装置と最適化装置10とが協働してプログラムを実行するような場合にも、上記実施例が同様に適用されてよい。
【0075】
当該プログラムは、インターネットなどのネットワークを介して配布されてもよい。また、当該プログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータ可読記憶媒体に記録されてよい。そして、当該プログラムは、最適化装置10などによって記録媒体から読み出されることによって実行されてもよい。
【0076】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0077】
(付記1)対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理をコンピュータに実行させることを特徴とする最適化プログラム。
【0078】
(付記2)前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする付記1に記載の最適化プログラム。
【0079】
(付記3)前記情報に基づいて、前記FCIを用いた計算におけるシングルノードでの実行時間を算出し、
算出した前記実行時間に基づいて、前記FCIを用いた計算にかかる時間が最短となるノード数である第2の数を算出する
処理を前記コンピュータにさらに実行させ、
前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する
処理を含むことを特徴とする付記1または2に記載の最適化プログラム。
【0080】
(付記4)前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とのうちの大きい値を示す前記第1の数または前記第2の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする付記3に記載の最適化プログラム。
【0081】
(付記5)対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理を実行する制御部を備えたことを特徴とする最適化装置。
【0082】
(付記6)前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする付記5に記載の最適化装置。
【0083】
(付記7)前記情報に基づいて、前記FCIを用いた計算におけるシングルノードでの実行時間を算出し、
算出した前記実行時間に基づいて、前記FCIを用いた計算にかかる時間が最短となるノード数である第2の数を算出する
処理を前記制御部がさらに実行し、
前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する
処理を含むことを特徴とする付記5または6に記載の最適化装置。
【0084】
(付記8)前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とのうちの大きい値を示す前記第1の数または前記第2の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする付記7に記載の最適化装置。
【0085】
(付記9)対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理をコンピュータが実行することを特徴とする最適化方法。
【0086】
(付記10)前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする付記9に記載の最適化方法。
【0087】
(付記11)前記情報に基づいて、前記FCIを用いた計算におけるシングルノードでの実行時間を算出し、
算出した前記実行時間に基づいて、前記FCIを用いた計算にかかる時間が最短となるノード数である第2の数を算出する
処理を前記コンピュータがさらに実行し、
前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する
処理を含むことを特徴とする付記9または10に記載の最適化方法。
【0088】
(付記12)前記第1の数と前記第2の数とに基づいて、前記FCIを用いた計算を行う際のノード数を決定する処理は、
前記第1の数と前記第2の数とのうちの大きい値を示す前記第1の数または前記第2の数を、前記FCIを用いた計算を行う際のノード数に決定する
処理を含むことを特徴とする付記11に記載の最適化方法。
【0089】
(付記13)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた最適化装置であって、プロセッサは、
対象分子が有する電子および軌道の情報に基づいて、FCIを用いた計算において必要なメモリ容量を算出し、
算出した前記メモリ容量に基づいて、前記FCIを用いた計算に必要なノード数である第1の数を算出し、
前記第1の数に基づいて、前記対象分子に対して前記FCIを用いた計算を行う際のノード数を決定する
処理を実行する制御部を備えたことを特徴とする最適化装置。
【符号の説明】
【0090】
10 最適化装置
10a 通信インタフェース
10b HDD
10c メモリ
10d プロセッサ
20 通信部
30 記憶部
31 分子情報
32 スペック情報
40 制御部
41 算出部
42 決定部