(57)【特許請求の範囲】
【請求項１】
複数のプロセッサを有するパラレルコンピュータを用いた分子軌道計算方法であって、ａ、ｂ、ｃ、ｄが分子軌道基底を示すインデックスであり、ｒ、ｓ、ｔ、ｕが原子軌道基底を示すインデックスであり、個々の分子軌道基底が原子軌道基底の線形結合であって変換行列で結ばれており、（ｒｓ｜ｔｕ）が原子軌道基底での２電子積分であり、（ａｂ｜ｃｄ）が分子軌道基底での２電子積分であり、原子軌道基底での２電子積分（ｒｓ｜ｔｕ）から分子軌道基底での２電子積分（ａｂ｜ｃｄ）を計算する際に、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓとを割り振り、前記複数のプロセッサの各々において、指定された原子軌道のインデックスＲとＳの組合せと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについて、前記原子軌道基底での２電子積分と前記変換行列の要素とからなる項の積和処理を行うことを特徴とする並列計算方法。
【請求項２】
複数のプロセッサを有するパラレルコンピュータを用いた分子軌道計算方法であって、ａ、ｂ、ｃ、ｄが分子軌道基底を示すインデックスであり、ｒ、ｓ、ｔ、ｕが原子軌道基底を示すインデックスであり、個々の分子軌道基底が原子軌道基底の線形結合であって変換行列で結ばれており、（ｒｓ｜ｔｕ）が原子軌道基底での２電子積分であり、（ａｂ｜ｃｄ）が分子軌道基底での２電子積分であり、原子軌道基底での２電子積分（ｒｓ｜ｔｕ）から分子軌道基底での２電子積分（ａｂ｜ｃｄ）を計算する際に、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓとを割り振り、前記複数のプロセッサの各々において、指定された原子軌道のインデックスRとSの組合せと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについて、前記原子軌道基底での２電子積分と前記変換行列の要素とからなる項の積和処理を行うことにより、前記複数のプロセッサにおける仕事量を表わす粒度が均一になるように処理すべきデータを分割することを特徴とする並列計算方法。
【請求項３】
請求項１又は２に記載の並列計算方法において、
前記２電子積分の計算途中では前記複数のプロセッサ間ではデータ転送を行わず、前記複数のプロセッサの前記処理の後に一度だけギャザリングして前記複数のプロセッサの処理されたデータの和を取ることを特徴とする並列計算方法。
【請求項４】
請求項１又は２に記載の並列計算方法において、
前記複数のプロセッサの各々は、
１）プロセッサ毎に指定されたＲとＳとの組合せと、ｔおよびｕの全ての組合せについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算し、
２）計算された２電子積分について、ｕからdへの変換を行う、すなわち、全てのｕの組合せについて（ＲＳ｜ｔｕ）の積和計算を行い（ＲＳ｜ｔｄ）を求める
３）上記２）で変換されたデータについて、ｔからｃへの変換を行う、すなわち、全てのｔの組合せについて（ＲＳ｜ｔｄ）の積和計算を行い（ＲＳ｜ｃｄ）を求める
４）上記３）で変換されたデータについて、Ｓからｂの構成要素であるＢへの変換を行う、すなわち、指定されたＳの組合せについて（ＲＳ｜ｃｄ）の積和計算を行い（ＲＢ｜ｃｄ）を求める
５）上記４）で変換されたデータについて、Ｒからａの構成要素であるＡへの変換を行う、すなわち、指定されたＲの組合せについて（ＲＢ｜ｃｄ）の積和計算を行い（ＡＢ｜ｃｄ）を求める
６）上記５）で変換されたデータを各プロセッサのローカルメモリーに保存し、
７）最後にギャザリング、すなわち、各プロセッサーの計算結果である（ＡＢ|ｃｄ）を元に積和計算を行い、分子軌道基底での２電子積分（ａｂ｜ｃｄ）を求めることを特徴とする並列計算方法。
【請求項５】
請求項１又は２に記載の並列計算方法において、
前記複数のプロセッサの各々は、
１）プロセッサ毎に指定されたＲとＳの組合せと、ｔおよびｕの全ての組合せとについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算し、
２）計算された２電子積分について、ｕからdへの変換を行う、すなわち、全てのｕの組合せについて（ＲＳ｜ｔｕ）の積和計算を行い（ＲＳ｜ｔｄ）を求める
３）上記２）で変換されたデータについて、ｔからｃへの変換を行う、すなわち、全てのｔの組合せについて（ＲＳ｜ｔｄ）の積和計算を行い（ＲＳ｜ｃｄ）を求める
４）上記３）で変換されたデータについて、Ｓからｂの構成要素であるＢへの変換を行う、すなわち、指定されたＳの組合せについて（ＲＳ｜ｃｄ）の積和計算を行い（ＲＢ｜ｃｄ）を求める
５）Ｒを変換せずＶｃｂｄ（ＲＳ）として前記複数のプロセッサの各々のローカルメモリに保存し、
６）分子軌道の係数の決定に必要な量であるｙａｃの繰り返し計算において、Ｒからａへの変換係数と分子軌道間の変換係数と前記Ｖｃｂｄ（ＲＳ）との積和を計算し、計算結果を前記複数のプロセッサの各々のローカルメモリに保存することを特徴とする並列計算方法。
【請求項６】
複数のプロセッサを有するパラレルコンピュータを用いた分子軌道計算方法であって、分子軌道基底での２次の密度行列Γを前記複数のプロセッサの各々に転送し、前記複数のプロセッサの各々において、分子軌道基底から原子軌道基底に逆変換することにより、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓとを割り振り、前記複数のプロセッサの各々において、指定されたインデックスＲとＳの組合せと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについて積和計算を行い、２電子積分の原子核座標による微分計算において、前記複数のプロセッサにおける仕事量を表わす粒度が均一になるように処理すべきデータを分割することを特徴とする並列計算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非経験的分子軌道法の内、多配置自己無撞着場（Multi Configuration Self Consistent Field:ＭＣＳＣＦ）法及び配置間相互作用（Configuration Interaction:ＣＩ）法による全エネルギーとエネルギー勾配の並列計算手法に関する。
【０００２】
【従来の技術】
非経験的分子軌道計算法において、電子相関を取り入れることのできる代表的な計算手法として、上記ＭＣＳＣＦ法とＣＩ法が確立されている。ＭＣＳＣＦ法では、全エネルギーＥと原子核の座標による微分即ちエネルギー勾配（原子核に働く力）とは、
【数１】
0003990130.tif 000002
【数２】
0003990130.tif 000003
のように与えられる。ここで、MOは分子軌道(Molecular Orbital)、qは分子を構成する原子の原子核の座標ｘ、ｙ、ｚのいずれかである。γ及びΓは後述の解法により求められる電子配置の係数Ｃの関数であり、ｈabと（ab｜cd）は分子軌道基底による１電子積分及び２電子積分で、原子軌道基底のｈrsと（rs｜tu）とから得られる。ｈrsと（rs｜tu）は、
【数３】
0003990130.tif 000004
【数４】
0003990130.tif 000005
のように定義される。ここで、hはプランク定数、Nuc．はNucleiの略で原子の数を表わす。Ｚｉは原子核の電荷、Ｒｉは原子核の位置を表わす。これら式（３）及び式（４）の積分は、分子軌道φaと原子軌道χrの
【数５】
0003990130.tif 000006
なる関係から、
【数６】
0003990130.tif 000007
【数７】
0003990130.tif 000008
のように原子軌道基底から分子軌道基底へ変換される。ここで、Ｎは原子軌道の数で、本発明では１０００以上を想定しているが、それ以下の場合についても本手法を適用することは問題なく可能である。ｃｒａは式（５）で示される、原子軌道を分子軌道の変換する変換行列で、分子軌道の係数と呼ばれる。ｃｓｂも同様の分子軌道の係数である。ＭＣＳＣＦ法では、電子配置の係数Ｃと分子軌道の係数ｃの両方を変分法により決めるが、ＣＩ法ではＣのみを求める所が異なっている。
【０００３】
電子配置の係数Ｃは、次の方程式から求められる。即ち、
【数８】
0003990130.tif 000009
【数９】
0003990130.tif 000010
ここで、CSFはconfiguration state function（電子配置関数）で、波動関数がこの反対称化された行列式CSFの線形結合で与えられる。δIJはクロネッカのデルタで、I=Jなら１で、それ以外は０である。
【０００４】
また、分子軌道の係数の決定には、
【数１０】
0003990130.tif 000011
なる量が必要になる。ここで、ｕｂｄは分子軌道の線形変換に関わる行列である。
【０００５】
ＭＣＳＣＦ法、ＣＩ法のいずれにおいても、分子軌道基底の２電子積分（ａｂ｜ｃｄ）の生成が計算コストの大半を占めている。ＭＣＳＣＦ法の中で現在主流となっているＣＡＳＳＣＦ（Complete Active Space SCF）では、電子励起を限られた分子軌道の範囲に限定することで、定式の簡素化を図っている。そのActive Space空間に属する分子軌道の数をｎ、原子軌道基底の数をＮとすると、一般にはｎ＜＜Ｎなる関係が成立する。従来の計算スキームでは、原子軌道基底の２電子積分を全て主記憶もしくはディスクなどの外部記憶媒体に保存し、式（７）の変換を行っている。その変換アルゴリズムを、図５及び図６に示す。分子軌道のインデックスa，b，c，dと原子軌道のインデックスｒ，ｓ，ｔ，ｕからなる単純な8重のＤＯループではｎ４Ｎ４回の掛け算が必要となるが、このアルゴリズムでは５重のＤＯループを４回繰り返すことで同等の結果が得られ、その演算数はｎＮ４＋ｎ２Ｎ３＋ｎ３Ｎ２＋ｎ４Ｎとなる。例えば、ｎ＝１０、Ｎ＝１０００とすると、約１０００倍の高速化が図れることになる。しかしながら、この方法では、原子軌道基底の２電子積分や変換途中の中間データを保存するためのコンピュータリソースが膨大になり、大型分子が計算できないという本質的な問題がある。
【０００６】
【発明が解決しようとする課題】
近年のコンピュータはパラレルプロセッサの搭載により高速性を実現しており、ＭＣＳＣＦ法及びＣＩ法においても、並列処理により計算対象分子の大型化と計算コストの削減を実現する必要がある。パラレルコンピュータの利点は、
▲１▼コモディティプロセッサを多数接続することにより、高速演算コンピュータを廉価に実現できる。
【０００７】
▲２▼多数のプロセッサのロカールメモリを活用できるので、コンピュータ全体として大きな主記憶領域を確保できる。
【０００８】
である。
【０００９】
原子軌道基底及び分子軌道基底での２電子積分は互いに独立であり、この特徴を活用して並列化しようとすると、次の問題が生じる。即ち、分子軌道基底での２電子積分をひとつ計算するのに、Ｎ４個の原子軌道基底の２電子積分全てが必要になるので、
１）原子軌道基底での２電子積分の一部をプロセッサに分担させる分散処理をすると、並列化により積分計算時間は短縮できるが、Ｎ４個の２電子積分全てを各々のプロセッサに集めなければならず、全プロセッサ間で相互通信が発生し通信ネックとなる。
【００１０】
２）通信ネックを避けようとすれば、Ｎ４個の原子軌道基底の積分を全て各々のプロセッサで計算しなければならず、並列化による計算時間の短縮にはつながらない。
【００１１】
という相反する問題が生じる。
【００１２】
２電子積分の原子核座標による微分についても、式（２）の計算に分子軌道基底の積分が必要であり、全く同様の議論が成立する。
【００１３】
本発明の目的は、上述した問題を解決することができる、複数のプロセッサを有するパラレルコンピュータを用いた並列計算方法を提供することにある。
【００１４】
【課題を解決するための手段】
本発明による並列計算方法は、以下の通りである。
【００１５】
（１）複数のプロセッサを有するパラレルコンピュータを用いた計算方法であって、２電子積分の原子軌道基底（ｒｓ｜ｔｕ）から分子軌道基底（ａｂ｜ｃｄ）への変換の際に、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓを指定し、前記複数のプロセッサの各々において、指定されたインデックスＲとＳと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについての処理を行うことを特徴とする並列計算方法。
【００１６】
（２）  複数のプロセッサを有するパラレルコンピュータを用いた計算方法であって、２電子積分の原子軌道基底（ｒｓ｜ｔｕ）から分子軌道基底（ａｂ｜ｃｄ）への変換の際に、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓを指定し、前記複数のプロセッサの各々において、指定されたインデックスｒとｓと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについての処理を行うことにより、前記複数のプロセッサにおける仕事量を表わす粒度が均一になるように処理すべきデータを分割することを特徴とする並列計算方法。
【００１７】
（３）  上記（１）又は（２）に記載の並列計算方法において、
前記２電子積分の計算途中では前記複数のプロセッサ間ではデータ転送を行わず、前記複数のプロセッサの前記処理の後に一度だけギャザリングして前記複数のプロセッサの処理されたデータの和を取ることを特徴とする並列計算方法。
【００１８】
（４）  上記（１）又は（２）に記載の並列計算方法において、
前記複数のプロセッサの各々は、
１）プロセッサ毎に指定されたＲ、Ｓとｔ、ｕの全ての組合せとについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算し、
２）計算された２電子積分について、ｕからdへの変換を行い、
３）上記２）で変換されたデータについて、ｔからｃへの変換を行い、
４）上記３）で変換されたデータについて、Ｓからｂの構成要素であるＢへの変換を行い、
５）上記４）で変換されたデータについて、Ｒからａの構成要素であるＡへの変換を行い、
６）上記５）で変換されたデータを各プロセッサのローカルメモリーに保存し、
７）最後にギャザリングして分子軌道基底での２電子積分（ａｂ｜ｃｄ）を求めることを特徴とする並列計算方法。
【００１９】
（５）  上記（１）又は（２）に記載の並列計算方法において、
前記複数のプロセッサの各々は、
１）プロセッサ毎に指定されたＲ、Ｓとｔ、ｕの全ての組合せとについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算し、
２）計算された２電子積分について、ｕからdへの変換を行い、
３）上記２）で変換されたデータについて、ｔからｃへの変換を行い、
４）上記３）で変換されたデータについて、Ｓからｂの構成要素であるＢへの変換を行い、
５）Ｒを変換せずＶｃｂｄ（ＲＳ）として前記複数のプロセッサの各々のローカルメモリに保存し、
６）分子軌道の係数の決定に必要な量であるｙａｃの繰り返し計算において、Ｒからａへの変換係数と分子軌道間の変換係数と前記Ｖｃｂｄ（ＲＳ）との積和を計算し、計算結果を前記複数のプロセッサの各々のローカルメモリに保存することを特徴とする並列計算方法。
【００２０】
（６）  複数のプロセッサを有するパラレルコンピュータを用いた計算方法であって、分子軌道基底での２次の密度行列Γを前記複数のプロセッサの各々に転送し、前記複数のプロセッサの各々において、分子軌道基底から原子軌道基底に逆変換することにより、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓを指定し、前記複数のプロセッサの各々において、指定されたインデックスＲとＳと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについての処理を行い、２電子積分の原子核座標による微分計算において、前記複数のプロセッサにおける仕事量を表わす粒度が均一になるように処理すべきデータを分割することを特徴とする並列計算方法。
【００２１】
【発明の実施の形態】
次に本発明の実施の形態について説明する。
【００２２】
本願発明者は、原子軌道基底での２電子積分及び原子核座標による微分いずれも相互に独立であるので、原子軌道基底から分子軌道基底への変換において、原子軌道のインデックスｒとｓで並列化し、（すなわち、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓを指定し、ｔとｕの全ての組み合わせを各プロセッサで処理することで、粒度が均一になるように処理データを分割することを考える。インデックスｒとｓで並列化するが、ｔ及びｕの全ての組み合わせについて各プロセッサで計算するので、２電子積分１個当たり平均１万回の浮動小数点演算が必要であることから、各プロセッサ当たり１００００Ｎ２の演算を行うことになり、充分大きな粒度を確保できる。以下で詳しく述べるが、並列性能の向上には、粒度の均一化と最大化及びプロセッサ間の転送回数の最小化が必要条件である。本計算手順では、２電子積分計算途中ではプロセッサ間でデータ転送を行わず、変換後にギャザリングを１度行うことを特徴としている。
【００２３】
電子配置の係数Ｃを求める解法においては、原子軌道のインデックスｒ、ｓで並列化を行い、各プロセッサでの計算処理を、
１）プロセッサ毎に指定されたR 、S に対してｔ、ｕの全てについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算する。
【００２４】
２）計算された２電子積分について、ｕからdへの変換を行う。
【００２５】
３）ｔからcへの変換を行う。
【００２６】
４）SからBへの変換を行う。
【００２７】
５）RからA への変換を行う。
【００２８】
の手順で行い、各プロセッサのローカルメモリーにこの変換データを保存し、最後にギャザリングして分子軌道基底での２電子積分（ａｂ｜ｃｄ）を求める。
【００２９】
また、分子軌道の係数ｃを求める繰り返し解法においては、原子軌道のインデックスｒ、ｓで並列化を行い、各プロセッサでの計算処理を、
１）プロセッサ毎に指定されたＲ、Ｓに対してｔ、ｕの全てについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算する。
【００３０】
２）計算された２電子積分について、ｕからdへの変換を行う。
【００３１】
３）ｔからcへの変換を行う。
【００３２】
４）ＳからＢへの変換を行う。
【００３３】
５）Ｒを変換せずＶｃｂｄ（RS）としてローカルメモリに保存する。
【００３４】
６）ｙａｃの繰り返し計算において、Ｒからａへの変換係数（ｃＲａ）と分子軌道間の変換係数（ｕｂｄ）との積和を同時に計算する（後述する式（１３）参照）。
【００３５】
の手順で行い、各プロセッサのローカルメモリにデータ量の少ないＶｃｂｄ（RS）を保存することで、繰り返し計算における主記憶上の作業領域の増大を防いでいる。
【００３６】
エネルギー勾配計算において、分子軌道基底での２次の密度行列Γを各プロセッサに転送し、分子軌道基底から原子軌道基底に逆変換することにより、原子軌道のインデックスｒ，ｓで並列化することができ、２電子積分の場合と同様の議論が成立する。この場合、原子軌道ｒについてのみ、原子核の座標での微分が必要となることに注意する。
【００３７】
次に本発明の実施例について説明する。
【００３８】
ＭＣＳＣＦ法における電子配置の係数Ｃと分子軌道の係数ｃ、ＣＩ法における電子配置の係数Ｃを求める解法においては、主記憶上の作業領域を削減するため、繰り返し解法が広く使われている。そのため、分子軌道基底の２電子積分などの中間データを保存する必要があるが、並列コンピュータでは上述した利点▲２▼（多数のプロセッサのロカールメモリを活用できるので、コンピュータ全体として大きな主記憶領域を確保できる。）により可能である。一方、エネルギー勾配計算では繰り返し計算の必要性がないので、本発明では、次の１）及び２）なる基本的な考え方に立脚して、並列化アルゴリズムを開発する。
【００３９】
１）電子配置の係数Ｃ及び分子軌道の係数ｃの決定においては、ｎ＜＜Ｎの関係からデータ量の少ない分子軌道基底での２電子積分などの中間データを、各プロセッサの主記憶上に保存し繰り返し使用する。
【００４０】
２）エネルギー勾配計算においては、分子軌道基底のγ及びΓを原子軌道基底に逆変換して、原子軌道基底での表式
【数１１】
0003990130.tif 000012
に基づいて並列計算する。
【００４１】
ここで、AOは原子軌道(Atomic Orbital)である。Wはエネルギー勾配法に現れる量で、軌道エネルギーと分子軌道の係数の積で与えられる。また、Ｓｒｓは重なり積分である。
【００４２】
まず最初に、電子配置の係数Ｃの決定に必要なActive Spaceに属する分子軌道基底での２電子積分の生成法について述べる。原子軌道のインデックスｒ，ｓで並列化を行い、ｔ，ｕの全てについて各々のプロセッサで原子軌道基底の２電子積分（ＲＳ｜ｔｕ）を計算する。その基本アルゴリズムを図１及び図２に示す。ここで、ｒ、ｓで指定される原子軌道のインデックスの内、R 、S は或るプロセッサに割り当てられた原子軌道である。今、
【数１２】
0003990130.tif 000013
と書き直せる。ここで、Ａ，Ｂは、式（５）の関係から分子軌道ａ、ｂに対する原子軌道ｒ、ｓの線形結合成分の内、各プロセッサに対して指定されたＲ，Ｓのみからなっているので、最後に（ＡＢ｜ｃｄ）をギャザリングして初めて正しい（ａｂ｜ｃｄ）になることに注意する。この関係から、各プロセッサでの計算手順は、
１）プロセッサ毎に指定されたR 、S に対してｔ、ｕの全てについて原子軌道基底での２電子積分（ＲＳ｜ｔｕ）を計算する。
【００４３】
２）計算された２電子積分について、ｕからdへの変換を行う。
【００４４】
３）ｔからcへの変換を行う。
【００４５】
４）SからBへの変換を行う。
【００４６】
５）RからA への変換を行う。
【００４７】
となる。ここで注意すべき点は、１）〜５）のステップの実行においてプロセッサ間の通信は全く発生しておらず、且つ計算すべき原子軌道基底での２電子積分は全プロセッサを合わせてＮ４個であることである。最後に、（ab|cd）を求めるため、各プロセッサ上の（AB|cd）をギャザリングすることになるが、その転送量は高々ｎ４である。ｎは１０のオーダーであり、且つマスタープロセッサへの一方向転送であるので、転送時間が問題になることはない。また、プロセッサ台数が少ない場合には、ＲとＳを適当にグループ化すれば、同様に並列化できることは明らかである。全体の演算数については、従来方式が前述のようにｎＮ４＋ｎ２Ｎ３＋ｎ３Ｎ２＋ｎ４Ｎであるが、本方式ではステップ１〜４の演算がＮ２個のプロセッサで発生するので、Ｎ２（ｎＮ２＋ｎ２Ｎ＋ｎ３＋ｎ４）＋ｎ４Ｎ２となり、ｎ４Ｎ（Ｎ−１）＋ｎ４Ｎ２だけ並列化により演算数が増えていることになる。
【００４８】
次に、分子軌道の係数ｃの決定について必要な式（１０）の並列化について述べる。式（１０）の一部を原子軌道基底で表記すると、
【数１３】
0003990130.tif 000014
のようになる。
【００４９】
更に、Ｙac（ＲＳ）を各プロセッサ(CPU: Central Processing Unit)で計算した部分とすると、式（１２）からの推察により、同様にギャザリングすることができるがわかる。その時の転送データ量は、Ｎ２であることに注意する。従って、ｒとｓで並列化し、各プロセッサで計算されたＹac（ＲＳ）をギャザリングすればｙａｃが求められる。そのデータの流れを、図３に示す。ここで、Ｖｃｂｄ（ＲＳ）として各プロセッサに保存するのは、以下の理由による。式（１０）のａ，ｂは原則全ての分子軌道になるので次元数はＮであるのに対して、ｘ，ｙはｎである。よって、その大きさは第1、２項ともｎ２Ｎ２となる。ｒの変換を行わず保存することで、演算数の増加をきたすが、作業領域をｎ２Ｎに抑えることができる。また、（ａｂ｜ｘｙ）をギャザリングすると、そのデータ量はｎ２Ｎ２であるが、ｘ，ｙについて各プロセッサで転送前に和を取ることで、Ｎ２になり転送データ量が削減されている。
【００５０】
最後に、エネルギー勾配計算に必要な、原子核座標による２電子積分の並列化について述べる。前述のように、本計算においては繰り返し計算の必要がないので、データ量がｎ４と少ない分子軌道基底でのΓを各プロセッサに転送し、分子軌道基底から原子軌道基底に逆変換することで並列化する。その逆変換アルゴリズムを、図４に示す。ここでも、ｒとｓで並列化し、ｔ，ｕの全てについて計算する構造は通常の２電子積分の場合と同様である。但し、ＤＯループの深さが７重になっている点が異なっている。各プロセッサで計算された式（１１）の第２項は、そのプロセッサ上で原子核に働く力を保存している配列に足し込まれた後ギャザリングされることになるが、その配列の大きさは３×原子数であり、転送ネックになることはない。また、Γの逆変換に対する演算数については、従来法と違いはない。
【００５１】
ここで述べた並列化アルゴリズムは、原子軌道のインデックスｒとｓで並列化するため、プロセッサ台数の増加に対して粒度を均一に保つことができ、高いスケーラビリティを維持することができる。また、適応可能なプロセッサ台数はＮ２であり、Ｎ＝１０００で百万台の並列コンピュータに対応できることになる。
【００５２】
下記の表１及び表２に、従来の計算方法と本方法の演算数と作業領域の計算式を示した。並列化により演算数は若干増えているが、各プロセッサにおける作業領域はＮ２分の１になっており、廉価なローカルメモリを有効利用できるアルゴリズムになっている。
【００５３】
【表１】
0003990130.tif 000015
【表２】
0003990130.tif 000016
【００５４】
【発明の効果】
以上説明したように本発明によれば、複数のプロセッサを有するパラレルコンピュータを用いた計算方法であって、２電子積分の原子軌道基底（ｒｓ｜ｔｕ）から分子軌道基底（ａｂ｜ｃｄ）への変換の際に、前記複数のプロセッサに対して、計算すべき原子軌道のインデックスｒとｓを指定し、前記複数のプロセッサの各々において、指定されたインデックスＲとＳと、計算すべき原子軌道のインデックスｔとｕの全ての組合せとについての処理を行う並列計算方法が得られ、これにより、粒度が均一になり、高性能下でコモディティプロセッサを多数接続することができ、高速演算コンピュータの費用低減が可能になり、更に、廉価なロカールメモリを活用できるので、コンピュータ全体として大きな主記憶領域を確保できる。
【図面の簡単な説明】
【図１】本発明による２電子積分変換におけるプロセッサ間での分散処理の前半部分を示した図である。
【図２】本発明による２電子積分変換におけるプロセッサ間での分散処理の後半部分を示した図である。
【図３】本発明による分子軌道係数決定繰り返し計算におけるプロセッサ間での分散処理を示した図である。
【図４】本発明による２次の密度行列Γの分子軌道基底から原子軌道基底への逆変換による並列化アルゴリズムを示した図である。
【図５】２電子積分の原子軌道基底から分子軌道基底への変換において現在使用されている４N5変換アルゴリズムのステップ１〜３を示した図である。
【図６】２電子積分の原子軌道基底から分子軌道基底への変換において現在使用されている４N5変換アルゴリズムのステップ４を示した図である。
【図１】
0003990130.tif 000017
【図２】
0003990130.tif 000018
【図３】
0003990130.tif 000019
【図４】
0003990130.tif 000020
【図５】
0003990130.tif 000021
【図６】
0003990130.tif 000022