JP4612546B2 - 並列計算方法及び装置 - Google Patents

並列計算方法及び装置 Download PDF

Info

Publication number
JP4612546B2
JP4612546B2 JP2005514078A JP2005514078A JP4612546B2 JP 4612546 B2 JP4612546 B2 JP 4612546B2 JP 2005514078 A JP2005514078 A JP 2005514078A JP 2005514078 A JP2005514078 A JP 2005514078A JP 4612546 B2 JP4612546 B2 JP 4612546B2
Authority
JP
Japan
Prior art keywords
matrix
computer
partial
matrices
representing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005514078A
Other languages
English (en)
Other versions
JPWO2005029352A1 (ja
Inventor
俊和 高田
純一 山本
一人 中田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
NEC Solutions Innovators Ltd
Original Assignee
NEC Corp
NEC Solutions Innovators Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp, NEC Solutions Innovators Ltd filed Critical NEC Corp
Publication of JPWO2005029352A1 publication Critical patent/JPWO2005029352A1/ja
Application granted granted Critical
Publication of JP4612546B2 publication Critical patent/JP4612546B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Operations Research (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)

Description

本発明は、分子シミュレーションなどに適した並列計算方法及び装置に関し、特に、RHF(制限ハートリー・フォック;Restricted Hartree-Fock)法による分子軌道計算に適合した並列計算方法及び装置に関する。
量子化学理論の発展や計算機技術の進歩によって、計算により、分子の構造、物性や、分子内の化学結合や分子軌道、電子状態などを精度よくシミュレーションできるようになってきた。そのような手法は一般に分子軌道法と呼ばれる。分子軌道法の中でも、経験的パラメータに原則として依存しない非経験的分子軌道法は、近似計算であるにせよシュレーディンガー方程式を解くために莫大な計算量を必要とするため、これまでは、小さな分子にしか適用することができなかった。しかしながら、近年のコンピュータの性能の著しい向上により、生体関連物質を含む比較的大きな分子に対しても非経験的分子軌道法計算を実行できるようになり、例えば、生理活性を有する物質の解析や探索に使用されるようになってきている。
非経験的分子軌道法にはいくつかの手法があるが、分子の全エネルギーを得るために最も使用される方法として、ハートリー・フォック(HF)法がある。HF法は、シュレーディンガー方程式に対して1電子近似、線形近似を行なったロータン方程式(式(1))を解く方法として定式化されている。
Figure 0004612546
式(1)において、解析対象である分子における原子軌道(AO;Atomic Orbital)の数をN、分子軌道(MO;Molecular Orbital)の数をMとすると、F,Sは、いずれもN×N行列、CはM×N行列、εはM次元ベクトルである。Fはフォック行列と呼ばれ、式(2)で与えられる。
Figure 0004612546
ここでDは密度行列と呼ばれ、式(3)のようにMO係数Cによって定義されている。
Figure 0004612546
ここで、記号Σでの"occ"は、電子が占有する分子軌道についての和であることを表している。S,H,(rs|tu)は、各々、重なり積分、Hコア積分、2電子積分と呼ばれる物理量であり、原子軌道φrを用いて、式(4)〜(6)のように表される。
Figure 0004612546
ここで、記号Σにおける"core"は、原子核について和であることを表す。ところで式(1)は、線型方程式の型に書かれてはいるが、フォック行列Fが原子軌道φiに依存して決まるため、実際には非線形方程式であって、完全に解くことはできない。そこで、この方程式を解くのに用いられるのが、自己無撞着場の方法(SCF(Self-consistent field)法)である。
SCF法では、よく知られているように、
[1] MO係数Cの初期推測値を求める;
[2] 密度行列DをMO係数Cから求める;
[3] 得られた密度行列Dを使い、フォック行列Fを求める;
[4] フォック行列Fを対角化し、固有値εと固有ベクトルを求める;
[5] 得られた固有ベクトルから、新しいMO係数Cと密度行列Dを求める;
[6] 密度行列Dが変化しなくなるまで、[3]から[5]までをくり返す;
という手順で計算が行われる。
SCF法の計算において、その費やす時間の大部分は[3]のフォック行列Fの計算である。その理由は、2電子積分(rs|tu)の計算をN4回繰り返すからである。一度計算した2電子積分の結果をディスクなどのストレージ装置に保存しておく方法も考えられるが、大規模計算、例えばNが数万程度の場合であると、必要なディスク容量が膨大になってしまうため、多くの場合は2電子積分を毎回計算するダイレクト方式が取られる。したがって、フォック行列Fの計算を高速化することが、SCF法計算全体の高速化に直結する。
この分子軌道法計算を高速に実行する方法として、例えば、特開2000−293494号公報、特開2001−312485号公報及び特開平9−50428号公報に開示された方法がある。これらの方法は、1台のベクトル計算機などのホスト機で行列計算などを行ない、その一方で、フォック行列Fの計算または2電子積分の計算を並列計算機や計算機クラスタに行なわせる方法である。
しかしこれらの方法では、対角化などの行列計算をいわゆるホスト機で行なうため、ホスト機のメモリ容量を超える大きさの行列を扱うことはできない、という問題点がある。これに対してはホスト機を複数台並列に用意するなどの対処法は存在するが、この対処法は、高価なため、容易に行なうことはできない。近年は、汎用計算機の低価格化や性能向上もあり、計算機クラスタで高速で廉価なシステムを作れるようになった。汎用計算機クラスタでは、計算機1台あたりのメモリ容量は高性能計算機に比べ小容量であるが、接続する計算機の台数を増やせばシステム全体の容量は大容量になる。また、接続する計算機の台数を増やすことは、高速化にもつながる。ただし、汎用計算機クラスタでは、計算機1台ごとのメモリ容量は小さいため、大型分子の行列計算を1台の計算機で行なうことはできず、分子軌道数が数万軌道になると、1つの行列を1台の計算機のメモリ上に確保することもできない、という問題点がある。
特開2000−293494 特開2001−312485 特開平9−050428
上述したように、計算機クラスタのような並列計算機システムを用いたとしても、大規模かつ高速な分子軌道計算を行うためには解決すべき多くの課題が残されている。大規模かつ高速な分子軌道計算を実現するために必要なのは、第1に、全ての行列要素を常に分散してメモリ領域に保存し、行列計算の際にも1台の計算機上に集めない計算方法の確立である。これにより、計算規模はシステム全体の総メモリ容量のみに依存し、計算機1台のメモリ容量には依存しなくなり、また高価なホスト機を用意する必要もなくなる。すなわち、大規模計算を行なうためには、接続される廉価な計算機の個数を多くすればよいことになる。第2に、上記の方法において、計算量を削減する手法の確立である。1台の計算機上で計算する場合には計算量を1/16にする方法が知られているが、上記のように全ての行列要素を分散してメモリ領域に保存した場合の計算量を削減する方法は知られていない。並列台数を増やせば高速化できるが、計算量を削減できればさらなる高速化につながるので、このような手法の確立は重要である。
そこで本発明の目的は、密度行列を分割しても、アルゴリズムの工夫によって計算を高速に行えるようにでき、さらに、大規模計算を可能にし、従来は計算できないでいた生体高分子などの分子軌道計算を行うことができる並列計算方法を提供することにある。
本発明の別の目的は、密度行列を分割しても、アルゴリズムの工夫によって計算を高速に行えるようにでき、さらに、大規模計算を可能にし、従来は計算できないでいた生体高分子などの分子軌道計算を行うことができる並列計算装置を提供することにある。
本発明の並列計算方法は、通信機器を介し相互に接続された複数の計算機からなる計算機クラスタを使用して分子軌道法におけるハートリー・フォック法の計算を実行するための並列計算方法であって、各計算機は、密度行列を分割した部分密度行列を格納する行列格納部と、計算機クラスタ中の他の計算機に対して部分密度行列を送受信する転送制御部と、行列格納部に格納された部分密度行列に関する演算を実行する演算処理部と、演算と転送との繰り返しの制御を行う制御部と、を備え、密度行列を複数の部分密度行列に分割してそれらの複数の部分密度行列を複数の計算機のそれぞれの行列格納部に分散して格納する段階と各計算機においてその計算機の演算処理部が行列格納部に格納された部分密度行列に対する2電子積分を含む演算処理を実行する第1の段階と、転送順序に従い、各計算機においてその計算機の転送制御部が行列格納部に格納されている部分密度行列を通信機器を介して他の計算機に転送し、かつ、通信機器を介して転送されてきた部分密度行列を行列格納部に格納する第2の段階と、を有し、制御部が、転送制御部と演算処理部とに第1の段階と第2の段階とを複数の計算機の台数に相当する回数繰り返させることによって、部分密度行列を複数の計算機間で順次転送させつつ全ての部分密度行列に対して演算処理を実行させる。
この並列計算方法は、上述したRHF法の計算に適したものである。本発明によれば、密度行列を複数の計算機上に分散して保存した場合でもRHF法の計算が可能となり、計算時間を短縮することができる。本発明では、密度行列の複製を用いて積分計算を半数に減らし、計算時間を短縮するようにしてもよい。また、密度行列とその複製を計4個用意し、2電子積分における(rs|tu)⇔(tu|rs)の対称性を使うことで、さらに計算時間を短縮するようにしてもよい。
本発明の並列計算装置は、分子軌道法におけるハートリー・フォック法の計算を実行するための並列計算装置であって、通信機器を介し相互に接続された複数の計算機を備える計算機クラスタを有し、各計算機は、密度行列を分割した部分密度行列を格納する行列格納部と、計算機クラスタ中の他の計算機に対して部分密度行列を送受信する転送制御部と、行列格納部に格納された部分密度行列に関する演算を実行する演算処理部と、を有し、密度行列を複数の部分密度行列に分割して複数の部分密度行列を複数の計算機のそれぞれの行列格納部に分散して格納し、転送順序に従い、各計算機において、転送制御部により、行列格納部に格納されている部分密度行列を通信機器を介して他の計算機に転送し、かつ、通信機器を介して転送されてきた部分密度行列を行列格納部に格納することによって、複数の部分密度行列を複数の計算機間で順転送させながら、演算処理部により、部分密度行列に対する2電子積分を含む演算処理を実行し、転送と演算処理とを複数の計算機の台数に相当する回数繰り返すことによって、全ての部分密度行列に対して演算処理を実行する。
本発明は、密度行列を分割したハートリー・フォック法の計算方法に関するものであって、分割された部分密度行列を順次転送することによりフォック行列の生成を可能にし、作業領域を増やし異なる転送順序を組み合わせることにより計算量を減らし、転送方法を一回跳ばすことにより転送量を削減したものである。本発明の方法は、計算規模がシステム全体のメモリ容量にのみ依存する方法であるので、多数のコンピュータを並列接続することで大規模計算を可能にするととともに、計算時間を短縮することを可能にする。
分散メモリ型並列計算機すなわちPCクラスタとして構成された本発明の実施の一形態の並列計算装置の構成を示すブロック図である。 各計算機の論理的な構成を示すブロック図である。 本発明の並列計算方法に基づく、密度行列を分割した場合におけるフォック行列生成アルゴリズムを示すフローチャートである。 ノード数4の場合における領域(RS)(行列J(RS))に対する転送順序を表した図である。 ノード数4の場合における領域(TU)(行列D(TU))に対する転送順序を表した図である。 ノード数4の場合における領域(RU)(行列K(RU))に対する転送順序を表した図である。 ノード数4の場合における領域(TS)(行列D(TS))に対する転送順序を表した図である。 図6に示した転送順序を分かりやすく書き直した図である。 ノード数4のとき、2電子積分(RS|TU)を(m|n)と書き直し、行列であるとみなして、2電子積分の計算実行の有無を説明する図である。 ノード数9のとき、2電子積分(RS|TU)を(m|n)と書き直し、行列であるとみなして、2電子積分の計算実行の有無を説明する図である。
本実施形態では、図1に示すような計算機クラスタすなわち分散メモリ型並列計算機を想定している。図1に示す本発明の実施の一形態の計算機システムは、同様の性能を持った複数台の計算機を、通信機器によって接続したものである。従来の分子軌道計算アルゴリズムでは、大容量のメモリを必要とするため、ホスト計算機としていわゆるスーパーコンピュータなどの高性能計算機を用意することが多い。そして、高性能計算機は一般に高価であるため、費用面の問題となる場合がある。ところが本発明の方法を用いれば、そのようなホスト計算機を必要としないため、費用を軽減できる。
図1に示した例では、計算機システムは、複数台(ここではn台)の計算機11〜1nと、これら計算機11〜1nが接続するハブ2とを備えた計算機クラスタとして構成されている。計算機11〜1nとしては、典型的には、パーソナルコンピュータ(PC)が使用されるので、この計算機クラスタは、PCクラスタということになる。ここでは1台のハブ2を用いて複数の計算機を接続しているが、各計算機を接続する形態はこれに限定されるものではなく、例えば、リング型あるいはバス型のネットワークに接続するようなものであってもよい。
図2は、上述した計算クラスタを構成する各計算機における論理的な機能を示したブロック図である。本実施形態では、フォック行列の算出に必要な密度行列などの各行列を部分行列に分割して各ノード(計算機クラスタを構成する各計算機)に分割し、各ノードすなわち計算機ではその格納している部分行列に対してあるいはその部分行列に基づいて演算を行うとともに、ノード間でそのような部分行列を転送し、このような演算と転送とを繰り返すことによって、最終的な結果(例えばフォック行列)を得るようにしている。このように各計算機が機能するために、各計算機(ノード)は、図2に示すように、部分行列を格納する行列格納部11と、行列格納部11に格納されている部分行列を別のノードに転送し、別のノードから部分行列を受け取るための転送制御部12と、例えば2電子積分などの演算を行って行列格納部11内の部分行列に関する演算処理を実行する演算処理部13と、演算と転送との繰り返しの制御を行う制御部14と、が設けられている。
次に、本実施形態におけるこのような並列計算装置を用いた、密度行列Dを分割した場合のフォック行列生成アルゴリズムの手順について、図3を用いて説明する。本実施形態の方法では、密度行列を複数の部分密度行列に分割し、それをノード間で転送しつつ2電子積分を繰り返し、最後にHコア行列との和を足し合わせることによって、フォック行列を生成する。図3では、複数のノード間での部分密度行列の転送を説明するために、PC1とPC2の2つのノードでの処理が並列して示されている。
まず、カウンタnを用意して、ステップ101において、カウンタの初期値をn=0とする。次に、ステップ102において、nに1を加算し、ステップ103において、2電子積分を部分的に計算し、計算した計算した2電子積分値を用い、上述の式(2)の計算を行う。そして、ステップ104において、次に必要な部分密度行列を得るために、密度行列の転送を行う。ここでノードPC1からノードPC2に部分密度行列が転送される。ノードPC1には別のノードから部分密度行列が送られて来るので、ノードPC1は、ノードPC2に転送した部分密度行列の代わりに、その送られてきた部分行列を行列格納部内に格納する。またノードPC2は、格納していた部分密度行列をさらに別のノードに転送する。
そして、ステップ105において、カウンタnが、ノード数(すなわち計算機数)に満たないかかどうかを判定する。n<ノード数の場合には、ステップ102〜104の処理を繰り返すためにステップ102に戻り、カウンタnを1だけインクリメントして再び2電子積分を行う。このとき行う計算では、転送されてきた部分密度行列に合わせ、前回とは異なる部分を計算させる。一方、ステップ105においてカウンタnがノード数と等しくなるかまたは超えたときは、全ノードで全ての部分密度行列に対して計算が行われたことになるので、ステップ106において、Hコア行列等を足し合わせ、計算を終了する。
本発明の並列計算方法は上述したものに限定されるものではない。転送される部分行列や転送の態様を選択することによって、以下に説明するように、各種の実施形態で本発明を実施することができる。以下の説明では、説明の簡単のために、ノード数が4であり、また、行列を部分行列に分割する際の分割数が4であるとする。
《例1:巡回密度行列法》
ます、巡回密度行列法と呼ぶ実施形態について説明する。再びフォック行列Fを式(7)のように表す。
Figure 0004612546
式(7)において、行列を表しているのは、Frs,Hrs,Dtu(r,s,t,u=1,…,N)である。行列の分割数4より、式(8)に示すように、r,s,t,uを各々2つの領域に分割する。
Figure 0004612546
このように領域を分割すると、行列は4つに分割される。分割された部分行列を式(9)のように呼ぶことにする。
Figure 0004612546
また、これらをまとめて表す場合には、式(10)のように表すこととする。
Figure 0004612546
この部分行列を、4つのノード(計算機)に分配する。ノード名をP11,P21,P12,P22として、部分行列が各ノードに式(11)に示すように分配されるとする。このように行列が分配された状態を初期分配状態(S−0)と呼ぶことにする。
Figure 0004612546
さて、式(7)におけるt,uについての和は、全領域について計算しなければならないが、各ノードには密度行列Dの一部が保持されているだけなので、このままでは計算できない。そこで、密度行列Dを転送し、その都度、式(7)の一部を計算していくことにする。この方法がうまく行くための条件は、各ノードが常に行列Dの各々異なる部分行列を持つことである。そのような方法のひとつとして、巡回的に部分行列を転送する方法がある。これは式(7)を式(12)〜(14)のように計算することである。
Figure 0004612546
ここで、1,2はR,Sの部分領域を表し、a,bはT,Uの部分領域を表すので、それらの領域全てについて和を取ることとし、和の記号は省略した。式(12)は、それぞれノードP11〜P22上での計算を表しており、初期分配状態(S−0)では第2項まで計算できる。第3項以降は、密度行列Dを転送した後でなければ計算できない。そこで、密度行列Dにのみ注目すると、その転送順序は図5に示すようになっていることが分かる。ここで、図の(S−0)〜(S−3)は、転送によって変化した分配状態の名前である。部分行列D(aa)に注目すれば、P11,P21,P12,P22の順に巡回することが分かる。逆に、ノードP21に注目すると、D(ba),D(aa),D(bb),D(ab)の順に部分密度行列が巡って来ることが分かる。すなわち、全ての部分密度行列がノードP21に順次転送されてきたことになる。全ノードについて同様なので、結局、式(7)を計算するには、この順序に部分密度行列を転送すればよいことになる。この転送を実現するには、ノードの名前を式(15)のように読みかえると便利である。
Figure 0004612546
このようにすると、以下のようなアルゴリズムによって、上記の転送による計算は実現できる。
[1] Fの一部分を計算する;
[2] ノードP(i)は、自らが格納している部分密度行列をP(i+1)へ送信する;
[3] ノードP(i)は、P(i−1)が格納していた部分密度行列を受け取る;
[4] [1]〜[3]をノードの数だけ繰り返す。
ただし、4ノードで考えているので、ノード番号iには周期的境界条件i=i+4を課す。図5のように、ノードの数だけの回数(ここでは4回)転送を行うと、部分密度行列が一周し、計算の初期分配状態(S−0)に戻り、計算が終了する。
《例2.二重巡回密度行列法》
次に、二重巡回密度行列法と呼ぶ形態について説明する。ここでは、密度行列Dの複製を用いることにより、積分計算を半数に減らし、計算時間を短縮するようにしている。ここでの記号は、上述した巡回密度行列法と同様のものを使用する。この方法では、式(7)を式(16)のように分解する。
Figure 0004612546
ここでJ,Kは、各々、クーロン積分と交換積分の和を示す行列である。これを、巡回密度行列法の場合と同様に、領域とノードごとの計算に書き直すと、式(17),(18)を得る。
Figure 0004612546
ここでは、各ノードで計算される2電子積分(rs|tu)が、J,Kの分配状態ごとに等しくなるように並べられている。言い換えると、2電子積分(rs|tu)を一回計算するだけでよいように並べてある。そのために、Kの部分行列も転送しなければならない。行列J(RS),D(TU),K(RU),D(TS)の転送は、それぞれ、図4〜図7に示すようになる。K(RU)(R,S,T,Uは領域)の転送は、一見複雑に見えるが、図8のように書き直すと分かりやすい。すなわち、K(RU)については、P11とP12、P21とP22の間でのみ転送がおき、一方D(TS)は、図7より、P11とP21、P12とP22の間でのみ転送がおこる。これは、ノードを式(19)のように読みかえることで分かりやすくなる。
Figure 0004612546
このようにしたとき、
[1] K(RU)の転送は、P(i,j),(i,j={1,2})のiが等しいノードとの間でのみ行われ、また、
[2] D(TS)の転送は、P(i,j),(i,j={1,2})のjが等しいノードとの間でのみ行われる。
K(RU)は、転送される場合と転送されない場合とが存在するが、これは分配状態(S−n)の状態番号n(=0,1,2,…)と巡回周期t(=1,2,3,…)で判定できる。まず、巡回周期tは、ノード数をmとして、式(20)で与えられる。
Figure 0004612546
これを用いることにより、K(RU)の転送が起きる条件は具体的には式(21)のようになる。
Figure 0004612546
これが成り立つノードP(i,j)でのみ、次回に転送を起こさなければならない。以下において、式(21)を転送条件と呼ぶ。これら転送を実現する計算アルゴリズムは、以下のようになる。
[1] J,Kの一部分を計算する;
[2] P(i,j)は、転送条件が成立するとき、自らが格納するK(RU)をP(i,j+1)へ送信する;
[3] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納していたK(RU)を受け取る;
[4] P(i,j)は、自らが格納するD(TS)をP(i+1,j)に送信する;
[5) P(i,j)は、P(i−1,j)が格納していたD(TS)を受け取る;
[6] P(k)は、自らが格納するD(TU)をP(k+1)へ送信する;
[7] P(k)は、P(k−1)が格納していたD(TU)を受け取る;
[8] [1]〜[7]をノードの数だけ繰り返す;
[9] フォック行列Fを計算する。
ただし、k=(j−1)imax+iである。この方法でも、全ての転送が終了したとき、分配状態は初期状態(S−0)に戻る。
《例3.四重巡回密度行列法 その1》
次に、四重巡回密度行列法と呼ぶ形態について説明する。ここでは、密度行列Dとその複製とを合計4個用意し、さらに、2電子積分における(rs|tu)⇔(tu|rs)の対称性を用いることで、二重巡回密度行列法よりもさらに積分計算を減らし、計算時間の短縮を図っている。ここでの記号は、上述した巡回密度行列法と同様のものを使用する。この方法では、式(7)を式(22)〜(24)のように分解する。
Figure 0004612546
これは、r,sによって一意に決まる数mと、t,uによって一意に決定される数nを用いて、クーロン積分J及び交換積分Kを2つの行列に分けて計算することを表している。2電子積分(rs|tu)は、m,nを用いて(m|n)と表される。2電子積分は(rs|tu)=(tu|rs)という対称性を持つので、条件m≦nより、(m|n)を行列と考えると、J1,K1は(m|n)のその行列の下三角部分、J2,K2は(m|n)の上三角部分を計算していることになる。条件m≦nをひとまず無視して、式(25),(26)に示すように、式(22)を領域とノードごとの計算に書き直す。
Figure 0004612546
この計算を実現する各行列の転送順序としては、二重巡回密度行列法と同じものを使用する。行列J1(RS),D(RS)については図4、行列D(TU),J2(TU)については図5、行列K1(RU),D(RU)については図6、行列D(TS),K2(TS)については図7にしたがった転送を行う。すなわち領域(RS),(TU),(RU),(TS)によって転送方法が異なる。次に、条件を領域ごとに適用できるように、数m,nを式(27)のように書き直す。
Figure 0004612546
ここで、i,jは領域R,Sの番号{1,2}を表し、k,lは領域T,Uの番号{a,b}を表す。ただし、a=1,b=2と換算する。このm,nを使用して、行列JをJ1,J2に、行列KをK1,K2に分けて計算する条件は、以下のようにいくつか考えられる。
Figure 0004612546
例えば、条件(c−1),(c−3)を適用した場合は、J1,J2,K1,K2の計算は次のようになる。
条件(c−1)を適用した場合、J1,J2,K1,K2の計算は式(28)で表される。
Figure 0004612546
条件(c−3)を適用した場合、J1,J2,K1,K2の計算は式(29)で表される。
Figure 0004612546
条件(c−3),(c−4)の方が、各ノードの計算量が比較的平均化される。結局、計算アルゴリズムは以下のようになる。
[1] 条件(c−1)〜(c−4)の何れかを満たすとき、J1,J2,K1,K2の一部分を計算する;
[2] P(i,j)は、転送条件が成立するとき、自らが格納するK1(RU),D(RU)をP(i,j+1)へ送信する;
[3] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納していたK1(RU),D(RU)を受け取る;
[4] P(i,j)は、自らが格納するK2(TS),D(TS)をP(i+1,j)に送信する;
[5] P(i,j)は、P(i−1,j)が格納していたK2(TS),D(TS)を受け取る;
[6] P(k)は、自らが格納するJ2(TU),D(TU)をP(k+1)へ送信する;
[7] P(k)は、P(k−1)が格納していたJ2(TU),D(TU)を受け取る;
[8] [1]〜[7]をノードの数だけ繰り返す;
[9] J,Kを計算する;
[10] Fを計算する。
ただし、ノード番号は、式(30)のように読みかえている。
Figure 0004612546
《例4.四重巡回密度行列法 その2》
次に、四重巡回密度行列法と呼ぶ形態の別の例について説明する。
上述した四重巡回密度行列法では、ノード数が奇数個の場合に限り、条件(c−3),(c−4)下の計算を別の方法で行なうことができる。ノード数が4,9で条件(c−3)を満たす場合について、領域ごとの2電子積分(rs|tu)=(m|n)を、図9、図10のように図示する。白四角の部分は、計算する2電子積分(m|n)を表し、黒四角の部分は、条件(c−3)によって計算しない(m|n)を表す。また、各ノードP(i,j)(i,j={1,2}または{1,2,3})については、横一列を計算する。計算の順序は、対角成分(m|m)から計算が始まり、転送により(m|m−1)に移動する。図9、図10の四角形内部の数字が個の計算順序を表している。ノード数9の場合は、2,4,6,8に対応する四角形部分は全ノードで黒四角形であり、2電子積分を計算しないことを示している。ノード数が奇数個の場合は、転送を繰り返すと、黒四角形部分と白四角形部分とを交互に辿ることになる。ノード数4の場合は、どの番号の四角形部分においても必ず一つは白四角形があり、ノード数が偶数個の場合にも一般化できる。したがって、ノード数が奇数個の場合には、1,3,5,7,9の四角形部分に対応して計算しさえすればよく、転送を一回分跳ばして行なうことができる。ただし、最後の一回だけは一回分のみ転送する。この場合の計算アルゴリズムは次のようになる。
[1] J1,J2,K1,K2の一部分を計算する;
[2] P(i,j)は、転送条件が成立するとき、自らが格納するK1(RU),D(RU)をP(i,j+1)へ送信する;
[3] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納していたK1(RU),D(RU)を受け取る;
[4] P(i,j)は、自らが格納するK2(TS),D(TS)をP(i+2,j)に送信する;
[5] P(i,j)は、P(i−2,j)が格納していたK2(TS),D(TS)を受け取る;
[6] P(k)は、自らが格納するJ2(TU),D(TU)をP(k+2)へ送信する;
[7] P(k)は、P(k−2)が格納していたJ2(TU),D(TU)を受け取る;
[8] [1]〜[7]を(ノード数/2)に相当する回数繰り返す;
[9] J1,J2,K1,K2の一部分を計算する;
[10] P(i,j)は、転送条件が成立するとき、自らが格納するK1(RU),D(RU)をP(i,j+1)へ送信する;
[11] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納していたK1(RU),D(RU)を受け取る;
[12] P(i,j)は、自らが格納するK2(TS),D(TS)をP(i+1,j)に送信する;
[13] P(i,j)は、P(i−1,j)が格納していたK2(TS),D(TS)を受け取る;
[14] P(k)は、自らが格納するJ2(TU),D(TU)をP(k+1)へ送信する;
[15] P(k)は、P(k−1)が格納していたJ2(TU),D(TU)を受け取る;
[16] J,Kを計算する;
[17] Fを計算する。
条件(c−4)を満たす場合は、転送順序を逆にするか、最後の一回分のみの転送を最初に行なえばよい。すなわち、上記のアルゴリズムを[9],…,[15],[1],…,[8],[16],[17]と行なえばよい。
《例5.一般化》
上述した各種の巡回密度行列法は、ノード数N、分割数M(>N)の場合でも計算することができるが、各行列の分割方法は揃えておく必要がある。すなわち、領域RとTの個数が一致し、領域SとUの個数が一致していなければならない。「四重巡回密度行列法その2」では、一般化すると次のようなアルゴリズムになる。
[1] 条件(c−3)を満たすとき、J1,J2,K1,K2の一部分を計算する;
[2] P(i,j)は、転送条件が成立するとき、自らが格納するK1(RU),D(RU)をP(i,j+1)へ送信する;
[3] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納していたK1(RU),D(RU)を受け取る;
[4] P(i,j)は、自らが格納するK2(TS),D(TS)をP(i+2,j)に送信する;
[5] P(i,j)は、P(i−2,j)が格納していたK2(TS),D(TS)を受け取る;
[6] P(k)は、自らが格納するJ2(TU),D(TU)をP(k+2)へ送信する;
[7] P(k)は、P(k−2)が格納していたJ2(TU),D(TU)を受け取る;
[8] J1,J2,K1,K2の一部分を計算する;
[9] P(i,j)は、転送条件が成立するとき、自らが格納するK1(RU),D(RU)をP(i,j+1)へ送信する;
[10] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納していたK1(RU),D(RU)を受け取る;
[11] P(i,j)は、自らが格納するK2(TS),D(TS)をP(i+2,j)に送信する;
[12] P(i,j)は、P(i−2,j)が格納していたK2(TS),D(TS)を受け取る;
[13] P(k)は、自らが格納するJ2(TU),D(TU)をP(k+2)へ送信する;
[14] P(k)は、P(k−2)が格納していたJ2(TU),D(TU)を受け取る;
[15] [8]〜[14]を{(ノード数/2)−1}に相当する回数繰り返す;
[16] J1,J2,K1,K2の一部分を計算する;
[17] P(i,j)は、転送条件が成立するとき、自らが格納するK1(RU),D(RU)をP(i,j+1)へ送信する;
[18] P(i,j)は、転送条件が成立するとき、P(i,j−1)が格納するK1(RU),D(RU)を受け取る;
[19] P(i,j)は、自らが格納するK2(TS),D(TS)をP(i+1,j)に送信する;
[20] P(i,j)は、P(i−1,j)が格納するK2(TS),D(TS)を受け取る;
[21] P(k)は、自らが格納するJ2(TU),D(TU)をP(k+1)へ送信する;
[22] P(k)は、P(k−1)が格納していたJ2(TU),D(TU)を受け取る;
[23] J,Kを計算する;
[24] Fを計算する。
条件(c−4)を満たす場合は、転送を逆に巡回させるか、最初の転送を一回分にすればよい。
以上、本発明の好ましい実施形態を説明したが、本発明は、計算機クラスタでの実現を前提とするものである。したがって、計算機クラスタを構成する各計算機は、上述した各ノードでの処理を実行するものでなくてはならない。各計算機は、ノードとしての処理を実現するための計算機プログラムを読み込み、そのプログラムを実行することによって、上述した各処理を実行するようになる。そのようなプログラムは、磁気テープやCD−ROMなどの記録媒体によって、あるいはネットワークを介して、計算機に読み込まれる。
具体的にはそのプログラムは、複数のノードから構成される計算機クラスタにおける各ノードの計算機を、密度行列を分割した部分密度行列を格納する行列格納部、計算機クラスタの他のノードに対して前記部分密度行列を送受信する転送制御部、行列格納部に格納された部分密度行列に関する演算を実行する演算処理部、として機能させ、それによって、複数の部分密度行列が複数のノード間で順番に転送されながら、各ノードにおいて部分密度行列に対する演算処理が実行されるようにする。
さらには本発明の範疇には、上述したプログラムからなるプログラムプロダクト、このプログラムを格納した機械可読記録媒体、このプログラムを伝送する伝送媒体も含まれる。

Claims (6)

  1. 通信機器を介し相互に接続された複数の計算機からなる計算機クラスタを使用し、分子軌道法におけるハートリー・フォック法の計算を下記の式(a1)に基づくフォック行列Fを用いて計算する方法であり、前記計算機クラスタのノード数をmとして、前記式(a1)を分解して得られる下記の式(a2)に基づくフォック行列を計算するための並列計算方法であって、
    Figure 0004612546
    Figure 0004612546
    ここで、Frsはフォック行列Fの行列要素であり、HrsはHコア積分を表す行列Hの行列要素であり、Jrsはクーロン積分を表す行列Jの行列要素であり、Krsは交換積分を表す行列Kの行列要素であり、DtuとDtsは密度行列Dの行列要素であり、(rs|tu)と(rt|su)は二電子積分の配列要素であり、Nを原子軌道数を表すパラメータとしてr,s,t,uはそれぞれ独立に1以上N以下の整数であり、
    r,tの分割数が等しく、かつ、s,uの分割数が等しくなるように、行列F,H,D,J,Kは分割数Mの部分行列に分割され、二電子積分はM 2 個の部分に分割され、
    分割された1以上N以下の整数r,s,t,uの各範囲を前記各計算機に割り当て、
    割り当てられた範囲にしたがって前記部分行列は前記各計算機に重複なく格納され、
    割り当てられた範囲にしたがって前記各計算機は二電子積分を計算することとし、
    前記各計算機は、前記行列を分割した前記分行列を格納する行列格納部と、前記計算機クラスタ中の他の計算機に対して前記部分行列を送受信する転送制御部と、前記行列格納部に格納された前記分行列に関する演算を実行する演算処理部と、演算と転送との繰り返しの制御を行う制御部と、を備え、
    前記複数の計算機のおのおのを識別する指標をi,jとして前記各計算機をP(i,j)で表し、i及びjの最大値をそれぞれimax及びjmaxとし、
    部分行列の個数が分割数Mとなるように分割された1以上N以下の整数r,s,t,uが前記各計算機に割り当てられた範囲をR,S,T,Uで表し、
    前記密度行列の要素がD tu 及びD ts で表される前記密度行列Dの分割された部分密度行列をそれぞれD(TU)及びD(TS)とし、
    行列要素がJ rs で表されるクーロン積分を表す前記行列Jの分割された部分行列をJ(RS)とし、
    行列要素がK ru で表される交換積分を表す前記行列Kの分割された部分行列をK(RU)とし、
    前記密度行列を複数の部分密度行列D(TU)及びD(TS)に分割して該複数の部分密度行列D(TU)及びD(TS)を前記複数の計算機の各々の行列格納部に分散して格納する段階と、
    前記各計算機において当該計算機の演算処理部が前記行列格納部に格納された前記部分密度行列D(TU)及びD(TS)を用いて前記行列J及び前記行列Kの一部分を計算する第1の段階と、
    前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている部分行列K(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K(RU)を前記行列格納部に格納する第2の段階と、
    前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分密度行列D(TS)を計算機P(i+1,j)に送信し、かつ、計算機P(i−1,j)から転送されてきた前記部分密度行列D(TS)を前記行列格納部に格納する第3の段階と、
    k=(j−1)imax+iとして計算機P(i,j)を計算機P(k)と表すことにして、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分密度行列D(TU)を計算機P(k+1)に送信し、かつ、計算機P(k−1)から転送されてきた前記部分密度行列D(TU)を前記行列格納部に格納する第4の段階と、
    を有し、
    nを部分密度行列D(TS)が転送されるたびに1増加する0から始まる番号とし、t=m/jmaxとして、前記転送条件はi=(n mod t)+1が成り立つときであり、
    前記制御部が、前記転送制御部と前記演算処理部とに前記第1乃至第4の段階を前記ノード数mだけ繰り返させ、これにより前記フォック行列を計算する、並列計算方法。
  2. 通信機器を介し相互に接続された複数の計算機からなる計算機クラスタを使用し、分子軌道法におけるハートリー・フォック法の計算を下記の式(a1)に基づくフォック行列Fを用いて計算する方法であり、前記計算機クラスタのノード数をmとして、前記式(a1)を分解して得られる下記の式(a3)に基づくフォック行列を計算するための並列計算方法であって、
    Figure 0004612546
    Figure 0004612546
    ここで、Frsはフォック行列Fの行列要素であり、HrsはHコア積分を表す行列Hの行列要素であり、Jrsはクーロン積分を表す行列Jの行列要素であり、Krsは交換積分を表す行列Kの行列要素であり、Dtu,Drs,Dts及びDruは密度行列Dの行列要素であり、(rs|tu)と(rt|su)は二電子積分の配列要素であり、Nを原子軌道数を表すパラメータとしてr,s,t,uはそれぞれ独立に1以上N以下の整数であり、m=(s−1)N+r及びn=(u−1)N+tとして二電子積分の配列要素を(m|n)として表すと、J1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J1の行列要素であり、J2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J2の行列要素であり、K1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K1の行列要素であり、K2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K2の行列要素であり、d(m,n)は対角要素が1/2かつ非対角要素が1のN 2 ×N 2 個の要素を持つ行列dの行列要素であり、
    r,tの分割数が等しく、かつ、s,uの分割数が等しくなるように、行列F,H,D,J,J1,J2,K,K1,K2は分割数Mの部分行列に分割され、二電子積分はM 2 個の部分に分割され、
    分割された1以上N以下の整数r,s,t,uの各範囲を前記各計算機に割り当て、
    割り当てられた範囲にしたがって前記部分行列は前記各計算機に重複なく格納され、
    割り当てられた範囲にしたがって前記各計算機は二電子積分を計算することとし、
    前記各計算機は、前記行列を分割した前記分行列を格納する行列格納部と、前記計算機クラスタ中の他の計算機に対して前記部分行列を送受信する転送制御部と、前記行列格納部に格納された前記分行列に関する演算を実行する演算処理部と、演算と転送との繰り返しの制御を行う制御部と、を備え、
    前記複数の計算機のおのおのを識別する指標をi,jとして前記各計算機をP(i,j)で表し、i及びjの最大値をそれぞれimax及びjmaxとし、
    部分行列の個数が分割数Mとなるように分割された1以上N以下の整数r,s,t,uが前記各計算機に割り当てられた範囲をR,S,T,Uで表し、
    前記密度行列の要素がD tu ,D rs ,D ts 及びD ru で表される前記密度行列Dの分割された部分密度行列をそれぞれD(TU),D(RS),D(TS)及びD(RU)とし、
    行列要素がJ1 rs で表されるクーロン積分の一部を表す前記行列J1の分割された部分行列をJ1(RS)とし、
    行列要素がJ2 tu で表されるクーロン積分の一部を表す前記行列J2の分割された部分行列をJ2(TU)とし、
    行列要素がK1 ru で表される交換積分の一部を表す前記行列K1の分割された部分行列をK1(RU)とし、
    行列要素がK2 ts で表される交換積分の一部を表す前記行列K2の分割された部分行列をK2(TS)とし、
    前記密度行列Dを複数の前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)に分割して該複数の部分密度行列D(TU),D(RS),D(TS)及びD(RU)を前記複数の計算機の各々の行列格納部に分散して格納する段階と、
    前記各計算機において当該計算機の演算処理部が、第1乃至第4の条件のいずれかが満たされるときに、前記行列格納部に格納された前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)を用いて前記行列J1,J2,K1及びK2の一部分を計算する第1の段階と、
    前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K1(RU)及びD(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K1(RU)及びD(RU)を前記行列格納部に格納する第2の段階と、
    前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列K2(TS)及びD(TS)を計算機P(i+1,j)に送信し、かつ、計算機P(i−1,j)から転送されてきた前記部分行列K2(TS)及びD(TS)を前記行列格納部に格納する第3の段階と、
    k=(j−1)imax+iとして計算機P(i,j)を計算機P(k)と表すことにして、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列J2(TU)及びD(TU)を計算機P(k+1)に送信し、かつ、計算機P(k−1)から転送されてきた前記部分行列J2(TU)及びD(TU)を前記行列格納部に格納する第4の段階と、
    を有し、
    nを部分密度行列D(TS)が転送されるたびに1増加する0から始まる番号とし、t=m/jmaxとして、前記転送条件はi=(n mod t)+1が成り立つときであり、
    μ=(j−1)imax+i (i,j={1,2}),
    ν=(l−1)kmax+k (k,l={a,b})として、
    前記第1の条件はμ≧νであり、
    前記第2の条件はμ≦νであり、
    前記第3の条件は
    μ=ν, μ+ν=奇数 for μ<ν, μ+ν=偶数 for μ>ν
    であり、
    前記第4の条件は、
    μ=ν, μ+ν=奇数 for μ>ν, μ+ν=偶数 for μ<ν
    であり、
    前記制御部が、前記転送制御部と前記演算処理部とに前記第1乃至第4の段階を前記ノード数だけ繰り返させ、これにより前記行列J,K及び前記フォック行列を計算する、並列計算方法。
  3. 通信機器を介し相互に接続された複数の計算機からなる計算機クラスタを使用し、分子軌道法におけるハートリー・フォック法の計算を下記の式(a1)に基づくフォック行列Fを用いて計算する方法であり、前記計算機クラスタのノード数をmとして、前記式(a1)を分解して得られる下記の式(a3)に基づくフォック行列を計算するための並列計算方法であって、
    Figure 0004612546
    Figure 0004612546
    ここで、Frsはフォック行列Fの行列要素であり、HrsはHコア積分を表す行列Hの行列要素であり、Jrsはクーロン積分を表す行列Jの行列要素であり、Krsは交換積分を表す行列Kの行列要素であり、Dtu,Drs,Dts及びDruは密度行列Dの行列要素であり、(rs|tu)と(rt|su)は二電子積分の配列要素であり、Nを原子軌道数を表すパラメータとしてr,s,t,uはそれぞれ独立に1以上N以下の整数であり、m=(s−1)N+r及びn=(u−1)N+tとして二電子積分の配列要素を(m|n)として表すと、J1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J1の行列要素であり、J2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J2の行列要素であり、K1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K1の行列要素であり、K2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K2の行列要素であり、d(m,n)は対角要素が1/2かつ非対角要素が1のN 2 ×N 2 個の要素を持つ行列dの行列要素であり、
    r,tの分割数が等しく、かつ、s,uの分割数が等しくなるように、行列F,H,D,J,J1,J2,K,K1,K2は分割数Mの部分行列に分割され、二電子積分はM 2 個の部分に分割され、
    分割された1以上N以下の整数r,s,t,uの各範囲を前記各計算機に割り当て、
    割り当てられた範囲にしたがって前記部分行列は前記各計算機に重複なく格納され、
    割り当てられた範囲にしたがって前記各計算機は二電子積分を計算することとし、
    前記各計算機は、前記行列を分割した前記分行列を格納する行列格納部と、前記計算機クラスタ中の他の計算機に対して前記部分行列を送受信する転送制御部と、前記行列格納部に格納された前記分行列に関する演算を実行する演算処理部と、演算と転送との繰り返しの制御を行う制御部と、を備え、
    前記複数の計算機のおのおのを識別する指標をi,jとして前記各計算機をP(i,j)で表し、i及びjの最大値をそれぞれimax及びjmaxとし、
    部分行列の個数が分割数Mとなるように分割された1以上N以下の整数r,s,t,uが前記各計算機に割り当てられた範囲をR,S,T,Uで表し、
    前記密度行列の要素がD tu ,D rs ,D ts 及びD ru で表される前記密度行列Dの分割された部分密度行列をそれぞれD(TU),D(RS),D(TS)及びD(RU)とし、
    行列要素がJ1 rs で表されるクーロン積分の一部を表す前記行列J1の分割された部分行列をJ1(RS)とし、
    行列要素がJ2 tu で表されるクーロン積分の一部を表す前記行列J2の分割された部分行列をJ2(TU)とし、
    行列要素がK1 ru で表される交換積分の一部を表す前記行列K1の分割された部分行列をK1(RU)とし、
    行列要素がK2 ts で表される交換積分の一部を表す前記行列K2の分割された部分行列をK2(TS)とし、
    前記密度行列Dを複数の部分密度行列D(TU),D(RS),D(TS)及びD(RU)に分割して該複数の部分密度行列D(TU),D(RS),D(TS)及びD(RU)を前記複数の計算機の各々の行列格納部に分散して格納する段階と、
    前記各計算機において当該計算機の演算処理部が、計算条件が満たされるときに、前記行列格納部に格納された前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)を用いて前記行列J1,J2,K1及びK2の一部分を計算する第1の段階と、
    前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K1(RU)及びD(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K1(RU)及びD(RU)を前記行列格納部に格納する第2の段階と、
    前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列K2(TS)及びD(TS)を計算機P(i+2,j)に送信し、かつ、計算機P(i−2,j)から転送されてきた前記部分行列K2(TS)及びD(TS)を前記行列格納部に格納する第3の段階と、
    k=(j−1)imax+iとして計算機P(i,j)を計算機P(k)と表すことにして、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列J2(TU)及びD(TU)を計算機P(k+2)に送信し、かつ、計算機P(k−2)から転送されてきた前記部分行列J2(TU)及びD(TU)を前記行列格納部に格納する第4の段階と、
    前記制御部が、前記転送制御部と前記演算処理部とに前記第1乃至第4の段階を(ノード数/2)に相当する回数だけ繰り返させることによって、前記行列J1,J2,K1,K2の一部分を計算する第5の段階と、
    前記第5の段階による繰り返しののち、各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K1(RU)及びD(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K1(RU)及びD(RU)を前記行列格納部に格納する第6の段階と、
    前記第5の段階による繰り返しののち、前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列K2(TS)及びD(TS)を計算機P(i+1,j)に送信し、かつ、計算機P(i−1,j)から転送されてきた前記部分行列K2(TS)及びD(TS)を前記行列格納部に格納する第7の段階と、
    前記第5の段階による繰り返しののち、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列J2(TU)及びD(TU)を計算機P(k+1)に送信し、かつ、計算機P(k−1)から転送されてきた前記部分行列J2(TU)及びD(TU)を前記行列格納部に格納する第8の段階と、
    を有し、
    nを部分密度行列D(TS)が転送されるたびに1増加する0から始まる番号とし、t=m/jmaxとして、前記転送条件はi=(n mod t)+1が成り立つときであり、
    μ=(j−1)imax+i (i,j={1,2}),
    ν=(l−1)kmax+k (k,l={a,b})として、
    前記計算条件は
    μ=ν, μ+ν=奇数 for μ<ν, μ+ν=偶数 for μ>ν
    である、前記行列J,K及び前記フォック行列を計算する、並列計算方法。
  4. 分子軌道法におけるハートリー・フォック法の計算を下記の式(a1)に基づくフォック行列Fを用いて計算する並列計算装置であり、前記式(a1)を分解して得られる下記の式(a2)に基づくフォック行列を計算するための並列計算装置であって、
    Figure 0004612546
    Figure 0004612546
    ここで、Frsはフォック行列Fの行列要素であり、HrsはHコア積分を表す行列Hの行列要素であり、Jrsはクーロン積分を表す行列Jの行列要素であり、Krsは交換積分を表す行列Kの行列要素であり、DtuとDtsは密度行列Dの行列要素であり、(rs|tu)と(rt|su)は二電子積分の配列要素であり、Nを原子軌道数を表すパラメータとしてr,s,t,uはそれぞれ独立に1以上N以下の整数であり、
    通信機器を介し相互に接続された複数の計算機を備える計算機クラスタを有し、
    前記計算機クラスタのノード数をmとし、
    r,tの分割数が等しく、かつ、s,uの分割数が等しくなるように、行列F,H,D,J,Kは分割数Mの部分行列に分割され、二電子積分はM 2 個の部分に分割され、
    分割された1以上N以下の整数r,s,t,uの各範囲が前記各計算機に割り当てられ、
    割り当てられた範囲にしたがって前記部分行列は前記各計算機に重複なく格納され、
    割り当てられた範囲にしたがって前記各計算機は二電子積分を計算することとし、
    前記各計算機は、前記行列を分割した部分行列を格納する行列格納部と、前記計算機クラスタ中の他の計算機に対して前記部分行列を送受信する転送制御部と、前記行列格納部に格納された前記分行列に関する演算を実行する演算処理部と、を有し、
    前記複数の計算機のおのおのを識別する指標をi,jとして前記各計算機をP(i,j)で表し、i及びjの最大値をそれぞれimax及びjmaxとし、
    部分行列の個数が分割数Mとなるように分割された1以上N以下の整数r,s,t,uが前記各計算機に割り当てられた範囲をR,S,T,Uで表し、
    前記密度行列の要素がD tu 及びD ts で表される前記密度行列Dの分割された部分密度行列をそれぞれD(TU)及びD(TS)とし、
    行列要素がJ rs で表されるクーロン積分を表す前記行列Jの分割された部分行列をJ(RS)とし、
    行列要素がK ru で表される交換積分を表す前記行列Kの分割された部分行列をK(RU)とし、
    前記密度行列Dが前記部分密度行列D(TU)及びD(TS)に分割されて該複数の部分密度行列D(TU)及びD(TS)が前記複数の計算機の各々の行列格納部に分散して格納され、
    前記各計算機において当該計算機の演算処理部が前記行列格納部に格納された前記部分密度行列D(TU)及びD(TS)を用いて前記行列J及び前記行列Kの一部分を計算する処理を第1の処理とし、
    前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K(RU)を前記行列格納部に格納する処理を第2の処理とし、
    前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分密度行列D(TS)を計算機P(i+1,j)に送信し、かつ、計算機P(i−1,j)から転送されてきた前記部分密度行列D(TS)を前記行列格納部に格納する処理を第3の処理とし、
    k=(j−1)imax+iとして計算機P(i,j)を計算機P(k)と表すことにして、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分密度行列D(TU)を計算機P(k+1)に送信し、かつ、計算機P(k−1)から転送されてきた前記部分密度行列D(TU)を前記行列格納部に格納する処理を第4の処理とし、
    nを部分密度行列D(TS)が転送されるたびに1増加する0から始まる番号とし、t=m/jmaxとして、前記転送条件はi=(n mod t)+1が成り立つときであり、
    前記第1乃至第4の処理が前記ノード数mだけ繰り返され、これにより前記フォック行列が算出される、並列計算装置。
  5. 分子軌道法におけるハートリー・フォック法の計算を下記の式(a1)に基づくフォック行列Fを用いて計算する並列計算装置であり、前記式(a1)を分解して得られる下記の式(a3)に基づくフォック行列を計算するための並列計算装置であって、
    Figure 0004612546
    Figure 0004612546
    ここで、Frsはフォック行列Fの行列要素であり、HrsはHコア積分を表す行列Hの行列要素であり、Jrsはクーロン積分を表す行列Jの行列要素であり、Krsは交換積分を表す行列Kの行列要素であり、Dtu,Drs,Dts及びDruは密度行列Dの行列要素であり、(rs|tu)と(rt|su)は二電子積分の配列要素であり、Nを原子軌道数を表すパラメータとしてr,s,t,uはそれぞれ独立に1以上N以下の整数であり、m=(s−1)N+r及びn=(u−1)N+tとして二電子積分の配列要素を(m|n)として表すと、J1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J1の行列要素であり、J2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J2の行列要素であり、K1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K1の行列要素であり、K2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K2の行列要素であり、d(m,n)は対角要素が1/2かつ非対角要素が1のN 2 ×N 2 個の要素を持つ行列dの行列要素であり、
    通信機器を介し相互に接続された複数の計算機を備える計算機クラスタを有し、
    前記計算機クラスタのノード数をmとし、
    r,tの分割数が等しく、かつ、s,uの分割数が等しくなるように、行列F,H,D,J,J1,J2,K,K1,K2は分割数Mの部分行列に分割され、二電子積分はM 2 個の部分に分割され、
    分割された1以上N以下の整数r,s,t,uの各範囲が前記各計算機に割り当てられ、
    割り当てられた範囲にしたがって前記部分行列は前記各計算機に重複なく格納され、
    割り当てられた範囲にしたがって前記各計算機は二電子積分を計算することとし、
    前記各計算機は、前記行列を分割した部分行列を格納する行列格納部と、前記計算機クラスタ中の他の計算機に対して前記部分行列を送受信する転送制御部と、前記行列格納部に格納された前記分行列に関する演算を実行する演算処理部と、を有し、
    前記複数の計算機のおのおのを識別する指標をi,jとして前記各計算機をP(i,j)で表し、i及びjの最大値をそれぞれimax及びjmaxとし、
    部分行列の個数が分割数Mとなるように分割された1以上N以下の整数r,s,t,uが前記各計算機に割り当てられた範囲をR,S,T,Uで表し、
    前記密度行列の要素がD tu ,D rs ,D ts 及びD ru で表される前記密度行列Dの分割された部分密度行列をそれぞれD(TU),D(RS),D(TS)及びD(RU)とし、
    行列要素がJ1 rs で表されるクーロン積分の一部を表す前記行列J1の分割された部分行列をJ1(RS)とし、
    行列要素がJ2 tu で表されるクーロン積分の一部を表す前記行列J2の分割された部分行列をJ2(TU)とし、
    行列要素がK1 ru で表される交換積分の一部を表す前記行列K1の分割された部分行列をK1(RU)とし、
    行列要素がK2 ts で表される交換積分の一部を表す前記行列K2の分割された部分行列をK2(TS)とし、
    前記密度行列Dが複数の前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)に分割されて該複数の部分密度行列D(TU),D(RS),D(TS)及びD(RU)が前記複数の計算機のそれぞれの行列格納部に分散して格納され、
    前記各計算機において当該計算機の演算処理部が、第1乃至第4の条件のいずれかが満たされるときに、前記行列格納部に格納された前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)を用いて前記行列J1,J2,K1及びK2の一部分を計算する処理を第1の処理とし、
    前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K1(RU)及びD(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K1(RU)及びD(RU)を前記行列格納部に格納する処理を第2の処理とし、
    前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列K2(TS)及びD(TS)を計算機P(i+1,j)に送信し、かつ、計算機P(i−1,j)から転送されてきた前記部分行列K2(TS)及びD(TS)を前記行列格納部に格納する処理を第3の処理とし、
    k=(j−1)imax+iとして計算機P(i,j)を計算機P(k)と表すことにして、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列J2(TU)及びD(TU)を計算機P(k+1)に送信し、かつ、計算機P(k−1)から転送されてきた前記部分行列J2(TU)及びD(TU)を前記行列格納部に格納する処理を第4の処理とし、
    nを部分密度行列D(TS)が転送されるたびに1増加する0から始まる番号とし、t=m/jmaxとして、前記転送条件はi=(n mod t)+1が成り立つときであり、
    μ=(j−1)imax+i (i,j={1,2}),
    ν=(l−1)kmax+k (k,l={a,b})として、
    前記第1の条件はμ≧νであり、
    前記第2の条件はμ≦νであり、
    前記第3の条件は
    μ=ν, μ+ν=奇数 for μ<ν, μ+ν=偶数 for μ>ν
    であり、
    前記第4の条件は、
    μ=ν, μ+ν=奇数 for μ>ν, μ+ν=偶数 for μ<ν
    であり、
    前記第1乃至第4の処理が前記ノード数だけ繰り返され、これにより前記行列J,K及び前記フォック行列が計算される、並列計算装置。
  6. 分子軌道法におけるハートリー・フォック法の計算を下記の式(a1)に基づくフォック行列Fを用いて計算する並列計算装置であり、前記式(a1)を分解して得られる下記の式(a3)に基づくフォック行列を計算するための並列計算装置であって、
    Figure 0004612546
    Figure 0004612546
    ここで、Frsはフォック行列Fの行列要素であり、HrsはHコア積分を表す行列Hの行列要素であり、Jrsはクーロン積分を表す行列Jの行列要素であり、Krsは交換積分を表す行列Kの行列要素であり、Dtu,Drs,Dts及びDruは密度行列Dの行列要素であり、(rs|tu)と(rt|su)は二電子積分の配列要素であり、Nを原子軌道数を表すパラメータとしてr,s,t,uはそれぞれ独立に1以上N以下の整数であり、m=(s−1)N+r及びn=(u−1)N+tとして二電子積分の配列要素を(m|n)として表すと、J1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J1の行列要素であり、J2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用したクーロン積分の一部を表す行列J2の行列要素であり、K1 rs は二電子積分の条件m≦nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K1の行列要素であり、K2 rs は二電子積分の条件m≧nを満たす配列要素(m|n)を使用した交換積分の一部を表す行列K2の行列要素であり、d(m,n)は対角要素が1/2かつ非対角要素が1のN 2 ×N 2 個の要素を持つ行列dの行列要素であり、
    通信機器を介し相互に接続された複数の計算機を備える計算機クラスタを有し、
    前記計算機クラスタのノード数をmとし、
    r,tの分割数が等しく、かつ、s,uの分割数が等しくなるように、行列F,H,D,J,J1,J2,K,K1,K2は分割数Mの部分行列に分割され、二電子積分はM 2 個の部分に分割され、
    分割された1以上N以下の整数r,s,t,uの各範囲が前記各計算機に割り当てられ、
    割り当てられた範囲にしたがって前記部分行列は前記各計算機に重複なく格納され、
    割り当てられた範囲にしたがって前記各計算機は二電子積分を計算することとし、
    前記各計算機は、前記行列を分割した部分行列を格納する行列格納部と、前記計算機クラスタ中の他の計算機に対して前記部分行列を送受信する転送制御部と、前記行列格納部に格納された前記分行列に関する演算を実行する演算処理部と、を有し、
    前記複数の計算機のおのおのを識別する指標をi,jとして前記各計算機をP(i,j)で表し、i及びjの最大値をそれぞれimax及びjmaxとし、
    部分行列の個数が分割数Mとなるように分割された1以上N以下の整数r,s,t,uが前記各計算機に割り当てられた範囲をR,S,T,Uで表し、
    前記密度行列の要素がD tu ,D rs ,D ts 及びD ru で表される前記密度行列Dの分割された部分密度行列をそれぞれD(TU),D(RS),D(TS)及びD(RU)とし、
    行列要素がJ1 rs で表されるクーロン積分の一部を表す前記行列J1の分割された部分行列をJ1(RS)とし、
    行列要素がJ2 tu で表されるクーロン積分の一部を表す前記行列J2の分割された部分行列をJ2(TU)とし、
    行列要素がK1 ru で表される交換積分の一部を表す前記行列K1の分割された部分行列をK1(RU)とし、
    行列要素がK2 ts で表される交換積分の一部を表す前記行列K2の分割された部分行列をK2(TS)とし、
    前記密度行列Dが複数の前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)に分割されて該複数の部分密度行列D(TU),D(RS),D(TS)及びD(RU)が前記複数の計算機のそれぞれの行列格納部に分散して格納され、
    前記各計算機において当該計算機の演算処理部が、計算条件が満たされるときに、前記行列格納部に格納された前記部分密度行列D(TU),D(RS),D(TS)及びD(RU)を用いて前記行列J1,J2,K1及びK2の一部分を計算する処理を第1の処理とし、
    前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K1(RU)及びD(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K1(RU)及びD(RU)を前記行列格納部に格納する処理を第2の処理とし、
    前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列K2(TS)及びD(TS)を計算機P(i+2,j)に送信し、かつ、計算機P(i−2,j)から転送されてきた前記部分行列K2(TS)及びD(TS)を前記行列格納部に格納する処理を第3の処理とし、
    k=(j−1)imax+iとして計算機P(i,j)を計算機P(k)と表すことにして、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列J2(TU)及びD(TU)を計算機P(k+2)に送信し、かつ、計算機P(k−2)から転送されてきた前記部分行列J2(TU)及びD(TU)を前記行列格納部に格納する処理を第4の処理とし、
    前記第1乃至第4の処理を(ノード数/2)に相当する回数だけ繰り返すことによって前記行列J1,J2,K1,K2の一部分を計算する処理を第5の処理とし、
    前記第5の段階による繰り返しののち、前記各計算機P(i,j)において当該計算機の転送制御部が、転送条件が成立するときに、前記行列格納部に格納されている前記部分行列K1(RU)及びD(RU)を計算機P(i,j+1)に送信し、かつ、計算機P(i,j−1)から転送されてきた前記部分行列K1(RU)及びD(RU)を前記行列格納部に格納する処理を第6の処理とし、
    前記第5の段階による繰り返しののち、前記各計算機P(i,j)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列K2(TS)及びD(TS)を計算機P(i+1,j)に送信し、かつ、計算機P(i−1,j)から転送されてきた前記部分行列K2(TS)及びD(TS)を前記行列格納部に格納する処理を第7の処理とし、
    前記第5の段階による繰り返しののち、前記各計算機P(k)において当該計算機の転送制御部が、前記行列格納部に格納されている前記部分行列J2(TU)及びD(TU)を計算機P(k+1)に送信し、かつ、計算機P(k−1)から転送されてきた前記部分行列J2(TU)及びD(TU)を前記行列格納部に格納する処理を第8の処理とし、
    nを部分密度行列D(TS)が転送されるたびに1増加する0から始まる番号とし、t=m/jmaxとして、前記転送条件はi=(n mod t)+1が成り立つときであり、
    μ=(j−1)imax+i (i,j={1,2}),
    ν=(l−1)kmax+k (k,l={a,b})として、
    前記計算条件は
    μ=ν, μ+ν=奇数 for μ<ν, μ+ν=偶数 for μ>ν
    であり、前記第1乃至第8の処理が実行されて前記行列J,K及び前記フォック行列が計算される、並列計算装置。
JP2005514078A 2003-09-22 2004-09-21 並列計算方法及び装置 Expired - Fee Related JP4612546B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003330290 2003-09-22
JP2003330290 2003-09-22
PCT/JP2004/013734 WO2005029352A1 (ja) 2003-09-22 2004-09-21 並列計算方法及び装置

Publications (2)

Publication Number Publication Date
JPWO2005029352A1 JPWO2005029352A1 (ja) 2006-11-30
JP4612546B2 true JP4612546B2 (ja) 2011-01-12

Family

ID=34372986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005514078A Expired - Fee Related JP4612546B2 (ja) 2003-09-22 2004-09-21 並列計算方法及び装置

Country Status (3)

Country Link
US (1) US7885796B2 (ja)
JP (1) JP4612546B2 (ja)
WO (1) WO2005029352A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386193B2 (en) * 2004-09-27 2013-02-26 Japan Science And Technology Agency Molecular orbital computing device for elongation method
US8065503B2 (en) * 2006-12-15 2011-11-22 International Business Machines Corporation Iteratively processing data segments by concurrently transmitting to, processing by, and receiving from partnered process
KR101472417B1 (ko) * 2013-07-09 2014-12-12 주식회사 엘지화학 순차적 블록 구성을 통한 분자 오비탈 특성 해석 방법 및 이를 이용한 시스템
US9836563B2 (en) * 2013-09-26 2017-12-05 Synopsys, Inc. Iterative simulation with DFT and non-DFT
US10402520B2 (en) 2013-09-26 2019-09-03 Synopsys, Inc. First principles design automation tool
WO2015048437A1 (en) 2013-09-26 2015-04-02 Synopsys, Inc. Mapping intermediate material properties to target properties to screen materials
US10516725B2 (en) 2013-09-26 2019-12-24 Synopsys, Inc. Characterizing target material properties based on properties of similar materials
US10489212B2 (en) 2013-09-26 2019-11-26 Synopsys, Inc. Adaptive parallelization for multi-scale simulation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6158076A (ja) * 1984-08-29 1986-03-25 Sumitomo Electric Ind Ltd 連立一次方程式シミユレ−タ
JPS63238653A (ja) * 1986-11-27 1988-10-04 Nippon Telegr & Teleph Corp <Ntt> データ処理装置とその処理方法
JP2000020501A (ja) * 1998-07-03 2000-01-21 Toshiba Corp 並列計算機システム及びその演算処理装置間の通信方法
JP2000298658A (ja) * 1999-04-13 2000-10-24 Fuji Xerox Co Ltd 並列処理方法および並列処理装置
JP2000305923A (ja) * 1999-04-21 2000-11-02 Fuji Xerox Co Ltd 行列要素の並列計算方法および分子軌道計算方法
JP2003099408A (ja) * 2001-09-25 2003-04-04 Japan Science & Technology Corp 並列計算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0950458A (ja) 1995-08-10 1997-02-18 Hitachi Ltd 分子軌道に関する2電子積分の計算方法
JPH0950428A (ja) 1995-08-10 1997-02-18 Hitachi Ltd 分子軌道解析用計算システム
JP2000293494A (ja) 1999-04-09 2000-10-20 Fuji Xerox Co Ltd 並列計算装置および並列計算方法
JP4475614B2 (ja) 2000-04-28 2010-06-09 大正製薬株式会社 並列処理方法におけるジョブの割り当て方法および並列処理方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6158076A (ja) * 1984-08-29 1986-03-25 Sumitomo Electric Ind Ltd 連立一次方程式シミユレ−タ
JPS63238653A (ja) * 1986-11-27 1988-10-04 Nippon Telegr & Teleph Corp <Ntt> データ処理装置とその処理方法
JP2000020501A (ja) * 1998-07-03 2000-01-21 Toshiba Corp 並列計算機システム及びその演算処理装置間の通信方法
JP2000298658A (ja) * 1999-04-13 2000-10-24 Fuji Xerox Co Ltd 並列処理方法および並列処理装置
JP2000305923A (ja) * 1999-04-21 2000-11-02 Fuji Xerox Co Ltd 行列要素の並列計算方法および分子軌道計算方法
JP2003099408A (ja) * 2001-09-25 2003-04-04 Japan Science & Technology Corp 並列計算方法

Also Published As

Publication number Publication date
WO2005029352A1 (ja) 2005-03-31
US7885796B2 (en) 2011-02-08
JPWO2005029352A1 (ja) 2006-11-30
US20060271301A1 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
Pan et al. An effective hybrid discrete differential evolution algorithm for the flow shop scheduling with intermediate buffers
CN108986872B (zh) 用于大数据电子病历约简的多粒度属性权重Spark方法
US20200090051A1 (en) Optimization problem operation method and apparatus
CN114764549B (zh) 基于矩阵乘积态的量子线路模拟计算方法、装置
CN114080614A (zh) 用于量子计算的交换网络
CN111914378B (zh) 一种单振幅量子计算模拟方法及装置
JP4612546B2 (ja) 並列計算方法及び装置
Novoselsky et al. Coefficients of fractional parentage in the L–S coupling scheme
CN114418105B (zh) 一种基于量子线路处理量子应用问题的方法及装置
CN113222160B (zh) 一种量子态的转换方法及装置
CN114528996B (zh) 一种目标体系试验态初始参数的确定方法、装置及介质
WO2020221583A1 (en) System and method for molecular design on a quantum computer
CN114492815B (zh) 一种基于量子化学计算目标体系能量的方法、装置及介质
CN113128015A (zh) 预估单振幅模拟量子计算所需资源的方法和系统
CN115809705A (zh) 基于量子计算的流体动力学计算系统及量子计算机
CN114492814B (zh) 基于量子计算模拟目标体系能量的方法、装置及介质
JP3033511B2 (ja) 大規模積和演算処理方法及び装置
CN116052759A (zh) 一种哈密顿量构造方法及相关装置
CN114418104B (zh) 一种量子应用问题的处理方法及装置
CN114519429A (zh) 获取目标体系的可观测量的方法、装置及介质
CN115511094B (zh) 量子线路执行结果确定方法、装置及量子计算机操作系统
US20220308837A1 (en) Optimization method, information processing apparatus, and system using the same
JP7089174B2 (ja) 連立方程式処理装置、連立方程式処理方法および連立方程式処理プログラム
Zolfaghari Numerical Integration of Stiff Differential-Algebraic Equations
Seal An accelerated recursive doubling algorithm for block tridiagonal systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070813

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100831

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100929

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101015

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees