JPH117438A - 積和演算処理方法、装置及び記録媒体 - Google Patents

積和演算処理方法、装置及び記録媒体

Info

Publication number
JPH117438A
JPH117438A JP16170097A JP16170097A JPH117438A JP H117438 A JPH117438 A JP H117438A JP 16170097 A JP16170097 A JP 16170097A JP 16170097 A JP16170097 A JP 16170097A JP H117438 A JPH117438 A JP H117438A
Authority
JP
Japan
Prior art keywords
product
sum
sum operation
procedure
operation procedure
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.)
Pending
Application number
JP16170097A
Other languages
English (en)
Inventor
Sou Yamada
想 山田
Shinjirou Inahata
深二郎 稲畑
Nobuaki Miyagawa
宣明 宮川
Kazuaki Murakami
和彰 村上
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP16170097A priority Critical patent/JPH117438A/ja
Publication of JPH117438A publication Critical patent/JPH117438A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 積和演算及び分子軌道計算を高速かつ効率よ
く行う。 【解決手段】 ホスト計算機からの基底情報等をプロセ
ッサユニット20がバスインタフェイス回路21で受信
し、2電子積分の計算順序を決定する。積和手順の生成
は全体制御回路23で行い、係数生成、補助積分[ss,s
s] (m) 、他の補助積分の計算は積和制御回路27、積
和演算回路26で行う。計算が終了した時には、全体制
御回路23で積和手順の生成が終了しているので、積和
制御回路27、積和演算回路26は補助積分の生成を開
始する。また、補助積分を生成している間、全体制御回
路23は最初に計算を行う2電子積分gRstuの決定と積
和手順を生成する。この時、プロセッサユニット内の接
続は切り替えられ、積和制御回路27は第1の命令メモ
リ24から積和手順を読み出し、全体制御回路23の出
力する積和手順は第2の命令メモリ28に格納される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、積和演算処理方
法、装置及び記録媒体にかかり、特に、積和演算を効率
的に行う積和演算処理方法及び装置、コンピュータを使
用して積和演算を効率的に行う積和演算処理プログラム
を記録した記録媒体に関する。
【0002】
【従来の技術】画像処理や物理現象のシミュレーション
では、連続的な積分計算あるいは微分計算を、離散的な
形式、例えば漸化式に置き換えて近似的に数値解を得る
場合が多い。この一例として、コンピュータ等のハード
ウエアで実際に行われる計算に、次の(1)式で表わさ
れる異なる次数の項を複数含む多項式がある。
【0003】 y=a0 n +a1 n-1 +a2 n-2 +・・・+an-1 x+an ・・・(1) 上記(1)式の計算を効率的に行う手法として、上記の
(1)式を再帰的な積と和の形式で表わし、単純な積和
処理の繰り返しへの置き換えが行われる。この上記
(1)式と等価な再帰的表現を(2)式に示す。
【0004】
【数1】
【0005】このように、再帰的な積和演算の単純な繰
り返しにより、(1)式の多項式の値を効率的に求める
ことができる。従って、単純な積和演算を高速に行うこ
とが可能なハードウエアを利用すれば、上記処理を効率
的に行うことができる。なお、上記(2)式において、
n の値を得るためには積和演算を再帰的にn回行えば
よい。以下の説明では、多項式の次数に対応する、再帰
的積和演算の回数を、再帰階数がnであると称すことに
する。また、(1)、(2)式の例では、再帰階数と積
和演算の回数が一致する。
【0006】画像処理においては、画像を空間周波数領
域に変換し情報圧縮に利用する、離散的コサイン変換が
その一例であり、物理現象のシミュレーションにおいて
は、ポアソン方程式を差分メッシュ上に離散化して数値
的に解く手法が一例として挙げられる。このような画像
処理や物理現象のシミュレーションでは、離散的な形式
で用いると通常、大量の積和演算処理をしなければなら
ない。例えば、化学分野におけるシミュレーションに
は、複雑な形式の再帰計算が必要な一例として、変分法
を用いた非経験的分子軌道計算が挙げられる。この他に
も、数値計算で汎用的に用いられるテイラー展開法やニ
ュートン法または行列同士の乗算等でも、大量の積和演
算処理が必要である。従って、画像処理や物理現象のシ
ミュレーション、そして数値計算を高速化するために
は、積和演算を効率的に処理する必要がある。
【0007】このような積和演算を効率的に処理するた
め、専用の並列計算機を用いる技術が提案されている
(特開平9−62656号公報参照)。この技術では、
図6に示すように、制御装置CE及び並列に接続された
N(Nは2以上の整数)個のプロセッサエレメントPE
1 〜PEN (以下、PEm:1≦m≦N:と略記する)
から構成されており、制御装置CEは制御部CEa及び
メモリCEbを備えており、PEmは分散メモリ10m
a,10mb、乗算器10mc、加算器10md、レジ
スタ10me及びループ回路10mfを備えている。
【0008】PEmでは、分散メモリ10ma、10m
bには、制御装置130から転送されたベクトルデータ
が各々格納されており、これら2つのベクトルデータの
各要素を、乗算器10mcによって逐次乗算する。乗算
結果は順次加算器10mdによるループ回路10mfに
よって累積加算され、2つのベクトルデータの内積が求
められる。内積結果は、レジスタ10meに格納され制
御装置CEへ返送される。これと共に、PEmは一方の
ベクトルデータを隣のPEm+1(またはPEm−1)
へ出力する。以上のように、各PEmは2つのベクトル
データの内積計算と計算結果の制御装置CEへの転送及
び隣のPEへの一方のベクトルデータの転送とが繰り返
され、最終的に行列の乗算結果が制御装置CEに揃う。
このように、通常、並列計算に用いるプロセッサは、積
和機能を実現するための乗算器及び加算器に、積和結果
を次の積和演算の入力とするためのループ回路を付加し
た構成で可能である。
【0009】しかしながら、複雑な積和演算制御が必要
な場合には対応できない。例えば、化学分野におけるシ
ミュレーションに用いられる非経験的分子軌道計算にお
ける積和演算は複雑な積和手順となる。このため、積和
手順を生成しメモリに格納し、読みだしながら積和演算
を実施しなければならない。
【0010】上記非経験的分子軌道計算の目的は、経験
的なパラメータを用いずに第1原理計算で分子中の電子
の挙動を記述することである。非経験的分子軌道計算法
は、分子シミュレーションの基盤として位置づけられ、
物質構造や化学反応の詳細な解析に用いられ、工業的に
重要な手法である。非経験的分子軌道計算法では、分子
を構成する原子の原子核と軌道電子との距離に経験的な
定数を乗じたものを指数とする指数関数の逆数を原子軌
道(以下、基底関数という)とし、この基底関数を1つ
の原子に対して複数用意する。これらの基底関数の線形
結合で、分子内の軌道電子の波動関数、すなわち分子軌
道を記述する。分子軌道における基底関数の線形結合係
数を決めることが、非経験的分子軌道計算法の主な処理
内容である。
【0011】詳細には、分子中の電子の空間的な(電子
のスピンを考慮に入れない)軌道φ i は、次の(3)式
に示すように基底関数χの線形結合で近似することがで
き、電子のスピンを考慮に入れたPauli の排他原理を満
たす(2n電子系の)分子状態(波動関数)Ψは、次の
(4)式に示すSlater行列式で表すことができる。
【0012】
【数2】
【0013】
【数3】
【0014】但し、α(x),β(x):x番目の電子
のスピンが上向き、下向きの状態
【0015】この(4)式と、2n電子系に対するハミ
ルトニアン(Hamiltonian) H(=H 1 +H2 ,H1 :1
電子部分,H2 :2電子部分)から、次の(5)式で表
される分子エネルギの期待値εを求めることができる。
【0016】 ε=∫ΨHΨdτ=∫Ψ(H1 +H2 )Ψdτ =2Σi i +Σi Σj (2Jij−Kij) ・・・(5) 但し、Σi 及びΣj はn個ある分子軌道に関する総和、
i はコア積分、Jij,Kijは各々クーロン積分、交換
積分を表している。
【0017】この(5)式は、基底関数のレベルでは、
次の(6)式で表せ、[μν,λσ]で表される積分を
2電子反発積分(以下、2電子積分)という。
【0018】
【数4】
【0019】上記(6)式の分子エネルギの期待値ε
は、未知の線形結合係数Cを含むので、このままでは数
値を得ることができない。この期待値εが最小となるよ
うに、線形結合係数Cを要素とする係数行列を定め、基
底状態(エネルギ最小の安定な状態)の波動関数Ψを求
めるものとして、次の(7)式に示すHartree-Fock-Roo
thaan の変分法(以下、HFR法)が知られている。
【0020】
【数5】
【0021】上記のFock行列要素、及び密度行列要
素は、1からNの基底関数μ、ν、λ、σに対して数値
を有し、各々N×N行列の形式で表される。この(7)
式を解くことにより係数行列Cを求めることができる。
この(7)式は、i=1〜n,μ=1〜Nに対して各々
存在するので、n×N個の連立方程式となる。
【0022】上記の式から得られる係数行列Cの計算に
は密度行列Pが用いられる。密度行列Pは、係数行列C
から計算するため、具体的には、予め初期値を係数行列
Cに与えて計算した密度行列Pを用いFock行列を求
めた後、新規の係数行列Cを求める。次に密度行列Pの
元となる係数行列Cと、計算結果として得られる係数行
列Cとの差が十分小さく(自己無撞着に)なるまで、上
記の処理を繰り返す。係数行列Cが求まれば線形結合係
数が求まり分子軌道を求めることができる。
【0023】ところが、密度行列PからFock行列を
求める計算には基底関数の数の4乗に比例した計算量と
記憶容量を必要とする。そのため、非経験的分子軌道計
算法は、現状では100原子程度の小規模な分子系に適
用されているに過ぎない。生命現象や化学現象の分子論
的解明をより現実的なものとするためには、数1000
原子規模の分子系への適用も視野に入れた、非経験的分
子軌道計算専用の計算システムの開発が必須である。
【0024】すなわち実質的に演算負荷が大きいのは2
電子積分を含むFock行列要素の計算である。これは
全μ、νに対する計算が必須であることと、μ、νの組
み合わせに対してλ、σに関する和を計算しなければな
らないためである。従って、自己無撞着の反復計算の1
回当たりには、N4 個の2電子積分の計算が必要であ
る。
【0025】上記非経験的分子軌道計算について高速計
算に適したアルゴリズムとして、小原等の文献A(S.Ob
ara-and A.Saika,"Effcient recursive computation of
molecular integrals over Cartesian Gaussian funct
ions",Journal of ChemicalPhysics,vo1.84,no.7,pp.39
63-3974,Apr1986)がある。このアルゴリズムでは、基
底関数χを、次の(8)式で表している。
【0026】 χ=χ(r,ζ,n,R) =(x−Rx nx(y−Ry ny(z−Rz nzexp{−(r−R)2 } ・・・(8) 但し、r,n,Rはベクトル、rは電子の座標で成分は
(x,y,z)、ζは軌道指数(波動関数の空間的な広
がり具合)、nは角運動量インデックスで成分は
(nx ,ny ,nz )、Rは原子軌道の中心の原子核の
座標で成分は(Rx ,Ry ,Rz )である。また、角運
動量インデックスnの総和(nx +ny +nz)は、角
運動量の大きさを表し、「0」でs軌道、「1」でp軌
道、「2」でd軌道、・・・といい、分子軌道を計算す
るときは、計算対象の分子を構成する各原子毎に(n,
ζ)の組み合わせを複数用意し、全ての集合を基底関数
セットとして用いる。(n,ζ,R)の組み合わせで1
つの基底関数を表すことができる。
【0027】上記のように、基底関数μ,ν,λ,σ
は、角運動量インデックス、軌道指数、及び中心原子核
座標で表されるが、以下の説明では表記を簡略化して、
基底関数μ,ν,λ,σに代えて、各々の角運動量イン
デックスa,b,c,dを用い、2電子積分を[ab,
cd]と表すことにする。
【0028】上記アルゴリズムでは、線形結合係数を決
めるための計算の大部分を占める2電子積分を、次の
(9)式に示す補助積分と係数との積からなる複数の項
の和という形式の、漸化表式で表している(文献A中の
式(39)参照)。
【0029】
【数6】
【0030】但し、i :x成分,y成分,z成分のい
ずれか なお、同様の漸化表式が[a(b+1i ),cd] ,[ab,(c+
1i )d] ,[ab, c(d+1i )]に対しても成り立ち、それら
は(9)式に類似したものであるが、その記述は省略す
る。以後(9)式及びその類似式を総称して(9)式と
いう場合がある。
【0031】上記(9)式で、[・・・](m) は補助積
分を表している。a,b,c,dは角運動量0,1,
2,3,・・・に対応してs,p,d,f,・・・と表
記する。また(m)は補助インデックスであり、m=0
の場合の補助積分が2電子積分に一致する。さらに、(a
+1i ) は、角運動量aのi成分(iはx,y,zのうち
の1つ)を1増加させること、逆に(a-1i ) は、角運動
量aのi成分を1減少させることを表している。その他
に、Pi ,Ai ,Wi ,ζ,p,ηは定数、Ni(a) 等
はaおよびiに依存した変数であるが、これらについて
は文献Aと同様のものを用いているため、詳細な説明は
省略する。
【0032】ここで、補助積分を構成する4つの基底関
数のうち、最も左側に表記される1つの基底関数の角運
動量に着目すると、(9)式を用いた漸化式展開によ
り、右辺の8つの項では左辺よりも少なくとも1だけ減
少している。また、補助積分を構成する4つの基底関数
の角運動量が全て0の場合、すなわち[ss,ss] (m) につ
いては、次の(10)式を用いて(文献A中の(44)
式参照)、数値を得ることができる。従って、任意の大
きさの角運動量を有する4つの基底関数から構成される
2電子積分は、(9)式を繰り返し適用して角運動量を
減少させて、最終的には角運動量が0の基底関数だけか
らなる補助積分を用いて表わすことができ、容易に2電
子積分の数値を得ることができる。
【0033】
【数7】 [0ab ,0cd(m) =(ζ+η)1/2 K(ζa,ζb,, B)K(ζc,ζd,, D)Fm (T) ・・・(10)
【0034】具体的には、(9)式に従って、2電子積
分を8つ以下の補助積分と係数との積の和の形式で表
し、これらの補助積分に対してさらに(9)式に従って
角運動量を減少させる。この手続きを繰り返して、全て
の角運動量が0である補助積分へ至るまでの手順を記録
する。次に、数値が既知である角運動量が0である補助
積分から開始して、記録した手順を逆にたどって補助積
分の数値を求め、最終的に2電子積分の数値を得る。
【0035】一例として、2電子積分[px x ,px
x ]を計算する手順は、(9)式等から次の(11)
式〜(17)式の7つの漸化式に展開できる。
【0036】
【数8】
【0037】2電子積分[px x ,px x ]は補助
積分の表式では[px x ,px x (0) であり、
(11)式を用いて6つの補助積分[px x ,p
x s](0),[px x ,px s](1) ,[spx ,p
x s](1) ,[px s,px s](1 ) ,[px x ,s
s](0) ,[px x ,ss](1) と、係数との積和の
形で表すことができる。また、補助積分[px x ,p
x s](0) , [px x ,p x s](1) は(12)式を
用いて、補助積分[spx ,px s](1) は(13)式
を用いて、補助積分[px s, px s](1) は(14)
式を用いて、補助積分[px x , ss](0) , [px
x , ss](1) は(15)式を用いて、それぞれ漸化
展開することができる。
【0038】補助積分[px x ,px s](0) を一例
としてさらに説明すると、(12)式を用いて4つの補
助積分[px x , ss](0) ,[px x , ss]
(1) ,[spx , ss](1) , [px s, ss]
(1) と、係数との積和の形で表すことができる。このよ
うに漸化展開式を繰り返し用いて、最終的に(16)式
あるいは(17)式を用いて[ss, ss](m) (但
し、m=0〜4)と係数との積和の形で[px x ,p
x x ]を表すことができる。
【0039】数値計算の手順は、漸化展開の方向とは逆
に行う。まず、補助積分[ss, ss](m) の数値をm
=0〜4に対して準備しておき、(16)式および(1
7)式を用いて補助積分[px s, ss](m) , [sp
x , ss](m) の数値をm=0〜3に対して求める。同
様の操作を繰り返して補助積分[px x ,px s]
(0) , [px x ,px s](1) , [spx , px s]
(1) , [spx , px s](1) , [px s, px s]
(1) , [px x , ss](0) , [px x , ss]
(1) の数値を求め、最終的に(11)式を用いて2電子
積分[px x ,pxx ]の数値を得ることができ
る。
【0040】上記(2)式における最終的な数値y=s
n を補助積分[px x ,px x(0) に対応させ、
(2)式におけるs1 を例えば補助積分[px s, s
s](0 ) に対応させて考えると、補助積分[px x
x x (0) や[px s, ss](0) の数値を求める
ための上記の操作は再帰計算となっており、また補助積
分[px x ,px x (0) の求値のための再帰計算
は、補助積分[px s,ss](0) の求値のための再帰
計算と比較して再帰の回数が大きくなる。
【0041】非経験的分子軌道計算法のアルゴリズム
は、(2)式に表現される再帰計算と比較するとさらに
複雑な形式となっており、単純に積和演算の回数で再帰
階数を表わすことができない。以下の説明では、非経験
的分子軌道計算法のアルゴリズムにおいて、2電子積分
または補助積分を構成する4つの基底関数に含まれる角
運動量のうち最大のものの数値を再帰階数と称すことに
する。例えば[ss, ss]の求値のための再帰階数は
0、[px s, ss], [px s, px s], [px
x ,px x ]の求値のための再帰階数はいずれも1で
あるとする。
【0042】非経験的分子軌道の計算における大量の演
算処理を高速に行うために、並列計算手法を採用した分
子軌道解析用計算システムがある(特開平9−5042
8号公報参照)。この技術では複数の計算機の各々を計
算機クラスタとして使用して分子軌道解析を実現するも
のであるが、各計算機クラスタにおける処理の詳細が示
されておらず、複雑な積和演算手順に従った演算処理を
することができない。また、計算速度を向上するために
は、多数の計算機を用いなければならず、コスト高にな
る。
【0043】非経験的分子軌道の計算では再帰計算が可
能な2電子積分の計算が占めるが、この膨大な計算量の
2電子積分を含む計算を専用に行うシステムが白川等に
よって提案されている(白川他、「超高速分子軌道計算
専用機MOEのアーキテクチャ」、電子情報通信学会技
術報告、CPSY96−46(1996−05))。こ
の積和演算システムは、図7に示すように、ホスト計算
機1、バス2、大容量記憶装置3、プロセッサユニット
4−0,1,2,・・・を備えており、ホスト計算機
1、大容量記憶装置3、プロセッサユニット4−0,
1,2,・・・は、バス2を通して相互間で通信可能と
なっている。
【0044】この積和演算システムの計算を図9及び図
10を参照して説明する。図9は積和演算システムの計
算の流れを示すフローチャートであり、図10は積和演
算システムの計算の流れを示すタイミングチャートであ
る。
【0045】まず、ホスト計算機1は、ユーザによる指
定に基づいて、基底情報を生成する(ステップ16
0)。基底情報は、分子を構成する各原子の原子核の位
置座標、各原子の種類、原子の各種類における軌道電子
の基底関数を記述する軌道指数、角運動量等のパラメー
タなどから構成される。ここでの説明では、基底関数の
数をNとする。この基底情報を、バス2を通してプロセ
ッサユニット4−0,1,2,・・・,4−Mに送信す
る(ステップ162)。ここでは、プロセッサユニット
の並列数をMとする。また、ホスト計算機1は、前記し
た基底関数の線形結合係数の試行値(初期値)を設定し
(ステップ164)、この試行値から計算した密度行列
の要素Pij(i=1〜N,j=1〜N)を、大容量記憶
装置3に送信する(ステップ166)。次にホスト計算
機1は、プロセッサユニット毎に基底関数インデックス
の割り当てを決め(ステップ168)、それを各プロセ
ッサユニットに送信する(ステップ170)。この基底
関数インデックスとは、2電子積分を構成する4つの基
底関数の最初の1つを指定するものである。
【0046】なお、以下の説明では、2電子積分[r
s,tu]を簡略的にgrstu(r,s,t,u=1〜
N)と表わすことにする。上記基底関数インデックスに
より、1つのr=Rに対応するN3 個の2電子積分g
Rstu(s,t,u=1〜N)の計算が1つのプロセッサ
ユニットに割り当てられる。
【0047】プロセッサユニットでは、割り当てられた
r=Rに対して、すべてのs,t,uに対する2電子積
分gRstu(s,t,u=1〜N)を計算し、Fock行
列要素の一部分F'Rs (s=1〜N)を次の(18)式に
従って計算する。
【0048】 F' rs=ΣPtu(grstu−grtsu/2) ・・・(18)
【0049】なお、(18)式では、Σは全てのt,u
に関する総和を意味し、Ptuは大容量記憶装置3に蓄積
されている密度行列要素である。図示は省略したが、各
プロセッサユニットは1つの2電子積分を計算する前
に、必要な密度行列要素を予め大容量記憶装置3より受
信しておく。
【0050】全ての2電子積分の計算が終了すると、す
なわち、割り当てられた基底関数インテ゛ックスに対応する2
電子積分の計算が終了すると、プロセッサユニットはF'
Rs(s=1〜N)をホスト計算機1に送信する。通常、
M<Nであり、この場合、ホスト計算機1は計算が終了
しているプロセッサユニットに対する新規の基底関数イ
ンデックスの割り当てを決定し、決定した新規の基底関
数インデックスを該当するプロセッサユニットに送信す
る。このような処理を繰り返して、複数のプロセッサユ
ニットを用いて行ったF'rsの計算がr=1〜N,s=1
〜Nに対して全て終了すると、つまりプロセッサユニッ
トからの受信により複数のプロセッサユニットを用いて
行ったF'rsの計算が全て終了すると(ステップ17
2)、ホスト計算機1は、F'rsの計算値にコア積分量を
加算してFock行列要素を求め(ステップ174)、
Fock行列要素から構成されるFock行列をもとに
基底関数の線形結合係数を計算する(ステップ17
6)。この線形結合係数の計算には、初期値として予め
定められた線形結合係数を用いて計算された密度行列要
素が用いられているため、これらが上述のように自己無
撞着になるまで計算を繰り返す(ステップ178)。自
己無撞着になると、その線形結合係数を計算結果として
決定する(ステップ180)。なお、F'rsは上記のよう
にFock行列要素の一部でしかないが、以下の説明で
は便宜上、これをFock行列要素と呼ぶことにする。
【0051】上記の反復計算をSCF(Self-Consisten
t Field )計算といい、図10にはそのSCF計算の1
回目から2回目の開始部分までを示した。なお、図10
では、プロセッサユニットにおける処理時間が同一であ
るように記しているので、ホスト計算機における基底イ
ンデックスの割り当てやバスを通しての基底インデック
スまたはFock行列要素の通信が1纏まりに見える
が、実際には、各プロセッサユニットに割り当てられる
計算の規模はまちまちであり、ホスト計算機における基
底インデックスの割り当てやバスを通しての基底インデ
ックスまたはFock行列要素の通信は、各プロセッサ
ユニットにおける計算が終了するとその都度行われる。
【0052】次に、図7のシステムにおけるプロセッサ
ユニットの構成およびプロセッサユニットにおける2電
子積分の計算について説明する。図8には、プロセッサ
ユニットの構成を示した。図8のプロセッサユニット
は、バスインタフェイス回路11、プログラムメモリ1
2、制御回路13、命令メモリ14、データメモリ1
5、積和演算回路16を備えており、バスインタフェイ
ス回路11はバス2に接続されてプロセッサユニット内
とホスト計算機1あるいは大容量記憶装置3との間の通
信を可能としている。
【0053】プログラムメモリ12には、分子軌道計算
の開始時に一度だけ、ホスト計算機1からバス2を通し
て送信されたプログラムがバスインタフェイス回路11
を介して書き込まれる。制御回路13は、プログラムメ
モリ12のプログラムに従って、主に積和演算の手順を
生成してそれを命令メモリ14に書き込む。また、制御
回路13は、2電子積分を計算する順序の決定、積和計
算に用いる係数の生成およびその係数のデータメモリ1
5への格納、積和演算回路の制御、データメモリ15に
対するアドレスの発行等も行う。命令メモリ14には、
制御回路13で生成された積和演算の手順が書き込ま
れ、データメモリ15には、プロセッサユニットが受信
するホスト計算機1が送信した基底情報、制御回路13
が生成した係数、補助積分の計算結果等が書き込まれ
る。また、データメモリ15には密度行列要素およびF
ock行列要素も書き込まれ、必要に応じてその数値を
バスインタフェイス回路11を介してホスト計算機1あ
るいは大容量記憶装置3との間で授受できる。積和演算
回路16は、制御回路13の制御を受けながら、命令メ
モリ14に格納された積和演算の手順に従って、データ
メモリ15からの数値のロード、積和演算、演算結果の
データメモリ15への格納を行う。
【0054】次に、プロセッサユニットにおける処理
(Fock行列要素F’Rsの計算)について、図11及
び図12を参照して説明する。図11はプロセッサユニ
ットにおける処理の流れを示したフローチャートであ
り、図12は図7のシステムにおけるプロセッサユニッ
ト内のバスインタフェイス回路11、制御回路13、及
び積和演算回路16における処理の流れを示したタイミ
ングチャートである。
【0055】まず、計算が開始されると、バスインタフ
ェイス回路11はホスト計算機1から基底情報を受信
し、データメモリ15に格納する。次に、バスインタフ
ェイス回路11が1つ目の基底関数インデックスRを受
信すると(ステップ100)、制御回路13は計算すべ
き2電子積分の計算順序を決定する(ステップ10
2)。図10では便宜上、gR111,gR112,・・・,g
RNNNの順序で計算する例を記したが、この順序を適当に
並び替えることで効率的な計算が可能となる(詳細は後
述)。この順序に従って、2電子積分の数値を得るため
の積和演算の手順を制御回路13で生成し、命令メモリ
14に格納する(ステップ104)。積和演算の手順と
しては、数値を求めるべき2電子積分の角運動量の大き
さの組み合わせが同じであれば、同じものを用いること
ができる。なお、基底関数χは上記(8)式と同様に、
次の(19)式で表わすことができる。
【0056】 χ=χ(L,ζ,X) ・・・(19)
【0057】なお、Xは基底関数φの中心原子核の位置
座標、ζは基底関数φの空間的な広がり具合を示す軌道
指数、Lは基底関数φの角運動量である。
【0058】上記(9)式に示した漸化式は、角運動量
Lの組み合わせが一致すれば、異なる位置座標Xや軌道
指数ζでは係数の数値が変わるのみで、全く同様の積和
演算手順で2電子積分の数値を得られることを示してい
る。従って、2電子積分の計算の順序を決めるに際し
て、計算すべき全ての2電子積分をLの組み合わせで分
類し、そのタイプ毎に計算を行っている。このようにす
ることにより、制御回路13で生成して命令メモリ14
に格納する積和演算手順を最大限に再利用し、積和演算
開始時に1度だけ、積和手順の生成及びその命令メモリ
14への格納を行う。
【0059】なお、積和演算手順を生成する際には、ま
ず計算する2電子積分に対して(9)式に示した漸化展
開式を繰り返し適用して4つの基底関数の角運動量が全
て0であるような補助積分で表すまでの展開の手順を、
制御回路内のワークエリアまたは命令メモリに記憶す
る。次に、その展開手順を並び替えて、逆に4つの基底
関数の角運動量が全て0であるような補助積分の数値か
ら計算を開始して最終的な2電子積分の数値を得るまで
の手順にする。積和演算手順の生成にはこのような処理
手続きが必要なため、その手順に従って積和演算回路を
用いて1つの2電子積分の数値を得るための計算時間と
同程度の処理時間を要する。
【0060】次に、分類された2電子積分の1つを計算
する方法を説明する。図12では、2電子積分の1つを
計算する部分を破線矢印で示した。まず、制御回路13
で積和手順のタイプに対応した積和計算手順を生成し、
それを命令メモリ14に格納する(ステップ104)。
次に上記の積和手順のタイプの中から計算する2電子積
分gRstuを決める(ステップ106)。
【0061】このステップ106は、いまRが固定され
ているので、s,t,uを決めることに対応する。次
に、バスインタフェイス回路11は大容量記憶装置3か
ら、密度行列の要素PtuおよびPsuをロードし、データ
メモリ15に格納する(ステップ108)。これらはg
Rstuの数値が得られた時に(18)式に従ってFock
行列要素F'Rsを計算するために必要な数値であるため、
2電子積分の計算開始時に大容量記憶装置3へ要求し、
2電子積分の計算が終了するまでにデータを受信するよ
うにしてもよい。続いて、データメモリ15に蓄積され
ている基底関数R,s,t,uの情報(ζ,X)に基づ
いて、積和演算に用いる係数および補助積分[ss, s
s](m) の数値を制御回路13で生成し、データメモリ
15に格納する(ステップ110)。ここでは、必要に
応じて積和演算回路を用いる。
【0062】次に、制御回路13は積和演算回路16に
対して積和演算の開始命令を出力する(ステップ11
2)。積和演算回路16は開始命令を受信すると、命令
メモリ14に書き込まれている積和演算手順に従って必
要なデータをデータメモリ15から読み出しながら積和
演算を行い、演算結果をデータメモリ15に格納する。
命令メモリ14に書き込まれている積和手順が終了する
と(ステップ114で肯定判断)、1つの2電子積分g
Rstuの計算が終了したことになる。このようにして1つ
の2電子積分gRstuの計算が終了すると、制御回路13
は積和演算回路16を利用しながら、F'RsおよびF'Rt
値を更新する(ステップ116)。すなわち、制御回路
13はF'Rs、F'Rt、Ptu、Psuをデータメモリ15から
読み取り次に示す(19A)式に従ってF'Rs、F'Rtを更
新し、結果をデータメモリ15に格納する。
【0063】 F'Rs=F'Rs+Ptu・gRstu F'Rt=F'Rt+Psu・gRstu/2 ・・・(19A)
【0064】次に、1つの積和演算手順のタイプのうち
でまだ計算されていない2電子積分があるならば(ステ
ップ118で否定判断)、命令メモリ14に格納された
積和演算手順を更新することなく、s,t,uを変更し
て次の2電子積分の計算を行う(ステップ106へ戻
る)。一方、1つの積和演算手順のタイプに含まれる2
電子積分の計算が終了したならば(ステップ118で肯
定判断)、全てのs,t,uに対する計算が終了したか
どうかを判断し(ステップ120)、終了していなけれ
ば別のタイプの積和演算手順の生成を行う(ステップ1
04へ戻る)。全てのs,t,uに対する計算が終了す
ると(ステップ120で肯定判断)、その時点でF'
Rs(s=1〜N)の計算が終了したことになる。このよ
うにして全てのs,t,uに対する計算が終了すると、
得られたF'Rs(s=1〜N)をバスインタフェイス回路
11がホスト計算機1に送信することで、基底インデッ
クスRについての処理が終了する。
【0065】上記説明したシステムによる2電子積分の
計算では、積和演算を高速に行って分子軌道計算全体を
短時間で行うためには、命令メモリ14の容量の制限に
よって、角運動量の大きい基底関数を用いた計算を行う
ことができない。
【0066】例えば、分子軌道計算等における基底関数
の角運動量の最大の大きさが1である場合には、上記の
命令メモリ14に書き込むべきデータの量が最大になる
2電子積分は[pp, pp]である。この場合、2電子
積分の計算のための再帰計算の階数は1である。そのと
き、補助積分[ss, ss](m) から開始して2電子積
分[pp, pp]の数値を得るまでに必要な積和演算の
回数は623回である。この積和演算に要求される、命
令メモリ14の容量は5Kbyte程度であり、周知の
SRAMを用いてプロセッサユニット全体を1チップの
集積回路で構成することが可能である。このように、1
チップの集積回路のみで構成することにより、情報授受
の速度等は高速化され、高速な積和演算処理が可能とな
る。
【0067】
【発明が解決しようとする課題】しかしながら、上記の
システムで、積和演算を高速かつ短時間で行うことが可
能な演算は、積和手順を格納するための命令メモリの容
量が考慮されておらず、その容量によって制限され、次
数や階数が大きい積和演算ができない。
【0068】例えば、分子軌道計算に必要な2電子積分
の計算では、角運動量の大きな基底関数を用いた計算を
行うことができない。すなわち、分子軌道計算等の複雑
な演算の実用性を考慮すると、基底関数の角運動量の最
大値としては、少なくとも2が必要である。その場合、
命令メモリ14に書き込むべきデータの量が最大になる
2電子積分は[dd, dd]となる。この2電子積分の
計算のための再帰計算の階数は2である。2電子積分
[dd, dd]の数値を得るために補助積分[ss, s
s](m) から開始すると、必要な積和演算の回数は33
936回であり、命令メモリ14に要求される容量は2
70Kbyte程度となる。
【0069】しかしながら、命令メモリ14を制御回路
13や積和演算回路16と共に1チップの集積回路とし
て構成するためには膨大な容量の集積回路を1チップで
設計しなければならず、実質的に不可能である。このた
め、容量を分散させてチップ外に命令メモリを独立させ
ることが考えられるが、独立した命令メモリとのアクセ
スが生じて1チップでは微小の命令メモリ14へのアク
セス時間が極端に増加し、分子軌道計算を高速に行うこ
とを妨げる要因となる。
【0070】なお、再帰的な式で表現された計算を高速
に行うために、1次再帰演算処理装置が提案されている
(特開平4−141769項公報参照)。しかしなが
ら、この1次再帰演算処理装置は1次再帰演算と呼ばれ
る特定の形式の演算に対してのみ適用可能であり、非経
験的分子軌道計算等のように複雑な再帰形式で表わされ
る計算に対して適用することはできない。
【0071】また、効率的に2電子積分を計算するため
に、分子積分の補助積分計算方式が提案されている(特
開昭63−262758号公報参照)。この技術では、
単純な補助積分[ss, ss](m) の計算のみを高速に
行う方式が提案されているが、角運動量の大きな基底関
数を含む場合、すなわち階数の大きい複雑な再帰計算を
行うことができない。
【0072】上記のように、複数のプロセッサを用いた
並列計算システムでは、各プロセッサが有する機能が単
純な積和演算処理にしか対応していないため、非経験的
分子軌道計算法に代表されるような複雑な制御が必要な
計算が行えなかった。
【0073】また、パソコンやワークステーション等の
計算機を複数用いる計算機クラスタを利用したシステム
では、システムがコスト高になるという問題があった。
【0074】さらに、並列に用いるプロセッサ内に演算
手順を生成及び格納する機能を有する従来の専用システ
ムは、計算機クラスタを用いる場合と比較して廉価なシ
ステムで同程度あるいはそれ以上の計算性能を得ること
ができるが、再帰次数が大きく積和演算手順数が大きい
積和演算処理に対しては、積和演算手順をチップ内の記
憶装置に保存できないため、積和演算手順をチップ外の
記憶装置に保存しなければならない。このため、積和演
算手順を読みだして積和演算を行う際には読み出し速度
に律速されてしまうために計算効率が低下してしまうと
いう問題があった。
【0075】本発明は、上記事実を考慮して、大規模な
積和演算を、高速に処理できる積和演算処理方法及び装
置、そしてコンピュータを使用して積和演算を効率的に
行う積和演算処理プログラムを記録した記録媒体を得る
ことが目的である。
【0076】
【課題を解決するための手段】上記目的を達成するため
に請求項1に記載の発明の積和演算処理方法は、積和演
算の手順を生成し、生成した積和演算手順に基づいて積
和演算する積和処理を複数回実行する積和演算方法にお
いて、生成した積和演算手順に基づく積和演算の実行
と、前記生成した積和演算手順による積和演算と異なる
積和演算を実行させるための積和演算手順の生成とを並
列して行うことを特徴とする。
【0077】例えば、画像処理や物理現象のシミュレー
ション等に用いられる積分計算や微分計算は積と和の演
算である積和演算を用いた近似的な数値解を求めること
が多い。この積和演算は、積和演算を行うための積和演
算手順を生成することと実行することとの各々に、負荷
が多いので、複数の積和演算を行うときに、積和演算手
順を生成し、生成された積和演算手順に従って積和演算
することを順次行うと、単純に演算時間が増大する。
【0078】そこで、請求項1では、積和演算の手順を
生成し、生成した積和演算手順に基づいて積和演算する
積和処理を複数回実行するとき、生成した積和演算手順
に基づく積和演算を実行すると共に、生成した積和演算
手順による積和演算と異なる積和演算を実行させるため
の積和演算手順を生成することを並列して行う。例え
ば、時系列的に異なる積和演算処理が続くときには、こ
れから実行するための積和演算の積和演算手順を生成
し、その生成した積和手順の積和演算実行と並列して、
次に実行させるための積和演算手順を生成する。これに
よって、連続した時系列的に隣り合う積和演算処理の一
部を同時に行うことができ、演算時間を短縮化すること
ができる。また、時系列的な連続でない積和演算処理が
複数あるときは、これから実行するための積和演算の積
和演算手順を生成し、その生成した積和手順の積和演算
実行と並列して、異なる積和演算を実行させるための積
和演算手順を生成する。これによって、異なる複数の積
和演算処理の一部を同時に行うことができ、最終的な演
算時間を短縮化することができる。さらに、多数並列さ
せるとき、これから実行するための積和演算の積和演算
手順を生成し、その生成した積和手順の積和演算実行と
並列して、次に実行させるための積和演算手順そしてそ
の次に実行させるための積和演算手順を生成する、また
は異なる積和演算を実行させるための積和演算手順を複
数生成する。これによって、連続した時系列的に隣り合
う1群の積和演算処理の一部を同時に行うことや異なる
複数の積和演算処理の一部を同時に行うことができ、多
数並列させたその並列数に応じて演算時間を短縮化する
ことができる。
【0079】このように、積和演算手順に基づく積和演
算の実行と、この積和演算と異なる積和演算を実行させ
るための積和演算手順の生成とを並列して行うことによ
って、複数回実行する積和処理の一部を同時に行うこと
ができ、演算時間を短縮化することができる。
【0080】上記従来の技術の欄で説明したように多項
式等の所定次数の項による演算は単純な積和演算の繰り
返しで効率的に求めることができるが、その演算の複雑
さ、すなわち積和演算の繰り返しに相当する次数が大き
いものはその積和手順を記憶するための手順格納手段を
大容量にしなければならず、演算装置が大型化して、そ
の手順格納手段とのやり取りするのに時間を要して、実
質的に結果を短時間で求めることができない。なお、こ
こでいう、次数とは、多項式等で表現される計算式の、
積和演算の繰り返しで単純化できる項(1または複数)
について、その項の位(レベル)に対応する。例えば、
n次元の項であれば、次元を低下させた(n−1)次元
以下の次元のみから表現できることを前提として、次数
はnとする。また、或る状態の項が、或る状態の項より
低いレベルの状態で表現できることを前提として、その
或る状態を表す数値を次数とする。
【0081】そこで、請求項2に記載の発明の積和演算
処理方法は、所定次数の複数の演算を再帰的積和演算と
して各々演算するために、前記再帰的積和演算の第1の
積和演算手順を生成し生成した積和演算手順を手順格納
手段に記憶して記憶した第1の積和演算手順に従って積
和演算する第1の積和処理と、前記第1の積和演算手順
と異なる再帰的積和演算の第2の積和演算手順を生成し
生成した積和演算手順を手順格納手段に記憶して記憶し
た第2の積和演算手順に従って積和演算する第2の積和
処理とを行うにあたり、前記第1の積和演算手順を生成
することに並列して前記第2の積和演算手順に従って積
和演算するまたは前記第1の積和演算手順に従って積和
演算することに並列して前記第2の積和演算手順を生成
する。
【0082】具体的には例えば、所定次数の複数の演算
の各々について再帰的に積和演算するため、最低次数か
ら所定次数までの第1の積和演算手順を生成する。この
生成した第1の積和演算手順を手順格納手段に記憶し、
記憶した積和演算手順に従って積和演算することにより
第1の積和処理を行う。また、第1の積和演算手順と異
なる最低次数から所定次数までの第2の積和演算手順を
生成し、生成した第2の積和演算手順を手順格納手段に
記憶し、記憶した積和演算手順に従って積和演算するこ
とにより第2の積和処理を行う。これら第1の積和処理
及び第2の積和処理を行うにあたって、第1の積和演算
手順を生成することに並列して第2の積和演算手順に従
って積和演算する。これによって、積和演算手順に従っ
た積和演算と、積和演算手順を生成することを並列して
行うことができる。また、第1の積和演算手順に従って
積和演算することに並列して第2の積和演算手順を生成
することによっても、積和演算手順に従った積和演算
と、積和演算手順を生成することを並列して行うことが
できる。
【0083】このように、再帰的な積和演算の処理であ
る第1の積和処理及び第2の積和処理を行うときに第1
の積和演算手順を生成することに並列して第2の積和演
算手順に従って積和演算するまたは第1の積和演算手順
に従って積和演算することに並列して第2の積和演算手
順を生成することができるので、再帰的な積和演算の積
和演算手順の全てを手順格納手段に格納する必要がない
ので、手順格納手段を大容量にすることなく、複雑な所
定次数の演算を再帰的な積和演算で高速に行うことがで
きる。
【0084】複雑な形式の再帰計算が必要な所定次数の
演算としては、化学分野の分子軌道の計算がある。この
分子軌道の計算に用いる2電子積分の演算は、分子軌道
を構成する基底関数の積を含む物理量を積分形式で表し
漸化式を用いて表すことができる。
【0085】そこで、請求項3に記載の発明の積和演算
処理方法は、分子軌道を構成する基底関数の積を含む物
理量を用いて積分形式による漸化式で表した分子軌道計
算に用いる複数の2電子反発積分を、所定次数の再帰的
積和演算として各々演算するために、前記再帰的積和演
算の第1の積和演算手順を生成し記憶して記憶した第1
の積和演算手順に従って積和演算する第1の積和演算処
理と、前記第1の積和演算手順と異なる再帰的積和演算
の第2の積和演算手順を生成し記憶して記憶した第2の
積和演算手順に従って積和演算する第2の積和演算処理
とを行うにあたって、前記第1の積和演算手順を生成す
ることに並列して前記第2の積和演算手順に従って積和
演算するまたは前記第1の積和演算手順に従って積和演
算することに並列して前記第2の積和演算手順を生成す
る。
【0086】具体的には例えば、分子軌道を構成する基
底関数の積を含む物理量を用いて積分形式による漸化式
で表した分子軌道計算に用いる2電子積分の演算を、所
定次数の再帰的演算として、この所定次数演算に対応す
る最低次数演算からの再帰的な積和演算の第1の積和演
算手順を生成し、かつ記憶する。記憶した第1の積和演
算手順に従って積和演算することにより第1の積和処理
を行う。また、第1の積和演算手順と異なる2電子積分
の第2の積和演算手順を生成し、生成した第2の積和演
算手順を記憶し、記憶した積和演算手順に従って積和演
算することにより第2の積和処理を行う。これら第1の
積和処理及び第2の積和処理を行うにあたって、第1の
積和演算手順を生成することに並列して第2の積和演算
手順に従って積和演算する。これによって、積和演算手
順に従った積和演算と、積和演算手順を生成することを
並列して行うことができる。また、第1の積和演算手順
に従って積和演算することに並列して第2の積和演算手
順を生成することによっても、積和演算手順に従った積
和演算と、積和演算手順を生成することを並列して行う
ことができる。
【0087】このように、分子軌道計算を、ある2電子
積分の再帰的な積和演算に関する第1の積和処理及び異
なる2電子積分に関する第2の積和処理で行うとき、第
1の積和演算手順を生成することに並列して第2の積和
演算手順に従って積和演算するまたは第1の積和演算手
順に従って積和演算することに並列して第2の積和演算
手順を生成するので、複雑な形式の再帰計算が必要な分
子軌道の計算であっても、その演算は次数の低い方から
順に演算する再帰的な積和演算で高速に行うことができ
る。
【0088】なお、請求項4にも記載したように、前記
第1の積和処理及び前記第2の積和演算処理の各々は、
最低次数から所定次数までの積和演算手順を生成し、生
成した積和演算手順を手順格納手段に記憶し、記憶した
積和演算手順に従って積和演算することができる。
【0089】すなわち、分子軌道計算では、異なる複数
の次数の演算、例えば2電子積分が必要であり、積和演
算手順の読み書きは煩雑になる。このため、積和演算手
順を生成し、生成した積和演算手順を手順格納手段に記
憶するようにすれば、手順格納手段を有効に利用でき、
積和演算手順の読み書きの処理が容易となる。従って、
複雑な形式の再帰計算が必要な分子軌道の計算であって
も、積和演算手順の全てを手順格納手段に格納する必要
がないので、手順格納手段を大容量にすることなく、高
速に演算することができる。
【0090】前記積和演算処理方法は、請求項5に記載
の大規模積和演算処理によって、実現可能である。すな
わち、請求項5に記載の発明の積和演算処理装置は、所
定次数の演算を再帰的積和演算として演算するための再
帰的積和演算の積和演算手順を生成する生成手段と、生
成された前記再帰的積和演算の積和演算手順を記憶する
ための記憶領域を複数備えた命令メモリと、前記命令メ
モリに記憶された積和演算の手順に従って積和演算する
積和演算手段と、前記積和演算結果を記憶するためのデ
ータメモリと、前記生成手段によって前記再帰的積和演
算の第1の積和演算手順を生成させて生成させた第1の
積和演算手順を前記命令メモリに記憶させた後に該第1
の積和演算手順による積和演算を前記積和演算手段に行
わせる第1の演算処理と、前記第1の積和演算手順と異
なる再帰的積和演算の第2の積和演算手順を生成させて
生成させた第2の積和演算手順を前記命令メモリの前記
第1の積和演算手順を記憶した領域と異なる領域に記憶
させた後に該第2の積和演算手順による積和演算を前記
積和演算手段に行わせる第2の演算処理とを並列して行
わせるために、前記第1の積和演算手順を生成させるこ
とに並列して前記第2の積和演算手順による積和演算を
行わせるまたは前記第1の積和演算手順による積和演算
を行わせることに並列して前記第2の積和演算手順を生
成させるように制御する制御手段と、を備えている。
【0091】具体的には例えば、積和演算処理装置は、
生成手段によって、所定次数の演算に対応する最低次数
演算からの再帰的積和演算の積和演算手順を生成する。
生成した積和演算手順は命令メモリに記憶される。命令
メモリは、生成された再帰的積和演算の演算手順を記憶
するために複数の記憶領域を備えている。制御手段は、
命令メモリに記憶させた積和演算手順による積和演算結
果をデータメモリに記憶させる。すなわち命令メモリに
記憶された積和演算手順に従って積和演算手段が積和演
算し、積和演算結果はデータメモリに記憶される。ここ
で、制御手段は、生成手段によって再帰的積和演算の第
1の積和演算手順を生成させて生成させた第1の積和演
算手順を命令メモリに記憶させた後に該第1の積和演算
手順による積和演算を積和演算手段に行わせる第1の演
算処理と、第1の積和演算手順と異なる再帰的積和演算
の第2の積和演算手順を生成させて生成させた第2の積
和演算手順を命令メモリの前記第1の積和演算手順を記
憶した領域と異なる領域に記憶させた後に該第2の積和
演算手順による積和演算を前記積和演算手段に行わせる
第2の演算処理とを並列して行わせるために、第1の積
和演算手順を生成させることに並列して第2の積和演算
手順による積和演算を行わせるまたは第1の積和演算手
順による積和演算を行わせることに並列して第2の積和
演算手順を生成させるように制御する。
【0092】このように、制御手段が、第1の積和演算
手順を命令メモリに記憶させ、この後にその積和演算を
積和演算手段に行わせ、異なる再帰的積和演算の第2の
積和演算手順を命令メモリの第1の積和演算手順を記憶
した領域と異なる領域に記憶させ、この後にその積和演
算を積和演算手段に行わせるときに、第1の積和演算手
順を生成させることに並列して第2の積和演算手順によ
る積和演算を行わせるまたは第1の積和演算手順による
積和演算を行わせることに並列して第2の積和演算手順
を生成させるので、命令メモリの内容が頻繁に更新され
る場合においても積和演算の処理効率を低下させること
なく、大規模な積和演算を高速に処理すること、すなわ
ち、複雑かつ大規模な積和演算を、廉価なシステムで、
演算手順の生成頻度にかかわらず高速に処理することが
でき、特に、一連の積和演算処理の度に演算手順が更新
される場合には、並列処理によってその並列させる数に
よって並列数に応じた速度、例えば倍速での処理が可能
となる。
【0093】前記の第1の演算処理と第2の演算処理と
を並列して行わせるためには、命令メモリに対する読み
書きを切り換えると効率的である。
【0094】そこで、請求項6に記載の発明は、請求項
4に記載の積和演算処理装置において、前記制御手段
は、前記生成された第1の積和演算手順を前記命令メモ
リの所定領域に記憶させることと、前記生成された第2
の積和演算手順を前記命令メモリの前記第1の積和演算
手順を記憶した所定領域と異なる領域に記憶させること
とを切り換える第1スイッチと、前記所定領域に記憶し
た第1の積和演算手順による積和演算を前記積和演算手
段に行わせることと、異なる領域に記憶された第2の積
和演算手順による積和演算を前記積和演算手段に行わせ
ることとを切り換える第2スイッチと、を備え、前記第
1スイッチを切り換えて前記第1の積和演算手順を生成
させるときには前記第2の積和演算手順による積和演算
を行わせるように第2スイッチを切り換えると共に、第
1スイッチを切り換えて前記第2の積和演算手順を生成
させるときには前記第1の積和演算手順による積和演算
を行わせるようにように第2スイッチを切り換える、こ
とを特徴とする。
【0095】具体的には例えば、前記制御手段が第1ス
イッチ及び第2スイッチを備える。この第1スイッチ
は、第1の積和演算手順を命令メモリの所定領域に記憶
させることと、第2の積和演算手順を命令メモリの第1
の積和演算手順を記憶した所定領域と異なる領域に記憶
させることとを切り換えるためのものである。第2スイ
ッチは、所定領域に記憶した第1の積和演算手順による
積和演算を積和演算手段に行わせることと、異なる領域
に記憶された第2の積和演算手順による積和演算を積和
演算手段に行わせることとを切り換えるためのものであ
る。制御手段は、第1スイッチを切り換えて第1の積和
演算手順を生成させるときには第2の積和演算手順によ
る積和演算を行わせるように第2スイッチを切り換え
る。また、制御手段は、第1スイッチを切り換えて第2
の積和演算手順を生成させるときには第1の積和演算手
順による積和演算を行わせるようにように第2スイッチ
を切り換える。
【0096】このように、第1スイッチと第2スイッチ
とを備えることで、第1の積和演算手順を生成させると
きに第2の積和演算手順による積和演算を行わせるよう
に切り換えること、または第2の積和演算手順を生成さ
せるときに第1の積和演算手順による積和演算を行わせ
るようにように切り換えることが容易となるので、第1
の演算処理と第2の演算処理とを並列して行わせること
が容易となり、演算が複雑、すなわち複数の積和演算の
繰り返しを要する場合であっても、再帰的な積和演算で
高速に行うことができる。
【0097】前記命令メモリは、1つのメモリを用いて
複数領域に分割、例えばセグメント分割等を行って用い
てもよく、バスに複数のメモリを接続して用いてもよ
い。そこで、請求項7に記載の発明は、請求項5に記載
の積和演算処理装置において、前記命令メモリは、複数
のメモリで構成されたことを特徴とする。1つのメモリ
を用いて複数領域に分割させるようにすれば、1つのメ
モリの中で複数の演算手順を格納させることができ、メ
モリ間の切り換えを行う必要がなく、処理を単純化する
ことができる。また、バスに複数のメモリを接続して用
いるようにすれば、安価なメモリを複数用いてコストを
抑えることができる。
【0098】メモリ単体のコストが廉価であるときは、
命令メモリを複数のメモリで構成することで効果があ
る。なお、複数メモリを接続する構成が複雑になる場合
には、1つのメモリを用いて複数領域に分割して用いる
ことが好ましい。
【0099】前記積和演算処理方法は、請求項8に記載
の積和演算処理プログラムを記録した記録媒体によっ
て、コンピュータを用いた実現が可能である。すなわ
ち、請求項8に記載の発明は、コンピュータによって再
帰的積和演算をするための積和演算処理プログラムを記
録した記録媒体であって、前記積和演算処理プログラム
は、所定次数の複数の演算を再帰的積和演算として各々
演算するために、前記再帰的積和演算の第1の積和演算
手順を生成し記憶して記憶した第1の積和演算手順に従
って積和演算する第1の積和処理と、前記第1の積和演
算手順と異なる再帰的積和演算の第2の積和演算手順を
生成し記憶して記憶した第2の積和演算手順に従って積
和演算する第2の積和処理とについて、前記第1の積和
演算手順を生成することに並列して前記第2の積和演算
手順に従って積和演算するまたは前記第1の積和演算手
順に従って積和演算することに並列して前記第2の積和
演算手順を生成する、ことを特徴とする。
【0100】前記のように、記憶媒体に積和演算処理プ
ログラムを記録することによって、ハード構成、すなわ
ちコンピュータの構成に拘束されずに、汎用的なコンピ
ュータへの適用が可能となる。
【0101】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態の一例を詳細に説明する。本実施の形態は、非
経験的分子軌道計算に本発明を適用したものである。
【0102】本出願人は、非経験的分子軌道計算におけ
る再帰的な積和演算を効率的に行う積和演算システムを
提案している(特願平9−48320号公報)。この積
和演算システムを比較例として説明する。この比較例の
積和演算システムは、従来の技術で述べたシステム(図
7のシステム)と略同様の構成で2電子積分の計算を可
能とするものである。なお、図7と同一部分は同一符号
を付して詳細な説明を省略する。
【0103】まず、再帰計算の階数が2の場合において
積和演算の回数が最大の場合、すなわち2電子積分[d
d ,dd]の計算の方法を説明する。2電子積分[dd
,dd]には、それを構成する基底関数の角運動量の成
分に応じて64 =1296種類の2電子積分が含まれて
いる。これは、大きさがdで表わされる角運動量には、
xx,dyy, ZZ,dyz, zx,dxyの6種類があり、
2電子積分の4つの基底関数の各々がこれら6種類の角
運動量をとり得るためである。一例として、2電子積分
[dxxxx,dxxxx]の計算について説明する。
【0104】上記(11)式〜(17)式に示すよう
に、再帰階数が1以下の2電子積分(補助積分の場合も
ある)は容易に漸化式展開が可能であり、命令メモリ1
4に記憶されるべき手順の容量が膨大になることはな
い。一方、再帰階数が2である2電子積分は、手順が膨
大となるので、実質的に計算することができない。そこ
で、本比較例では、再帰階数が1以下の2電子積分を予
め用意し、その用意されたデータを用いて、再帰階数が
2である2電子積分を計算する。まず、再帰階数が2で
ある2電子積分[dxxxx,dxxxx]を、上記(9)
式から再帰階数が1以下の補助積分を含まない、以下の
(21)式〜(76)式に漸化式展開する。なお、再帰
階数が1以下の2電子積分は予め用意されているものと
する。
【0105】
【数9】
【0106】
【数10】
【0107】
【数11】
【0108】
【数12】
【0109】
【数13】
【0110】上記の式において、補助積分に乗算される
べき係数の表記は省略したが、各補助積分の項で乗算が
必要であり、必要な積和演算の数は上記の式の右辺に表
れる補助積分の項の数362と同数である。この積和演
算手順を格納するために必要な命令メモリ14の容量は
約2.9Kbyteとなる。
【0111】上記(21)式乃至(76)式から明らか
なように、予め数値を準備した補助積分[px x ,p
x x (0) , [px x ,px x (1) , [p
x s, p x s](1) , [ss, ss](2) 等の再帰階数
が1以下の補助積分を利用して、2電子積分[d
xxxx,dxxxx]の数値が得られる。これらの計算を
行うためには、再帰階数が1以下の補助積分を構成する
4つの基底関数の角運動量が全て1以下の補助積分の値
が必要であるが、これらは上記の展開計算を行う以前に
予め準備すればよい。
【0112】上記比較例では、2電子積分[dxxxx
xxxx]の計算を説明したが、4つの基底関数のうち
1つでも2となっている2電子積分についても全く同様
に計算できる。このような原理に基づいて、再帰計算の
階数が2の2電子積分(角運動量が2の基底を含む2電
子積分)を計算し、Fock行列要素F’Rsを求める方
法を図13及び図14を参照して説明する。
【0113】まず概略を説明すると、制御回路13で
は、基底インデックスRを受信すると、原子核の座標な
らびに軌道指数の組み合わせに応じて2電子積分を分類
し、プログラムメモリ12に格納されたプログラムに従
って、積和計算に必要な係数を生成し、それをデータメ
モリ15に格納する。次に、制御回路13は、補助積分
[pp, pp](m) までの積和手順を生成して命令メモ
リ14に格納し、積和演算回路16へ積和演算の開始命
令を出力することで、補助積分[pp, pp](m ) まで
の補助積分を計算させる。次に、制御回路13は、上記
分類された2電子積分のタイプ中から1つの2電子積分
を定め、大容量記憶装置3からの密度行列の要素Ptu
suをデータメモリ15に格納させると共に、目的とす
る2電子積分を計算するための積和演算手順を生成した
後に、新たに生成した積和演算手順を命令メモリ14上
に上書き(更新)する。この後に、積和演算回路16に
対して積和演算の開始命令を出力し、命令メモリ14に
書き込まれている新たな積和演算手順に従って必要なデ
ータをデータメモリ15から読み出しながら積和演算を
行わせ、演算結果をデータメモリ15に格納させる。1
つの2電子積分gRstuの計算が終了すると、Fock行
列要素F’RsおよびF’Rtの値を更新し、原子核座標及
び軌道指数での分類による2電子積分のタイプに含まれ
る2電子積分の計算、及び全ての角運動量s,t,uに
対する計算が終了するまでF’Rs(s=1〜N)の計算
を行う。
【0114】詳細には、ホスト計算機はバス2を通して
基底情報を送信し、全てのプロセッサユニット4−0〜
4−Mではそれをバスインタフェース回路11で受信し
てデータメモリ15に格納する。続いてホスト計算機1
はバス2を通して基底インデックスRを各プロセッサユ
ニットへ順に送信する。プロセッサユニットは基底イン
デックスRを受信すると(図13のステップ122)、
制御回路13は原子核の座標ならびに軌道指数の組み合
わせに応じて2電子積分を分類する(ステップ12
4)。これは、基底関数s,t,uの原子核座標および
軌道指数が一致する2電子積分は、予め準備する係数お
よび1280個の補助積分を共通に用いることができ、
それらの2電子積分を連続して行うことで計算を効率化
できるためである。
【0115】次に、制御回路13は、プログラムメモリ
12に格納されたプログラムに従って、積和計算に必要
な係数を生成し、それをデータメモリ15に格納する
(ステップ126)。ここでは、係数と共に補助積分
[ss, ss](0) 〜[ss, ss](8) も計算してデ
ータメモリ15に格納する。次に、制御回路13は補助
積分[pp, pp](m) までの積和手順を生成する(ス
テップ128)。すなわち制御回路21で、補助積分
[ps, ss](m) , [sp, ss](m) , [ss,p
s](m) , [ss, sp](m) (m=0〜7)を計算す
るための積和演算手順を生成し命令メモリ14に格納す
る。同様に、4つの基底関数のうち2つの角運動量の大
きさがs、2つの角運動量の大きさがpであるような補
助積分(m=0〜6)を計算するための積和手順を生成
し、命令メモリ14に格納する。同様に、1つの角運動
量の大きさがsで3つがpであるような補助積分(m=
0〜5)、4つの角運動量の大きさがともにpであるよ
うな補助積分[pp, pp](m)(m=0〜4)を計算
するための積和手順を生成し、命令メモリ14に格納す
る。
【0116】すなわち、角運動量の成分が異なっていて
も4つの基底関数の原子核座標及び軌道指数が等しい2
電子積分の間では、予め準備しておく補助積分(補助積
分を構成する4つの基底関数の角運動量が全て1以下の
補助積分)が同一であるので、それらに対しては計算時
間を要する係数の計算及び補助積分の準備を1度だけ行
って、それを再利用しながら2電子積分を計算すると効
率的である。従って、或るタイプの複数の2電子積分の
計算の開始時に1度だけ、係数の生成、補助積分[s
s,ss](m) の計算、準備するべき補助積分の計算の
ための積和手順の生成、補助積分の計算及びそのデータ
メモリ15への格納を行う。
【0117】次に、制御回路13は積和演算回路16へ
積和演算の開始命令を出力することで、補助積分[p
p, pp](m) までの補助積分を計算する(ステップ1
30)。図14には、2電子積分の1つの計算する部分
を破線の矢印で示した。すなわち、積和演算回路16で
は、上記生成された手順に従って上記補助積分を計算
し、データメモリ15に格納する。なお、これまで計算
した補助積分のうち、補助インデックスが5以上のもの
は以下の処理には用いないので、その部分のデータメモ
リは開放してもよい。次に、原子核座標と軌道指数とで
分類された2電子積分のタイプ中から、1つの2電子積
分を定める。すなわち計算する2電子積分g Rstuのs,
t,uの基底関数を決定する(ステップ132)。つま
り、1つのプロセッサユニット内では基底インデックス
Rは固定されているので、2電子積分を決定すること
は、s,t,uの基底関数を決定することに相当する。
【0118】次に、バスインタフェイス回路は、大容量
記憶装置3から、密度行列の要素P tuおよびPsuをロー
ドし、データメモリ15に格納する(ステップ13
4)。これらは2電子積分gRstuの数値が得られた時に
(18)式に従ってFock行列要素F’Rsを計算する
ために、または2電子積分gRstuの数値が得られた時に
(19A)式に従ってFock行列要素F’Rsを計算す
るために必要な数値であるため、2電子積分の計算開始
時に大容量記憶装置3へデータの送信を要求し、2電子
積分の計算が終了するまでにデータを受信するようにし
てもよい。
【0119】次に、制御回路13は目的とする2電子積
分を計算するための積和演算手順を生成する(ステップ
136)。ここで、補助積分[pp, pp](m) (m=
0〜4)までの補助積分の計算に用いた積和演算手順は
もはや不要であるので、新たに生成した積和演算手順を
命令メモリ14上に上書き(更新)する。また、この積
和演算手順は上記したように、全てを補助積分[ss,
ss](m) で表わすまでの漸化式に対応させる必要はな
く、補助積分に含まれる4つの基底関数の角運動量が1
以下になるまででよい。これは、この2電子積分の計算
に必要となる4つの基底関数の角運動量が1以下の補助
積分の数値は全て、既にデータメモリ15に格納されて
おり、積和演算の実行に際してその数値を参照するのみ
でよいためである。
【0120】以上の処理が終了すると、制御回路13は
積和演算回路16に対して積和演算の開始命令を出力す
る(ステップ138)。積和演算回路16は開始命令を
受信すると、命令メモリ14に書き込まれている新たな
積和演算手順に従って必要なデータをデータメモリ15
から読み出しながら積和演算が終了するまで行い(ステ
ップ140で肯定)、またその演算結果をデータメモリ
15に格納する。すなわち、制御回路13が命令メモリ
14に書き込まれている積和演算手順を読みだしてデー
タメモリ15のアドレスへと変換し、それをデータメモ
リ15へ送信すると、積和演算の実行に必要なデータが
データメモリ15から積和演算回路16に対して送ら
れ、積和演算回路16で積和演算が実行され、またその
結果がデータメモリ15に格納される。
【0121】このようにして命令メモリ14に書き込ま
れている積和手順が終了すると(ステップ140で肯
定)、1つの2電子積分gRstuの計算が終了したことに
なる。1つの2電子積分gRstuの計算が終了すると、制
御回路13は積和演算回路16を利用しながら、Foc
k行列要素F’RsおよびF’Rtの値を更新する(ステッ
プ142)。すなわち、Fock行列要素F’Rsおよび
F’Rtの値、密度行列の要素PtuおよびPsuをデータメ
モリ15から読取り、(19A)式に従ってFock行
列要素F’Rs,F’Rtを更新し、結果をデータメモリ1
5に格納する。
【0122】上記の処理を同一の補助積分を使用する2
電子積分に関して繰り返し行う(ステップ144)。す
なわち、原子核座標および軌道指数での分類による全て
のタイプの2電子積分の計算が終了すると共に(ステッ
プ144で肯定)、全ての角運動量s,t,uに対する
計算が終了する(ステップ146で肯定)まで上記処理
を繰り返す。s,t,uの基底関数全てに対する計算が
終了すると、ステップ146で肯定されて、その時点で
F’Rs(s=1〜N)の計算が終了したことになる。
【0123】このように、本比較例では、再帰階数が小
さい2電子積分のデータを予め用意した後に、そのデー
タを用いると共に再帰階数が小さい2電子積分の積和手
順を省いた再帰階数が大きい2電子積分の積和手順を生
成して、再帰階数が大きい2電子積分の積和演算を行っ
ているので、再帰計算の階数が大きい2電子積分を含む
分子軌道計算を高速化することが可能となる。
【0124】ところが、図14に示したタイミングチャ
ートから理解されるように、制御回路13において積和
演算手順を生成している間の時間は積和演算回路16は
使用されていない。このため、積和演算回路16の利用
効率が低くなる。これによって、システムの計算効率は
低下し、計算の高速化を妨げることになる。
【0125】そこで、本実施の形態のシステムでは、シ
ステムの計算効率を向上させ、計算の高速化を促進させ
るため、積和演算手順を生成と積和演算処理を並列に実
行させている。
【0126】以下、本実施の形態の積和演算システムを
具体的に説明する。なお、比較例の説明と同様に本実施
の形態においても、非経験的分子軌道計算法において角
運動量が2であるような基底関数を含む2電子積分の計
算を行う場合を例に挙げて、積和演算の処理を説明す
る。
【0127】本実施の形態の積和演算システムは、図2
に示すように、ホスト計算機1、バス2、大容量記憶装
置3、積和演算装置(プロセッサユニット、詳細後述)
20−0,1,2,・・・を備えており、ホスト計算機
1、大容量記憶装置3、プロセッサユニット20−0,
1,2,・・・は、バス2を通して相互間で通信可能と
なっている。
【0128】図1は、本実施の形態の積和演算システム
の一部を構成する積和演算装置の回路構成を示すブロッ
ク図である。この積和演算装置は、バスインタフェイス
回路21、プログラムメモリ22、全体制御回路23、
第1の命令メモリ24、データメモリ25、積和演算回
路26、積和制御回路27、第2の命令メモリ28を備
えており、バスインタフェイス回路21はバス2に接続
されてプロセッサユニット内とホスト計算機1及び大容
量記憶装置3との間の通信を可能としている。なお、全
体制御回路23と積和制御回路27とから制御回路30
を構成している。これらで構成される積和演算装置が、
従来のシステム及び比較例のシステムにおけるプロセッ
サユニットに対応し、図2に示した積和演算システムの
構成要素として用いられる。以下、この積和演算装置を
プロセッサユニットと呼ぶ。
【0129】バスインタフェイス回路21はバス2に接
続され、プロセッサユニット内とホスト計算機1あるい
は大容量記憶装置3との間の通信を可能としている。プ
ログラムメモリ22には、分子軌道計算の開始時に一度
だけ、ホスト計算機1からバス2を通して送信されたプ
ログラムがバスインタフェイス回路21を介して書き込
まれる。全体制御回路23は、プログラムメモリ22に
書き込まれたプログラムに従って、主に積和演算の手順
を生成してそれを第1の命令メモリ24または第2の命
令メモリ28に書き込む操作を行う。その他に全体制御
回路23は、2電子積分を計算する順序の決定、積和制
御回路27の制御等を行う。第1の命令メモリ24及び
第2の命令メモリ28には、上記全体制御回路23で生
成された積和演算の手順が格納される。
【0130】積和制御回路27は、全体制御回路23の
制御を受けながら、命令メモリ24あるいは28に格納
された積和演算順序を読み出してそれをデータメモリ2
5のアドレスに変換してデータメモリ25に送信すると
共に、積和演算回路26を制御して、命令メモリに格納
された積和演算順序どおりに積和演算回路26で積和演
算が行われるように制御する。データメモリ25には、
バスインタフェイス回路21を介して受信するホスト計
算機1が送信した基底情報、積和制御回路27が生成し
た係数、補助積分の計算結果等が書き込まれる。また、
ここには密度行列要素およびF’rsも書き込まれ。必要
に応じてその数値をバスインタフェイス回路21を介し
てホスト計算機1または大容量記憶装置3との間でやり
取りできる。積和演算回路26は、積和制御回路27の
制御を受けながら、命令メモリ24または28に格納さ
れた積和演算の手順に従って、データメモリ25からの
数値のロード、積和演算の実行、演算結果のデータメモ
リ25への格納を行う。
【0131】なお、全体制御回路23と第1の命令メモ
リ24及び第2の命令メモリ28との間の接続、及び積
和制御回路27と第1の命令メモリ24および第2の命
令メモリ28との間の接続は、全体制御回路23の制御
によって切り替えられるようになっている(詳細は後
述、図3参照)。すなわち、第2の命令メモリ28に格
納されている積和手順に従って積和演算回路26で積和
演算を行う場合には、図1の実線で示しているように、
積和制御回路27が第2の命令メモリ28に接続されて
第2の命令メモリ28に格納されている積和手順を読み
出せるようになると共に、全体制御回路23が第1の命
令メモリ24に接続されてこの全体制御回路23が生成
する新たな積和手順を第1の命令メモリ24に格納でき
るように接続される。逆に、第1のメモリ24に格納さ
れている積和手順に従って積和演算回路26で積和演算
を行う場合には、図1に点線で示したように、積和制御
回路27が第1の命令メモリ24に接続されて第1の命
令メモリ24に格納されている積和手順を読み出せるよ
うになると共に、全体制御回路23が第2の命令メモリ
28に接続されてこの全体制御回路23が生成する新た
な積和手順を第2の命令メモリ28に格納できるように
接続される。
【0132】図3に示すように、全体制御回路23と第
1の命令メモリ24及び第2の命令メモリ28との間の
接続、及び積和制御回路27と第1の命令メモリ24お
よび第2の命令メモリ28との間の接続は、全体制御回
路23の制御によって切り替え可能なスイッチ32、3
4によって行うことができる。スイッチ32は、全体制
御回路23からの制御信号により全体制御回路23と第
1の命令メモリ24及び第2の命令メモリ28の何れか
と接続を切り換えるスイッチである。また、スイッチ3
4は、全体制御回路23からの制御信号により積和制御
回路27と第1の命令メモリ24及び第2の命令メモリ
28の何れかと接続を切り換えるスイッチである。これ
らスイッチ32、34は、全体制御回路23の制御によ
って切り換えが連動するものである。すなわち、スイッ
チ32、34は、全体制御回路23の制御によって連動
し、積和制御回路27が第2の命令メモリ28に接続さ
れかつ全体制御回路23が第1の命令メモリ24に接続
される状態(図1の実線による接続状態)と、積和制御
回路27が第1の命令メモリ24に接続されかつ全体制
御回路23が第2の命令メモリ28に接続される状態
(図1の点線による接続状態)に切り替わるものであ
る。
【0133】次に、上記の積和演算装置を用いた2電子
積分の計算について説明する。図4は、2電子積分を計
算する際にバスインタフェイス回路21、全体制御回路
23、積和制御回路27、積和演算回路26で行われる
処理の順序を示したタイミングチャートである。
【0134】まず、ホスト計算機1はバス2を通して基
底情報を送信し、全プロセッサユニット20−1〜Mは
それをバスインタフェイス回路21で受信してデータメ
モリ25に格納する。続いてホスト計算機1はバス2を
通して基底インデックスRを各プロセッサユニットに対
して順に送信する。プロセッサユニットが基底インデッ
クスRを受信すると、まず全体制御回路23は、角運動
量が2であるような基底関数を含む2電子積分を4つの
基底の原子各座標および軌道指数で分類し、分類された
タイプ毎に計算を行うように2電子積分の計算順序を決
定する。これは、角運動量の成分が異なっていても4つ
の基底関数の原子核座標および軌道指数が等しい2電子
積分の間では、予め準備しておく補助積分(補助積分を
構成する4つの基底関数の角運動量が全て1以下の補助
積分)が同一であるので、それらに対しては計算時間の
かかる係数の計算および補助積分の準備を1度だけ行っ
て、それを再利用しながら2電子積分の計算を行うと効
率的だからである。従って、あるタイプの複数の2電子
積分の計算の開始時に1度だけ、係数の生成、補助積分
[ss,ss](m) の計算、準備するべき補助積分の計
算のための積和手順の生成、補助積分の計算およびその
データメモリ25への格納を行う。
【0135】ここで積和手順の生成は全体制御回路23
で、係数生成、補助積分[ss,ss](m) の計算、及
びその他の補助積分の計算は積和制御回路27および積
和演算回路26を用いて行う。比較例のプロセッサユニ
ットを用いた処理では、図14に示したように[ss,
ss](m) の計算を行っている際には制御回路が積和演
算装置の制御を行っているため、補助積分計算のための
積和手順の生成は[ss,ss](m) の計算の終了後で
なくてはならなかった。それに対し本実施の形態では、
係数生成及び[ss,ss](m) の計算に際しては積和
制御回路27が積和演算回路26の制御を行うようにし
ており、並列して全体制御回路23で補助積分計算のた
めの積和手順を生成するようになっている。この時、図
1に実線の矢印で示したように、全体制御回路23が生
成した積和手順は第1の命令メモリ24に格納される。
【0136】積和制御回路27および積和演算回路26
で[ss,ss](m) の計算が終了した時には、全体制
御回路23における積和手順の生成が終了しているの
で、積和制御回路27および積和演算回路26ではすぐ
に補助積分の生成を開始できる。また、積和制御回路2
7および積和演算回路26で補助積分の生成を行ってい
る間に、全体制御回路23では最初に計算を行う2電子
積分gRstu の決定とそのための積和手順の生成を行
う。この時、プロセッサユニット内の接続は図1の点線
の矢印で示しているように切り替えられ、積和制御回路
27は第1の命令メモリ24から積和手順を読み出し、
全体制御回路23の出力する積和手順は第2の命令メモ
リ28に格納されるようになっている。
【0137】準備すべき補助積分の計算が終了したとき
には全体制御回路23における最初の2電子積分のため
の積和手順生成は終了しているので、積和制御回路27
及び積和演算回路26ではすぐに最初の2電子積分計算
を開始する。最初の2電子積分の計算を積和制御回路2
7および積和演算回路26で行っている間に、バスイン
タフェイス回路21は大容量記憶装置3から密度行列の
要素PtuおよびPsuをロードしてデータメモリ25に格
納し、全体制御回路23では次の2電子積分の決定およ
びそのための積和手順の生成を行う。この時、プロセッ
サユニット内の接続は図1に実線の矢印で示したように
切り替えられ、積和制御回路27は第2の命令メモリ2
8から積和手順を読み出し、全体制御回路23の出力す
る積和手順は第1の命令メモリ24に格納される。2電
子積分gRstu の計算が終了すると、積和制御回路27
はF’Rs、F’Rt、Ptu、Psuをデータメモリ25より
ロードし、(19A)式に従ってF’Rs、F’Rtを更新
し、結果をデータメモリ25に格納する。
【0138】ここまでの処理が終了したときには全体制
御回路23における次の2電子積分のための積和手順生
成は終了しているので、プロセッサユニット内の接続を
図1の点線の矢印のように切り替えることによりすぐに
次の2電子積分の計算を行う。
【0139】1つの2電子積分の計算に対応する部分
を、図4では破線の矢印で示している。比較例のプロセ
ッサユニットを用いた処理では、図8に示したように2
電子積分を行っている際の積和演算回路の制御を制御回
路で行っているため、2電子積分計算およびF’の計算
が終了してからでなければ次の2電子積分の決定および
積和手順の生成が開始できい。これに対し本実施の形態
のシステムでは、2電子積分およびF’の計算時には積
和演算回路26の制御は積和制御回路27が行っている
ため、並列して全体制御回路23で次の2電子積分の決
定および積和手順の生成を行うことができる。そのた
め、積和演算回路26は、1つのタイプの2電子積分の
計算を行っている間は全く待ち時間が生じることなく処
理を行うことになり、積和演算回路の利用効率が高くな
る。以上のことにより、非経験的分子軌道計算の計算効
率は向上し、高速な計算が可能となった。
【0140】次に、4つの基底の原子核座標および軌道
指数で分類された1つのタイプの処理を行う際に、全体
制御回路および積和制御回路で行われる処理の流れを図
5のフローチャートを用いて説明する。
【0141】まず、全体制御回路23における処理の流
れを説明する。全体制御回路23は処理の開始と共に、
1つのタイプ(分類)内の複数の2電子積分の計算を行
う順序を決定する(ステップ200)。次に、積和制御
回路に対して、係数生成処理の開始を指令する信号を送
信する(ステップ202)。次に、補助積分を計算する
ために必要な積和演算手順を生成し、命令メモリ(1)
または(2)すなわち第1の命令メモリ24または第2
の命令メモリ28に格納する(ステップ204)。
【0142】次に、積和制御回路27での補助積分[s
s,ss](m) の生成処理が終了しているかどうかを判
断し(ステップ206)、終了していなれければ(ステ
ップ206で否定され再度判断し)終了するまで待つ。
積和制御回路27での補助積分[ss,ss](m) の生
成処理が終了すると(ステップ206で肯定)、命令メ
モリ(1)、(2)すなわち第1の命令メモリ24及び
第2の命令メモリ28と全体制御回路23および積和制
御回路27との接続を切り替え、現時点で補助積分計算
用の積和演算手順が格納されている方の命令メモリが積
和制御回路27に接続され、他方の命令メモリが全体制
御回路23に接続されるようにする(ステップ20
8)。なお、図3に示す連動するスイッチ32、34を
備えた場合、連動するスイッチ32、34に全体制御回
路23が制御信号を出力し、切り換える。
【0143】次に、最初に計算する2電子積分を計算順
序に従って決定し(ステップ210)、その2電子積分
のための積和演算手順を生成して、全体制御回路に接続
されている方の命令メモリに格納する(ステップ21
2)。次に、積和制御回路27での補助積分生成処理が
終了しているかどうかを判断し(ステップ214)、終
了していなければ(ステップ214で否定され再度判断
し)終了するまで待つ。積和制御回路27での補助積分
生成処理が終了すると(ステップ214で肯定)、第1
の命令メモリ24及び第2の命令メモリ28と全体制御
回路および積和制御回路との接続を切り替える(ステッ
プ216)。これにより、積和演算回路27で次に計算
される2電子積分のための積和演算手順が格納された命
令メモリが積和制御回路27に接続され、他方、すなわ
ち積和制御回路27における読み出しが終了した補助積
分生成用の積和手順が格納されている命令メモリが全体
制御回路23に接続される。なお、この時点では、補助
積分生成用の積和演算手順の使用は終了しているので、
この命令メモリに対しては次の2電子積分のための積和
演算手順を上書きしても構わない。
【0144】次に、現時点で積和演算回路で計算が行わ
れている2電子積分の次に計算を行う2電子積分のため
の積和演算手順を生成して、全体制御回路に接続されて
いる方の命令メモリに格納する(ステップ218)。次
に、積和制御回路における2電子積分生成処理が終了し
ているかどうかを判断し(ステップ220)、終了して
いなければ(ステップ220で否定され再度判断し)終
了するまで待つ。積和制御回路27における2電子積分
生成処理が終了すると(ステップ220で肯定)、第1
の命令メモリ24及び第2の命令メモリ28との全体制
御回路23および積和制御回路27との接続を切り替え
る(ステップ222)。これによって、積和演算回路2
7で次に計算される2電子積分のための積和演算手順が
格納された命令メモリが積和制御回路27に接続され、
他方の命令メモリが全体制御回路23に接続される。こ
の命令メモリにはすでに積和制御回路による読み出しが
終了した積和演算手順が格納されているので、この命令
メモリに対しては新たな積和演算手順を上書きしても構
わない。
【0145】次に、分類内の2電子積分がまだ残ってい
るかどうかを判断し(ステップ224)、計算すべき2
電子積分が残っていれば(ステップ224で否定されス
テップ218へ戻り)その次の2電子積分計算のための
積和演算手順生成を行う。分類内の2電子積分が残って
いなければ(ステップ224で肯定)、その分類のため
の処理を終了する。
【0146】次に、積和制御回路27における処理の流
れを説明する。まず、積和制御回路27は、処理の開始
と共に、全体制御回路23からの係数生成処理開始指令
を受信しているかどうかを判断し(ステップ300)、
未受信(ステップ300で否定)のときは受信するまで
待つ。係数生成処理開始司令を受信すると(ステップ3
00で肯定)、係数生成処理(ステップ302)および
補助積分[ss,ss](m) の生成処理(ステップ30
4)を行う。次に、全体制御回路23における補助積分
生成のための積和手順生成処理が終了しているかどうか
を判断し(ステップ306)、終了していなければ(ス
テップ306で否定され再度判断し)終了するまで待
つ。全体制御回路23における積和手順生成処理が終了
すると(ステップ306で肯定)、補助積分生成処理を
行う(ステップ308)。この時、全体制御回路23に
よって、積和制御回路27は補助積分生成のための積和
演算手順が格納されている命令メモリに接続されてお
り、その積和演算手順を読み出しながら積和演算回路2
7の制御を行う。
【0147】次に、全体制御回路23における最初の2
電子積分計算のための積和演算手順の生成が終了してい
るかどうかを判断し(ステップ310)、終了していな
ければ(ステップ310で否定され再度判断し)終了す
るまで待つ。全体制御回路23における積和演算手順の
生成が終了すると(ステップ310で肯定)、2電子積
分の生成処理を行う(ステップ312)。この時、全体
制御回路23によって、積和制御回路27は最初の2電
子積分のための積和演算手順が格納されている命令メモ
リに接続されており、その積和演算手順を読み出しなが
ら積和演算回路27の制御を行う。2電子積分生成が終
了すると、Fock行列要素の更新を行う(ステップ3
14)。
【0148】次に、全体制御回路23における次の2電
子積分計算のための積和演算手順の生成が終了している
かどうかを判断し(ステップ316)、終了していなけ
れば(ステップ316で否定され再度判断し)終了する
まで待つ。全体制御回路23における積和演算手順の生
成が終了すると(ステップ316で肯定)、分類内の2
電子積分の処理が残っているかどうかを判断し(ステッ
プ318)、残っていれば(ステップ316で否定され
ステップ312へ戻り)次の2電子積分生成処理を行
う。この時には、全体制御回路23によって、積和制御
回路27は次の2電子積分のための積和演算手順が格納
されている命令メモリに接続されており、その積和演算
手順を読み出しながら積和演算回路の制御を行う。分類
内の2電子積分の処理が残っていない場合には(ステッ
プ318で肯定)、その分類のための処理を終了する。
【0149】図5に示したようなアルゴリズムを用いる
ことにより、図1に示した構成のハードウエアを効率的
に用いて複雑な積和演算処理を高速に行うことが可能と
なった。
【0150】図8のプロセッサユニットの構成では、積
和演算手順を生成して演算手順を命令メモリ14へ格納
する機能、および命令メモリ14から演算手順をロード
し積和演算回路16がそれに従って積和演算を行うよう
に制御する機能を、制御回路13が有していた。そのた
め制御回路13は、積和演算手順を生成している間には
積和演算回路16の制御が行えず、また積和演算回路1
6の制御を行っている間には積和演算手順の生成を行う
ことができなかった。そのため、プロセッサユニット4
の動作としては、積和演算手順の生成と積和演算処理と
を直列的に実行せざるを得なかった。それに対し本実施
の形態の積和演算装置(プロセッサユニット)では、積
和演算手順を生成しそれを命令メモリに格納する機能を
全体制御回路23に持たせ、命令メモリから積和演算手
順をロードしそれに従って積和演算回路が積和演算を行
うように制御する機能を分離して積和制御回路27に持
たせることにした。
【0151】また、全体制御回路23が積和演算手順を
書き込む命令メモリと、積和制御回路が積和演算手順を
読み出す命令メモリとを分離して設けたことにより、積
和制御回路27の制御によって積和演算回路26で積和
演算を行っている間でも、全体制御回路23で生成した
積和演算手順を命令メモリに格納することが可能となっ
た。
【0152】上記の制御機能の分離と命令メモリの分離
により、プロセッサユニット4の動作として積和演算手
順の生成と積和演算処理とが並列に行われることとな
り、その結果としてシステム全体の計算効率が向上し
た。
【0153】より具体的には、従来、積和演算手順の生
成には1つの2電子積分計算と同程度の処理時間がかか
るので、本実施の形態のようにそれらを並列に行うこと
により約半分の時間で積和演算手順の生成および2電子
積分の計算を行うことができる。また、制御機能の分離
および命令メモリの分離に起因するハードウエア規模の
増加分がプロセッサユニット内に占める割合は小さく、
プロセッサユニット全体を1チップのLSIで構成する
ことができ、コストを増加させることや、性能を低下さ
せることはない。
【0154】なお、本実施の形態では2電子積分を構成
する基底関数の角運動量が2の場合を例に説明を行った
が、角運動量が3以上の基底関数を含む場合でも同様の
装置および方法を用いることにより非経験的分子軌道計
算の高速化が可能となる。また、非経験的分子軌道計算
のみならず、複雑な積和演算処理を必要とする他の応用
においても本発明の積和演算装置および積和演算方法を
用いて計算を高速化することが可能である。
【0155】
【発明の効果】以上説明したように請求項1の発明によ
れば、積和演算手順に基づく積和演算の実行と、該積和
演算と異なる積和演算を実行させるための積和演算手順
の生成とを並列して行わせることができるので、複数回
実行する積和処理の一部を同時に行うことができ、演算
時間を短縮化することができる、という効果がある。
【0156】また、請求項2の発明によれば、第1の積
和演算手順による第1の積和処理と、第1の積和演算手
順と異なる第2の積和演算手順による第2の積和処理と
について、第1の積和演算手順を生成することに並列し
て前記第2の積和演算手順に従って積和演算するので、
積和演算手順に従った積和演算と、積和演算手順を生成
することを並列して行うことができ、大規模な積和演算
を高速に処理することができる、という効果がある。
【0157】さらに、請求項3の発明によれば、分子軌
道を構成する基底関数の積を含む物理量を用いて積分形
式による漸化式で表した分子軌道計算に用いる複数の2
電子反発積分を演算するために第1の積和演算手順によ
る第1の積和演算処理と、第1の積和演算手順と異なる
第2の積和演算手順による第2の積和演算処理とについ
て、第1の積和演算手順を生成することに並列して前記
第2の積和演算手順に従って積和演算するので、複雑な
形式の再帰計算が必要な分子軌道の計算であっても、積
和演算手順に従った積和演算と、積和演算手順を生成す
ることを並列して行うことができ、複雑かつ大規模な積
和演算を必要とする分子軌道の計算を高速に処理するこ
とができる、という効果がある。
【0158】さらにまた、請求項5の発明によれば、命
令メモリの内容が頻繁に更新される場合においても積和
演算の処理効率を低下させることなく、大規模な積和演
算を高速に処理すること、すなわち、複雑かつ大規模な
積和演算を、廉価なシステムで、演算手順の生成頻度に
かかわらず高速に処理することができ、特に、一連の積
和演算処理の度に演算手順が更新される場合には、並列
処理によってその並列させる数によって並列数に応じた
速度、例えば倍速処理が可能となる、という効果があ
る。
【図面の簡単な説明】
【図1】本発明の実施の形態にかかる積和演算装置の概
略構成を示すブロック図である。
【図2】本発明の実施の形態にかかる積和演算システム
の構成を示すブロック図である。
【図3】スイッチを構成に含む積和演算装置の概略構成
を示すブロック図である。
【図4】積和演算装置で角運動量が2の基底関数を含む
2電子積分を計算する場合の処理の手順を示すタイミン
グチャートである。
【図5】本実施の形態の積和演算装置にかかり、4つの
基底の原子核座標および軌道指数で分類された1つのタ
イプの処理を行うときの全体制御回路および積和制御回
路で行われる処理の流れを示すフローチャートである。
【図6】従来の積和演算処理システムの一例を示すブロ
ック図である。
【図7】従来の積和演算処理システムの他例を示すブロ
ック図である。
【図8】従来のプロセッサユニットの構成を示すブロッ
ク図である。
【図9】分子軌道の計算の流れを示すフローチャートで
ある。
【図10】従来例の非経験的分子軌道計算の手順を示す
タイミングチャートである。
【図11】従来の計算方法を示すフローチャートであ
る。
【図12】従来のプロセッサユニットの処理の手順を示
すタイミングチャートである。
【図13】比較例の2電子積分によるFock行列要素
の計算の流れを示すフローチャートである。
【図14】比較例のプロセッサユニットによる角運動量
が2の基底関数を含む2電子積分を計算する場合の処理
の手順を示すタイミングチャートである。
【符号の説明】
1 ホスト計算機 2 バス 3 大容量記憶装置 20 プロセッサユニット 22 プログラムメモリ 23 全体制御回路 24 第1の命令メモリ 25 データメモリ 26 積和演算回路 27 積和制御回路 28 第2の命令メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宮川 宣明 神奈川県海老名市本郷2274番地 富士ゼロ ツクス株式会社海老名事業所内 (72)発明者 村上 和彰 福岡県春日市春日公園4丁目1番2号307

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 積和演算の手順を生成し、生成した積和
    演算手順に基づいて積和演算する積和処理を複数回実行
    する積和演算方法において、 生成した積和演算手順に基づく積和演算の実行と、前記
    生成した積和演算手順による積和演算と異なる積和演算
    を実行させるための積和演算手順の生成とを並列して行
    うことを特徴とする積和演算処理方法。
  2. 【請求項2】 所定次数の複数の演算を再帰的積和演算
    として各々演算するために、前記再帰的積和演算の第1
    の積和演算手順を生成し生成した積和演算手順を手順格
    納手段に記憶して記憶した第1の積和演算手順に従って
    積和演算する第1の積和処理と、前記第1の積和演算手
    順と異なる再帰的積和演算の第2の積和演算手順を生成
    し生成した積和演算手順を手順格納手段に記憶して記憶
    した第2の積和演算手順に従って積和演算する第2の積
    和処理とを行うにあたって、前記第1の積和演算手順を
    生成することに並列して前記第2の積和演算手順に従っ
    て積和演算するまたは前記第1の積和演算手順に従って
    積和演算することに並列して前記第2の積和演算手順を
    生成する積和演算処理方法。
  3. 【請求項3】 分子軌道を構成する基底関数の積を含む
    物理量を用いて積分形式による漸化式で表した分子軌道
    計算に用いる複数の2電子反発積分を、所定次数の再帰
    的積和演算として各々演算するために、前記再帰的積和
    演算の第1の積和演算手順を生成し記憶して記憶した第
    1の積和演算手順に従って積和演算する第1の積和演算
    処理と、前記第1の積和演算手順と異なる再帰的積和演
    算の第2の積和演算手順を生成し記憶して記憶した第2
    の積和演算手順に従って積和演算する第2の積和演算処
    理とを行うにあたって、前記第1の積和演算手順を生成
    することを並列して前記第2の積和演算手順に従って積
    和演算するまたは前記第1の積和演算手順に従って積和
    演算することに並列して前記第2の積和演算手順を生成
    する積和演算処理方法。
  4. 【請求項4】 前記第1の積和処理及び前記第2の積和
    演算処理の各々は、最低次数から所定次数までの積和演
    算手順を生成し、生成した積和演算手順を手順格納手段
    に記憶し、記憶した積和演算手順に従って積和演算する
    ことを特徴とする請求項3に記載の積和演算処理方法。
  5. 【請求項5】 所定次数の演算を再帰的積和演算として
    演算するための再帰的積和演算の積和演算手順を生成す
    る生成手段と、 生成された前記再帰的積和演算の積和演算手順を記憶す
    るための記憶領域を複数備えた命令メモリと、 前記命令メモリに記憶された積和演算の手順に従って積
    和演算する積和演算手段と、 前記積和演算結果を記憶するためのデータメモリと、 前記生成手段によって前記再帰的積和演算の第1の積和
    演算手順を生成させて生成させた第1の積和演算手順を
    前記命令メモリに記憶させた後に該第1の積和演算手順
    による積和演算を前記積和演算手段に行わせる第1の演
    算処理と、前記第1の積和演算手順と異なる再帰的積和
    演算の第2の積和演算手順を生成させて生成させた第2
    の積和演算手順を前記命令メモリの前記第1の積和演算
    手順を記憶した領域と異なる領域に記憶させた後に該第
    2の積和演算手順による積和演算を前記積和演算手段に
    行わせる第2の演算処理とを並列して行わせるために、
    前記第1の積和演算手順を生成させることに並列して前
    記第2の積和演算手順による積和演算を行わせるまたは
    前記第1の積和演算手順による積和演算を行わせること
    に並列して前記第2の積和演算手順を生成させるように
    制御する制御手段と、 を備えた積和演算処理装置。
  6. 【請求項6】 前記制御手段は、前記生成された第1の
    積和演算手順を前記命令メモリの所定領域に記憶させる
    ことと、前記生成された第2の積和演算手順を前記命令
    メモリの前記第1の積和演算手順を記憶した所定領域と
    異なる領域に記憶させることとを切り換える第1スイッ
    チと、前記所定領域に記憶した第1の積和演算手順によ
    る積和演算を前記積和演算手段に行わせることと、異な
    る領域に記憶された第2の積和演算手順による積和演算
    を前記積和演算手段に行わせることとを切り換える第2
    スイッチとを備え、 前記第1スイッチを切り換えて前記第1の積和演算手順
    を生成させるときには前記第2の積和演算手順による積
    和演算を行わせるように第2スイッチを切り換えると共
    に、第1スイッチを切り換えて前記第2の積和演算手順
    を生成させるときには前記第1の積和演算手順による積
    和演算を行わせるようにように第2スイッチを切り換え
    ることを特徴とする請求項5に記載の積和演算処理装
    置。
  7. 【請求項7】 前記命令メモリは、複数のメモリで構成
    されたことを特徴とする請求項5に記載の積和演算処理
    装置。
  8. 【請求項8】 コンピュータによって再帰的積和演算を
    するための積和演算処理プログラムを記録した記録媒体
    であって、 前記積和演算処理プログラムは、 所定次数の複数の演算を再帰的積和演算として各々演算
    するために、前記再帰的積和演算の第1の積和演算手順
    を生成し記憶して記憶した第1の積和演算手順に従って
    積和演算する第1の積和処理と、前記第1の積和演算手
    順と異なる再帰的積和演算の第2の積和演算手順を生成
    し記憶して記憶した第2の積和演算手順に従って積和演
    算する第2の積和処理とについて、前記第1の積和演算
    手順を生成することに並列して前記第2の積和演算手順
    に従って積和演算するまたは前記第1の積和演算手順に
    従って積和演算することに並列して前記第2の積和演算
    手順を生成することを特徴とする積和演算処理プログラ
    ムを記録した記録媒体。
JP16170097A 1997-06-18 1997-06-18 積和演算処理方法、装置及び記録媒体 Pending JPH117438A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16170097A JPH117438A (ja) 1997-06-18 1997-06-18 積和演算処理方法、装置及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16170097A JPH117438A (ja) 1997-06-18 1997-06-18 積和演算処理方法、装置及び記録媒体

Publications (1)

Publication Number Publication Date
JPH117438A true JPH117438A (ja) 1999-01-12

Family

ID=15740214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16170097A Pending JPH117438A (ja) 1997-06-18 1997-06-18 積和演算処理方法、装置及び記録媒体

Country Status (1)

Country Link
JP (1) JPH117438A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020530916A (ja) * 2017-08-31 2020-10-29 カンブリコン テクノロジーズ コーポレーション リミテッドCambricon Technologies Corporation Limited チップ装置および関連製品

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020530916A (ja) * 2017-08-31 2020-10-29 カンブリコン テクノロジーズ コーポレーション リミテッドCambricon Technologies Corporation Limited チップ装置および関連製品

Similar Documents

Publication Publication Date Title
CN113592093B (zh) 量子态制备电路生成方法、装置、量子操作芯片及设备
CN111338695B (zh) 基于流水线技术的数据处理方法及相关产品
CN112114776A (zh) 一种量子乘法运算方法、装置、电子装置及存储介质
JPH07219919A (ja) 数値演算処理装置
JP7007520B2 (ja) 情報処理装置、演算装置、及び情報処理方法
CN114492814A (zh) 基于量子计算模拟目标体系能量的方法、装置及介质
JP6925546B1 (ja) 演算システム、情報処理装置、および最適解探索処理方法
US11409836B2 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
JP3033511B2 (ja) 大規模積和演算処理方法及び装置
CN114492815B (zh) 一种基于量子化学计算目标体系能量的方法、装置及介质
US6799151B1 (en) Method and apparatus for parallel processing
US20200089475A1 (en) Optimization problem arithmetic method and optimization problem arithmetic apparatus
JP4612546B2 (ja) 並列計算方法及び装置
JPH117438A (ja) 積和演算処理方法、装置及び記録媒体
US11886780B2 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
JP2020027547A (ja) テンソルデータ計算装置、テンソルデータ計算方法及びプログラム
JP7341804B2 (ja) 情報処理装置および情報処理方法
JP7357795B2 (ja) 情報処理方法および情報処理システム
JP7398401B2 (ja) 最適化方法、情報処理装置及びそれを用いたシステム
JP7513198B2 (ja) 関数変換装置、関数変換方法、およびプログラム
EP4145355A1 (en) Calculation device
JP7444804B2 (ja) 制御方法およびサンプリング装置
JPH1055343A (ja) 演算装置及び演算システム
JP2024049148A (ja) 情報処理方法、及び情報処理装置
CN116263883A (zh) 基于多项式预处理器的量子线性求解方法、装置及设备