Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5202405B2 - High-speed computing device and computing method for dipole interaction - Google Patents
[go: Go Back, main page]

JP5202405B2 - High-speed computing device and computing method for dipole interaction - Google Patents

High-speed computing device and computing method for dipole interaction Download PDF

Info

Publication number
JP5202405B2
JP5202405B2 JP2009066443A JP2009066443A JP5202405B2 JP 5202405 B2 JP5202405 B2 JP 5202405B2 JP 2009066443 A JP2009066443 A JP 2009066443A JP 2009066443 A JP2009066443 A JP 2009066443A JP 5202405 B2 JP5202405 B2 JP 5202405B2
Authority
JP
Japan
Prior art keywords
data
matrix product
storage device
sum
dipole
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
JP2009066443A
Other languages
Japanese (ja)
Other versions
JP2010218398A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009066443A priority Critical patent/JP5202405B2/en
Publication of JP2010218398A publication Critical patent/JP2010218398A/en
Application granted granted Critical
Publication of JP5202405B2 publication Critical patent/JP5202405B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Measuring Magnetic Variables (AREA)

Description

本発明は、双極子相互作用の高速演算技術に関する。例えば永久磁石、磁気センサ、磁気記録媒体その他の磁性材料の集合体における磁化分布の解析処理や磁化曲線の解析処理の高速化を実現する技術に関する。   The present invention relates to a high-speed calculation technique of dipole interaction. For example, the present invention relates to a technique for realizing high-speed analysis processing of magnetization distribution and analysis processing of magnetization curve in an assembly of permanent magnets, magnetic sensors, magnetic recording media and other magnetic materials.

永久磁石、磁気センサ、磁気記録媒体等は、磁化を帯びる性質を有する材料(磁性材料)を主に含んでいる。一般に磁性材料の磁化特性は、マイクロマグネティクスに基づいた数値計算により定量的な評価がなされている。このマイクロマグネティクスに基づく解析方法には、ブラウン方程式(Brown’s equation)を用いて磁気エネルギーの平衡状態を探索する方法と、ランダウ-リフシッツ-ギルバート方程式(Landau-Lifshitz-Gilbert equation)を用いて磁化の動的過程から磁化集団の平衡状態を求める方法の2方法がある。どちらの方法においても、解析対象の磁性体を多数のセルに分割し、各セルに微小磁化ベクトルを与え、磁化ベクトルの状態(向き)と磁気エネルギーを計算する。   Permanent magnets, magnetic sensors, magnetic recording media, and the like mainly contain a material having a property of being magnetized (magnetic material). In general, the magnetic properties of magnetic materials are quantitatively evaluated by numerical calculations based on micromagnetics. This analysis method based on micromagnetics uses the Brown's equation to search for the equilibrium state of magnetic energy, and the Landau-Lifshitz-Gilbert equation. There are two methods of obtaining the equilibrium state of the magnetized population from the dynamic process. In either method, the magnetic substance to be analyzed is divided into a large number of cells, a minute magnetization vector is given to each cell, and the state (direction) and magnetic energy of the magnetization vector are calculated.

特開平10−124479号公報JP-A-10-124479 特開平8−282745号公報JP-A-8-282745

以上のように、磁化分布や磁化曲線の解析では、多数のセル上に配置した磁化ベクトルの状態と対応した磁気エネルギーの計算が必要である。磁気エネルギーの計算は、磁化間の双極子相互作用エネルギー、磁化に働く交換相互作用エネルギー、磁化の異方性エネルギー、そして、外部から印加した磁場との相互作用エネルギーの4種の計算が必要である。   As described above, in the analysis of the magnetization distribution and the magnetization curve, it is necessary to calculate the magnetic energy corresponding to the states of the magnetization vectors arranged on many cells. The calculation of magnetic energy requires four types of calculations: dipole interaction energy between magnetizations, exchange interaction energy acting on magnetization, anisotropic energy of magnetization, and interaction energy with an externally applied magnetic field. is there.

これらの計算のうち磁化間の双極子相互作用の計算は、全ての磁化ベクトル間のペア(組)に対して計算を行う必要があり、最も多くの計算量を必要とする。このため、セル数の規模が大きい場合、ベクトル型スーパーコンピュータに代表される高性能な逐次処理型コンピュータを用いても非常に長い計算時間を必要としてしまう。   Of these calculations, the calculation of the dipole interaction between the magnetizations needs to be performed on pairs between all the magnetization vectors, and requires the largest amount of calculation. For this reason, when the number of cells is large, a very long calculation time is required even if a high-performance sequential processing type computer represented by a vector supercomputer is used.

この大規模系に対する磁化分布や磁化曲線の解析の高速化の課題に対して、高速フーリエ変換を利用する方法、磁位を利用する方法、方程式全体の並列処理化(特許文献1参照)などの幾つかの提案がなされている。   In response to the problem of speeding up the analysis of the magnetization distribution and the magnetization curve for this large-scale system, a method using fast Fourier transform, a method using magnetic potential, parallel processing of the whole equation (see Patent Document 1), etc. Several proposals have been made.

しかしながら、高速フーリエ変換を利用した方法は、周期的で十分に滑らかな磁化にしか適用できない欠点がある。また、磁位を利用した方法は、磁位を求めるのにポワソン方程式又はラプラス方程式を解く必要があり、任意の形状や形状変化に対して汎用的に扱えない欠点がある。   However, the method using the fast Fourier transform has a drawback that it can be applied only to periodic and sufficiently smooth magnetization. In addition, the method using the magnetic potential needs to solve the Poisson equation or the Laplace equation in order to obtain the magnetic potential, and has a drawback that it cannot be used universally for any shape or shape change.

また、方程式全体を並列処理化して解析を高速化する方法(特許文献2参照)では、最も計算時間のかかる反磁界を、メモリ分散型のマルチプロセッサ型コンピュータシステムで直接法により計算すると示されているが、高速化の要に関しては言及されていない。また、特許文献1の開示内容はブラウン方程式の解析に関するもののみであり、磁化の動的過程の解析を行うための情報が記載されていない。   Also, in the method of speeding up the analysis by parallel processing of the entire equation (see Patent Document 2), it is shown that the demagnetizing field that requires the most computation time is calculated by a direct method in a memory distributed multiprocessor computer system. However, there is no mention of the key to speeding up. The disclosure of Patent Document 1 is only related to the analysis of the Brownian equation, and does not describe information for analyzing the dynamic process of magnetization.

そこで、発明者は、双極子間の相互作用を高速に演算できる技術を提案する。具体的には、高速演算装置(計算機システム)を構成する複数の演算装置のそれぞれが、独立かつ並列に演算を実行できるように記述された動作ユニットに基づいて動作する技術を提案する。また、発明者は、各動作ユニットがデータの読み書きに使用するアドレス範囲をアクセス不可領域として他の動作ユニットに通知する仕組みを提案する。   Therefore, the inventor proposes a technique capable of calculating the interaction between dipoles at high speed. Specifically, a technique is proposed in which each of a plurality of arithmetic devices constituting a high-speed arithmetic device (computer system) operates based on an operation unit described so as to be able to execute operations independently and in parallel. The inventor also proposes a mechanism for notifying other operation units of the address range used by each operation unit for data reading and writing as an inaccessible area.

本発明は、演算装置の数ではなく、動作ユニットを基準として並列処理動作を実現する。このため、高速演算装置を構成する演算装置の並列数の制約を受けることがなく、解析対象とする磁化ベクトルの数を自由に与えることができる。また、本発明の場合、各動作ユニットがデータの読み書きを行うアドレス範囲を、相互にアクセス不可領域として通知し合うことにより、各演算装置と外部の記憶装置との間のアクセスを最小化できる。すなわち、バス上での待ち時間を最小化することができる。結果として、高速演算装置全体としての処理能力を高めることができる。   The present invention realizes a parallel processing operation based on the operation unit, not the number of arithmetic devices. For this reason, the number of magnetization vectors to be analyzed can be freely given without being restricted by the parallel number of the arithmetic devices constituting the high-speed arithmetic device. In the case of the present invention, it is possible to minimize access between each arithmetic device and an external storage device by notifying each other as an inaccessible area of the address range in which each operation unit reads and writes data. That is, the waiting time on the bus can be minimized. As a result, the processing capability of the entire high-speed arithmetic device can be increased.

形態例に係る演算システムの全体構成を例示する図である。It is a figure which illustrates the whole structure of the arithmetic system which concerns on an example. 演算装置の形態例を示す図である。It is a figure which shows the example of a form of an arithmetic unit. LLG解析フローと高速演算装置上で実行される処理動作の関係を説明する図である。It is a figure explaining the relationship between a LLG analysis flow and the processing operation performed on a high-speed arithmetic device. ベクトル和の算出動作例を説明する図である。It is a figure explaining the example of calculation operation of a vector sum.

以下、図面に基づいて、双極子の相互作用を高速演算する装置の形態例を説明する。
(1)形態例
(1−1)演算システムの全体構成
図1に、形態例に係る演算システムの全体構成例を示す。演算システムは、高速演算装置100と外部計算機160で構成され、これらの協働動作によって磁化エネルギーの計算動作が実行される。すなわち、高速演算装置100と外部計算機160の協働動作により、(1) 磁化間の双極子相互作用エネルギーの計算、(2) 磁化に働く交換相互作用エネルギーの計算、(3) 磁化の異方性エネルギーの計算、(4) 外部から印加した磁場との相互作用エネルギーの計算が実行される。
Hereinafter, based on the drawings, a description will be given of an example of an apparatus for performing high-speed computation of dipole interaction.
(1) Exemplary Embodiment (1-1) Overall Configuration of Arithmetic System FIG. 1 shows an exemplary overall configuration of an arithmetic system according to an exemplary embodiment. The arithmetic system is composed of a high-speed arithmetic device 100 and an external computer 160, and a magnetic energy calculation operation is executed by these cooperative operations. That is, by the cooperative operation of the high-speed arithmetic device 100 and the external computer 160, (1) calculation of dipole interaction energy between magnetizations, (2) calculation of exchange interaction energy acting on magnetization, (3) anisotropic magnetization Calculation of sex energy, (4) Calculation of interaction energy with externally applied magnetic field is executed.

この4つの計算のうち、磁化間の双極子相互作用エネルギーの計算(特に、双極子相互作用力の計算)を高速演算装置100が実行し、他の3つの計算は外部計算機160が実行する。   Of these four calculations, calculation of the dipole interaction energy between the magnetizations (particularly calculation of the dipole interaction force) is executed by the high-speed arithmetic device 100, and the other three calculations are executed by the external computer 160.

なお、高速演算装置100は、複数個の演算装置200と、双極子−双極子行列、磁化ベクトルを格納する記憶装置130(以下、「メモリG」という。)と、演算結果を格納する記憶装置140(以下、「メモリS」という。)と、これらを相互に接続するバス120で構成される。すなわち、高速演算装置100は、並列プロセッサ構造を有している。   The high-speed arithmetic device 100 includes a plurality of arithmetic devices 200, a storage device 130 that stores a dipole-dipole matrix and a magnetization vector (hereinafter referred to as “memory G”), and a storage device that stores a calculation result. 140 (hereinafter referred to as “memory S”) and a bus 120 that connects them to each other. That is, the high-speed arithmetic device 100 has a parallel processor structure.

因みに、メモリGは、特許請求の範囲における第1の記憶装置に対応する。また、メモリSは、特許請求の範囲における第2の記憶装置に対応する。また、バス120の一端はコネクタ150を介して外部計算機160と接続されている。   Incidentally, the memory G corresponds to the first storage device in the claims. The memory S corresponds to the second storage device in the claims. One end of the bus 120 is connected to the external computer 160 via the connector 150.

一方、外部計算機160は、バス162と、中央演算装置164と、メモリ166とで構成されている。   On the other hand, the external computer 160 includes a bus 162, a central processing unit 164, and a memory 166.

(1−2)演算装置200の内部構成
図2に、演算装置200の内部構成例を示す。この明細書において、この演算装置200は、AUP(Action Unit Processor)ともいう。形態例に係る演算装置200は、演算器210、キャッシュメモリ220、リストメモリ230で構成される。演算器210は、数値データの演算を実際に実行する部分である。キャッシュメモリ220は、データやアドレスを格納する記憶領域である。リストメモリ230は、読み書きできるメモリ領域を特定するアドレスの情報(アドレス範囲)を格納する記憶領域である。
(1-2) Internal Configuration of Arithmetic Device 200 FIG. In this specification, the arithmetic device 200 is also referred to as an AUP (Action Unit Processor). The arithmetic device 200 according to the embodiment includes an arithmetic unit 210, a cache memory 220, and a list memory 230. The computing unit 210 is a part that actually performs computation of numerical data. The cache memory 220 is a storage area for storing data and addresses. The list memory 230 is a storage area for storing address information (address range) for specifying a readable / writable memory area.

この形態例の場合、リストメモリ230には、2つのリストが格納される。1つは、メモリG上でのアクセス可能領域を指定するアクセス許可リスト(以下、「allowリスト」という。)240である。他の1つは、メモリS上でのアクセス不可領域を指定するアクセス不可リスト(以下、「denyリスト」という。)250である。なお、allowリストは特許請求の範囲における第1のリストに対応し、denyリストは特許請求の範囲における第2のリストに対応する。   In the case of this embodiment, the list memory 230 stores two lists. One is an access permission list (hereinafter referred to as “allow list”) 240 for designating accessible areas on the memory G. The other one is an inaccessible list (hereinafter referred to as “deny list”) 250 that specifies an inaccessible area on the memory S. The allow list corresponds to the first list in the claims, and the deny list corresponds to the second list in the claims.

(1−3)動作ユニットの構造
続いて、演算装置200の動作を規定する動作ユニットAU(Action Unit)の内容を説明する。動作ユニットAUは、数値データを指定されたメモリからの読み込み、指定される演算、指定されたメモリに対する演算結果の書き込みそれぞれの任意回数の組合せとして記述されている。なお、動作ユニットAUの内容は、外部計算機160又はメモリGに格納されたプログラム内に記述されている。すなわち、プログラムには、複数の動作ユニットAUの内容が記述されている。
(1-3) Structure of Operation Unit Next, the content of an operation unit AU (Action Unit) that defines the operation of the arithmetic device 200 will be described. The operation unit AU is described as a combination of an arbitrary number of times each of reading numerical data from a specified memory, a specified calculation, and a calculation result writing to the specified memory. The contents of the operation unit AU are described in a program stored in the external computer 160 or the memory G. That is, the contents of a plurality of operation units AU are described in the program.

演算装置200は、この動作ユニットAUを読み込み、独立に実行する。このため、高速演算装置100の全体では、動作ユニットAUが並列に実行される。また、この形態例の場合、各動作ユニットAUには、固有の数字(認識番号)が付されている。演算装置200は、この認識番号を用いて動作ユニットAUを識別する。   The arithmetic device 200 reads this operation unit AU and executes it independently. For this reason, in the entire high-speed arithmetic device 100, the operation units AU are executed in parallel. In the case of this embodiment, each operation unit AU is given a unique number (recognition number). The arithmetic device 200 identifies the operation unit AU using this recognition number.

動作ユニットAU間におけるデータの受け渡しは、各動作ユニットAUがメモリSを介して実行する。動作ユニットAUがメモリS上にデータを書き込む場合又は読み込む場合、動作ユニットAUは、前述した認識番号とメモリアドレスの情報を、他の演算装置200で動作している動作ユニットAUに通知する。演算装置200上で動作している他の動作ユニットAUは、通知された認識番号とメモリアドレスの情報の組を、リストメモリ230のdenyリスト250に格納する。このdenyリスト250に存在するアドレスに対しては、その通知を受けた他の動作ユニットAUはアクセスすることができない。なお、動作ユニットAUによるメモリSに対する書き込み動作又は読み込み動作が終了する場合、自身の認識番号を他動作ユニットAUに対して通知する。通知を受けた動作ユニットAU側では、通知された認識番号に関連する全てのメモリアドレスの組をdenyリスト250から全て削除するように動作する。   Data transfer between the operation units AU is performed by each operation unit AU via the memory S. When the operation unit AU writes or reads data on the memory S, the operation unit AU notifies the operation unit AU operating on the other arithmetic unit 200 of the above-described identification number and memory address information. The other operation unit AU operating on the arithmetic device 200 stores the notified combination of the identification number and the memory address information in the deny list 250 of the list memory 230. The other operation unit AU that has received the notification cannot access the addresses existing in the deny list 250. In addition, when the writing operation or the reading operation with respect to the memory S by the operation unit AU is completed, its own identification number is notified to the other operation unit AU. The operation unit AU that has received the notification operates to delete all pairs of memory addresses related to the notified identification number from the deny list 250.

(1−4)LLG解析動作
図3に、LLG解析法に基づいて、演算システム(図1)において実行される計算動作例を説明する。
(1-4) LLG Analysis Operation FIG. 3 illustrates an example of calculation operation executed in the arithmetic system (FIG. 1) based on the LLG analysis method.

(初期動作)
最初に、LLG解析フローの初期動作1000が実行される。この初期動作では、双極子−双極子行列Gijが外部計算機160において計算される。計算された双極子−双極子行列Gijのデータは、外部計算機160からコネクタ150及びバス120を通じ、高速演算装置200内のメモリGに書き込まれる。
(Initial operation)
First, the initial operation 1000 of the LLG analysis flow is executed. In this initial operation, the dipole-dipole matrix Gij is calculated in the external computer 160. The data of the calculated dipole-dipole matrix Gij is written from the external computer 160 to the memory G in the high-speed arithmetic device 200 through the connector 150 and the bus 120.

ここで、磁化ベクトルの数をNとすると、双極子−双極子行列Gijの書き込みに必要なメモリ容量は、N×N×3×3×Wバイトで与えられる。ここでのWは、1つの浮動小数点実数を記録するのに必要なバイト数である。好適な例として、単精度実数(W=4バイト)と倍精度実数(W=8バイト)が挙げられる。   Here, when the number of magnetization vectors is N, the memory capacity necessary for writing the dipole-dipole matrix Gij is given by N × N × 3 × 3 × W bytes. Here, W is the number of bytes necessary to record one floating point real number. Preferred examples include single precision real numbers (W = 4 bytes) and double precision real numbers (W = 8 bytes).

また、この初期動作において、各動作ユニットAUがアクセスするメモリ上のアドレス範囲も決定される。すなわち、初期動作において、一連の演算に必要な動作ユニットAUが発生される。ここで、動作ユニットAUは、磁化ベクトルの数N又はその整数倍の数だけ発生される。後述する動作は、この動作ユニットAUの記述に従って実行される。   In this initial operation, the address range on the memory accessed by each operation unit AU is also determined. That is, in the initial operation, an operation unit AU necessary for a series of operations is generated. Here, the number of motion units AU is generated by the number N of magnetization vectors or an integer multiple thereof. The operation described later is executed according to the description of the operation unit AU.

(磁化に働く力の計算)
次に、外部計算機160と高速演算装置200の協働動作により、磁化に働く力の計算1100が実行される。なお、双極子相互作用の力の計算以外は、外部計算機160で計算される。以下では、双極子相互作用の力の計算で実行される処理動作の内容を説明する。
(Calculation of force acting on magnetization)
Next, the calculation 1100 of the force acting on the magnetization is executed by the cooperative operation of the external computer 160 and the high-speed arithmetic device 200. The calculation is performed by the external computer 160 except for the calculation of the dipole interaction force. Below, the content of the processing operation performed by calculation of the force of a dipole interaction is demonstrated.

(a)磁化ベクトルの転送
まず、磁化ベクトル転送2100が実行される。この動作では、更新された磁化ベクトルの集合が、外部計算機160からコネクタ150及びバス120を通じてメモリGに書き込まれる。磁化ベクトルの数をNとすると、磁化ベクトルの集合の格納に必要なメモリ容量はN×3×Wバイトである。ここでのWは、1つの浮動小数点実数を記録するのに必要なバイト数である。好適な例として、単精度実数(W=4バイト)と倍精度実数(W=8バイト)とが挙げられる。
このとき、各動作ユニットAUが計算に使用する磁化ベクトルMのデータが、対応する演算装置200のキャッシュメモリ220に格納される動作も実行される。
(A) Transfer of magnetization vector First, the magnetization vector transfer 2100 is executed. In this operation, the updated set of magnetization vectors is written into the memory G from the external computer 160 through the connector 150 and the bus 120. If the number of magnetization vectors is N, the memory capacity required to store a set of magnetization vectors is N × 3 × W bytes. Here, W is the number of bytes necessary to record one floating point real number. Preferred examples include single precision real numbers (W = 4 bytes) and double precision real numbers (W = 8 bytes).
At this time, the operation in which the data of the magnetization vector M used for calculation by each operation unit AU is stored in the cache memory 220 of the corresponding arithmetic device 200 is also executed.

(b)ベクトル行列積の演算
次に、ベクトル行列積の演算2200が実行される。この動作は、特許請求の範囲における第1のステップの動作に対応する。ここでは、N個の磁化集合の中から2個の磁化を取り出し、この2つの磁化の番号をi,jとして説明する。また、2つの磁化i,j間の双極子−双極子行列はGijで与えられるものとする。この場合、各動作ユニットAUは、Gij×Mj で表現される行列演算を実行する。また、算出結果である3次元ベクトルVijは、バス120を通じてメモリSに書き込まれる。
(B) Vector Matrix Product Operation Next, a vector matrix product operation 2200 is executed. This operation corresponds to the operation of the first step in the claims. Here, two magnetizations are extracted from N magnetization sets, and the numbers of these two magnetizations are assumed to be i and j. It is assumed that the dipole-dipole matrix between the two magnetizations i and j is given by Gij. In this case, each operation unit AU executes a matrix operation expressed by Gij × Mj. Further, the three-dimensional vector Vij as a calculation result is written into the memory S through the bus 120.

以下では、この動作の詳細内容を説明する。この形態例の場合、各動作ユニットAUは、ベクトル行列積の演算動作が演算装置200において並列かつ独立に実行されるように記述されている。例えば、各動作ユニットAUには、演算動作で使用する数値データのアドレス情報が予め指定されている。例えば双極子−双極子行列Gij(メモリG上に存在する。)のアドレス情報は、i,jの2つの整数値と、1つの3×3行列に必要なメモリサイズW_33(9個の浮動小数点実数のサイズ)を用いて以下のように記述される。   Hereinafter, the detailed contents of this operation will be described. In the case of this embodiment, each operation unit AU is described so that the calculation operation of the vector matrix product is executed in parallel and independently in the arithmetic device 200. For example, each operation unit AU is preliminarily designated with address information of numerical data used in the arithmetic operation. For example, address information of a dipole-dipole matrix Gij (existing on the memory G) includes two integer values i and j and a memory size W_33 (9 floating point numbers) required for one 3 × 3 matrix. (Real size) is described as follows.

ここでは、i,jをゼロから始まる整数とする。その場合、双極子−双極子行列Gijの開始アドレスGij_startと、終了アドレスGij_endは、次式により与えられる。
Gij_start=i×(N−1)×W_33+j×W_33={i×(N−1)+j}×W_33
Gij_end=Gij_start+W_33
従って、このステップで使用される動作ユニットAUには、(i) 認識番号、(ii)磁化を指定する整数値(i,j)、(iii) 双極子−双極子行列Gijのアドレス範囲(Gij_start,Gij_end)、(iv)磁化ベクトルMjのアドレス及びベクトル値のいずれか、(v)3次元ベクトルVijを格納するアドレスが設定されている。
Here, i and j are integers starting from zero. In that case, the start address Gij_start and the end address Gij_end of the dipole-dipole matrix Gij are given by the following equations.
Gij_start = i * (N-1) * W_33 + j * W_33 = {i * (N-1) + j} * W_33
Gij_end = Gij_start + W_33
Accordingly, the operation unit AU used in this step includes (i) an identification number, (ii) an integer value (i, j) for specifying magnetization, and (iii) an address range (Gij_start) of the dipole-dipole matrix Gij. , Gij_end), (iv) one of the address and vector value of the magnetization vector Mj, (v) an address for storing the three-dimensional vector Vij is set.

これらの情報に基づき、各演算装置200は、独立かつ並列に、双極子−双極子行列データと磁化ベクトルを読み込み、キャッシュメモリ220に格納する。また、各演算装置200は、磁化ベクトル(3次元)と双極子-双極子行列(3×3次元)の積演算を演算器210で実行し、演算結果をメモリS上に確保された3次元ベクトルVij用のアドレス領域に格納する。   Based on these pieces of information, each arithmetic device 200 reads the dipole-dipole matrix data and the magnetization vector independently and in parallel, and stores them in the cache memory 220. In addition, each arithmetic device 200 executes a product operation of the magnetization vector (three-dimensional) and the dipole-dipole matrix (3 × 3 dimensions) by the arithmetic unit 210, and the arithmetic result is secured in the memory S. Store in the address area for the vector Vij.

このステップ1に対応する全ての動作ユニットAUの実行が終了すると、N個の磁化集合中の全ての2つの磁化の組合せに対する双極子−双極子行列と磁化ベクトル間の積演算が完了することになる。   When the execution of all the operation units AU corresponding to this step 1 is completed, the product operation between the dipole-dipole matrix and the magnetization vector for all the two magnetization combinations in the N magnetization sets is completed. Become.

(c)ベクトル和の演算
次に、ベクトル和の演算2300が実行される。この動作は、特許請求の範囲における第2のステップの動作に対応する。算出された3次元ベクトルVijを、ある添字jについてのみ加算すると、磁化iに作用する双極子相互作用力Fi (=ΣVij)となる。ただし、i≠jである。更に、この双極子相互作用力Fi と磁化Mi の内積を求め、全てのiに関する和を求めると、双極子エネルギーになる。従って、添字jについてのベクトル和を効率良く算出することが計算速度の向上にとって重要である。以下では、その好適な計算例を示す。
(C) Vector Sum Operation Next, a vector sum operation 2300 is executed. This operation corresponds to the operation of the second step in the claims. When the calculated three-dimensional vector Vij is added only for a certain subscript j, a dipole interaction force Fi (= ΣVij) acting on the magnetization i is obtained. However, i ≠ j. Further, when the inner product of the dipole interaction force Fi and the magnetization Mi is obtained and the sum of all i is obtained, the dipole energy is obtained. Therefore, it is important for improving the calculation speed to efficiently calculate the vector sum for the subscript j. Below, the suitable calculation example is shown.

(c−1)基本動作
ここでは、磁化ベクトルの集合中の磁化ベクトルの数をNとし、Nを超えない最大の2のベキ数をLとする。この基本動作では、N=Lの場合を考える。さて、L=2を満たす整数Pを最大とする整数の集合{1,2,…,P}を用意する。この集合の要素pを1からPまで順番に取り出し、その都度、以下の処理動作を実行する。
(C-1) Basic Operation Here, let N be the number of magnetization vectors in the set of magnetization vectors, and let L be the maximum power of 2 that does not exceed N. In this basic operation, a case where N = L is considered. Now, the integer set {1, 2, ..., P} that maximizes the integer P that satisfies L = 2 P is prepared. The elements p of this set are extracted in order from 1 to P, and the following processing operation is executed each time.

まず、認識番号が2p*n+2(p-1)(ただし、n=0,1,2…)で与えられる動作ユニットAUだけを動作させる。このとき、動作した動作ユニットAUは、自身がメモリSに書き込んだ3次元ベクトルVijと、自身の認識番号から整数2p を引いた認識番号の動作ユニットAUが書き込んだ3次元ベクトルVijとを読み込み、これらのデータ間の和演算を実行する。このとき、この和演算で用いられる2つの3次元ベクトル(特許請求の範囲における「ベクトル行列積」又は「ベクトル行列積和」に対応する。)は、他の動作ユニットAUとの間で排他的に選択された動作になる。なお、動作ユニットは、和演算によって得られた結果をメモリS上に確保された特定の格納領域に書き込む。例えば加算演算の対象である2つの認識番号の大きい方の認識番号に対応する格納領域に書き込まれる。この格納領域は、要素pが1つ繰り上がった場合に読み出し領域として再び使用される。 First, only the operation unit AU given by the identification number 2 p * n +2 (p-1) (where n = 0, 1, 2,...) Is operated. At this time, the operated operation unit AU reads the three-dimensional vector Vij written in the memory S by itself and the three-dimensional vector Vij written by the operation unit AU having the recognition number obtained by subtracting the integer 2 p from its own recognition number. The sum operation between these data is executed. At this time, two three-dimensional vectors (corresponding to “vector matrix product” or “vector matrix product sum” in the claims) used in this sum operation are exclusive with other operation units AU. The selected operation is performed. The operation unit writes the result obtained by the sum operation in a specific storage area secured on the memory S. For example, it is written in the storage area corresponding to the larger recognition number of the two recognition numbers to be subjected to the addition operation. This storage area is used again as a read area when the element p is moved up by one.

この処理動作を繰り返しにより、認識番号が2P-1 の動作ユニットAUの処理結果としてL(=N)個の3次元ベクトルVijの総和(=ΣVij)が算出される。そして、この総和である双極子相互作用力Fi がメモリSに書き込まれる。 By repeating this processing operation, the sum (= ΣVij) of L (= N) three-dimensional vectors Vij is calculated as the processing result of the operation unit AU with the recognition number 2 P-1 . Then, the dipole interaction force Fi, which is the sum, is written in the memory S.

なお、以上の動作を全ての添字iについて実行すると、全ての磁化に作用する双極子相互作用力Fi を算出することができる。   In addition, if the above operation | movement is performed about all the subscripts i, the dipole interaction force Fi which acts on all the magnetization can be calculated.

(c−2)変形動作
ところで、前述の基本動作ではN=Lの場合について説明したが、必ずしもそのような条件を満たすとは限らない。そのような場合は、以下の動作を実行する。NとLが等しくならない場合には、まず、Nを超えない最大のべき乗数Lを求める。そして、この整数Lで与えられる範囲を(c−1)項の基本動作を適用する部分集合に設定する。
(C-2) Deformation Operation In the above basic operation, the case where N = L has been described. However, such a condition is not always satisfied. In such a case, the following operation is executed. When N and L are not equal, first, a maximum power multiplier L not exceeding N is obtained. Then, the range given by this integer L is set to a subset to which the basic operation of the item (c-1) is applied.

次に、整数Q(=N−L)を超えない最大の2ベキ乗数LLで与えられる個数の3次元ベクトルの部分集合について、(c−1)項のLをLLに入れ替えた動作を適用する。この場合は、整数Lまでの範囲に属する3次元ベクトルの集合に対して求められた部分総和と、整数Lを越えて整数LLまでの範囲に属する3次元ベクトルの集合に対して求められた部分総和との和演算を実行することにより、3次元ベクトルの総和(=ΣVij)を算出することができる。   Next, an operation in which L in (c-1) is replaced with LL is applied to a subset of the three-dimensional vectors given by the maximum two power multiplier LL not exceeding the integer Q (= N−L). . In this case, the partial sum obtained for the set of three-dimensional vectors belonging to the range up to integer L and the part obtained for the set of three-dimensional vectors belonging to the range beyond integer L to integer LL By performing the sum operation with the sum, the sum (= ΣVij) of the three-dimensional vectors can be calculated.

更に、NとL+LLとが等しくならない場合には、同様に部分集合を設定し、その範囲について(c−1)項の処理を適用する。例えば、整数の部分集合R={N−L−LL+1,N−L−LL+2,…,N}に認識番号が属する動作ユニットAUによって、当該整数範囲に対応する3次元ベクトルの和演算が実行される。以上の処理イメージを図4に示す。図4は、2のべき乗で与えられる3つの範囲についてそれぞれ(c−1)項の基本動作が実行され、その演算結果が更に加算される様子を表している。   Further, if N and L + LL are not equal, a subset is set in the same manner, and the processing in (c-1) is applied to the range. For example, a sum operation of the three-dimensional vectors corresponding to the integer range is performed by the operation unit AU to which the identification number belongs to the integer subset R = {N−L−LL + 1, N−L−LL + 2,..., N}. The The above processing image is shown in FIG. FIG. 4 shows a state in which the basic operation of the item (c-1) is executed for each of three ranges given as powers of 2, and the calculation results are further added.

(d)双極子相互作用力の転送
次に、算出された双極子相互作用力の転送2400が実行される。この動作では、3次元ベクトルのN個の集合データである双極子相互作用力Fi が外部計算機160に転送される。
(D) Transfer of Dipole Interaction Force Next, transfer of the calculated dipole interaction force 2400 is executed. In this operation, a dipole interaction force Fi, which is N set data of a three-dimensional vector, is transferred to the external computer 160.

(次の磁化状態の決定)
ここまでの作業により、外部計算機160上には磁化に働く全ての双極子相互作用力Fiが求まる。次の磁化状態の決定1200の中で、これらの双極子相互作用力Fi をLLG方程式の定める方法に適用し、時間刻み幅だけ進んだときの磁化状態を求める。
(Determination of the next magnetization state)
By the work so far, all the dipole interaction forces Fi acting on the magnetization are obtained on the external computer 160. In the next determination of magnetization state 1200, these dipole interaction forces Fi are applied to the method defined by the LLG equation to determine the magnetization state when advanced by the time step size.

(終了判断)
その後、計算が所定の回数まで実行したかの判断(すなわち、終了判断1300)が実行され、所定回数に満たない場合には磁化の時間発展の繰返し起点1010に戻る。
(End judgment)
Thereafter, a determination is made as to whether the calculation has been performed up to a predetermined number of times (that is, end determination 1300).

(終了処理)
そして、計算が所定回数に達した場合には、終了処理1400(2500)を行い、終了する。
(End processing)
When the calculation reaches the predetermined number of times, the end process 1400 (2500) is performed and the process ends.

(1−5)まとめ
以上説明したように、この形態例によれば、プロセッサの数ではなく、プロセッサ上で動作する作業単位(動作ユニットAU)による並列分割を行っているので、ハードウエア的な並列数に制約されることなく、解析する磁化ベクトルの数を変化させることができる。従って、膨大な数の磁化ベクトルの解析においても、非常に容易に対応することが可能である。
(1-5) Summary As described above, according to this embodiment, the parallel division is performed not by the number of processors but by the unit of work (operation unit AU) that operates on the processors. The number of magnetization vectors to be analyzed can be changed without being limited by the parallel number. Therefore, even a huge number of magnetization vectors can be analyzed very easily.

また、この形態例の場合には、計算負荷の最も重い双極子双極子相互作用部分を実行し、それ以外の計算を外部計算機に委ねることができるので、解析方程式や手法の拡張へ柔軟に対応することが可能である。   In the case of this configuration example, the dipole-dipole interaction part with the heaviest calculation load can be executed and other calculations can be entrusted to an external computer, so the analysis equations and methods can be expanded flexibly. Is possible.

また、この形態例によれば、磁性体の磁化の動的過程(スピン反転)や磁化分布や磁化曲線の解析において、磁性体形状由来の反磁場効果などを近似的に取り入れることなく、高速かつ高精度に解析することができる。従って、ナノサイズ磁性体上のスピン反転特性、複雑な界面形状を有する磁性体での磁化反転特性、3次元的な多層構造磁性体の磁気特性だけでなく、2次元磁性体膜などの特性解析に有効である。   In addition, according to this embodiment, in the analysis of the dynamic process (spin reversal) of magnetization of a magnetic material, the magnetization distribution and the magnetization curve, the high- It is possible to analyze with high accuracy. Therefore, spin reversal characteristics on nano-sized magnetic materials, magnetization reversal characteristics on magnetic materials with complex interface shapes, magnetic properties of three-dimensional multilayered magnetic materials, as well as characteristics analysis of two-dimensional magnetic films, etc. It is effective for.

(2)他の形態例
(2−1)前述の形態例においては、ベクトル和の演算2300において、認識番号が2p*n+2(p-1) で与えられる動作ユニットAUと、この数値よりも2p を引いた認識番号で与えられる動作ユニットAUで算出された3次元ベクトル同士を加算し、その加算結果を2p*n+2(p-1) で与えられる認識番号を有する動作ユニットAUのメモリ領域に書き込む場合について説明した。しかし、2p*n+2(p-1) よりも2p を引いた認識番号を有する動作ユニットAUのメモリ領域に書き込んでも良い。
また、全ての3次元ベクトルが重複することなく全て加算した結果が得られれば、加算演算の対象とする2つの3次元ベクトル対の与え方は任意である。
(2) Other Embodiments (2-1) In the above embodiment, in the vector sum operation 2300, the operation unit AU given the recognition number 2 p * n +2 (p-1) Also, the three-dimensional vectors calculated by the motion unit AU given by the recognition number minus 2 p are added together, and the addition result is the motion unit AU having the recognition number given by 2 p * n +2 (p-1). The case where data is written to the memory area has been described. However, it may be written in the memory area of the operation unit AU having an identification number obtained by subtracting 2 p from 2 p * n +2 (p−1) .
Further, if the result of adding all three-dimensional vectors without overlapping is obtained, the method of giving two three-dimensional vector pairs to be subjected to the addition operation is arbitrary.

(2−2)前述した形態例の場合には、各動作ユニットAUが使用するメモリS上の記憶領域をアクセス不可領域として他の動作ユニットAUに通知する場合について説明した。しかし、各動作ユニットAUが使用するメモリG上の記憶領域をアクセス不可領域として通知しても良い。例えばベクトル行列積の演算2200を実行する場合、各動作ユニットAUは、全く任意の磁化についてベクトル行列積を演算する。この場合において、演算対象である2つの磁化ベクトルを指定する整数値(i,j)のいずれか一方が、他の動作ユニットAUとの間で競合することも考えられる。すなわち、複数の動作ユニットが同じ磁化ベクトルMjの読み出しを行う可能性がある。しかし、実行中の動作ユニットAUがこれらのアドレスをアクセス不可アドレスとして通知し合っていれば、各動作ユニットAUはメモリGにアクセスを開始する前に、当該アドレスに対する読み出しを停止することができる。 (2-2) In the case of the embodiment described above, the case has been described where the storage area on the memory S used by each operation unit AU is notified to another operation unit AU as an inaccessible area. However, the storage area on the memory G used by each operation unit AU may be notified as an inaccessible area. For example, when the vector matrix product operation 2200 is executed, each operation unit AU calculates a vector matrix product for a completely arbitrary magnetization. In this case, it is also conceivable that any one of the integer values (i, j) specifying the two magnetization vectors to be calculated competes with another operation unit AU. That is, a plurality of operation units may read the same magnetization vector Mj. However, if the running operation unit AU notifies these addresses as inaccessible addresses, each operation unit AU can stop reading from the address before starting to access the memory G.

(2−3)前述した形態例の場合には、高速演算装置100が、双極子相互作用力の演算のみを分担する場合について説明した。しかしながら、演算装置200において、その他の演算処理を実行しても良い。 (2-3) In the case of the embodiment described above, the case has been described in which the high-speed arithmetic device 100 shares only the calculation of the dipole interaction force. However, the arithmetic device 200 may execute other arithmetic processing.

(2−4)前述した形態例の場合には、演算システムが全体として磁気エネルギーを計算する場合について説明した。しかし、形態例で説明した技術は、その他の汎用演算にも応用することができる。なお、高速演算装置100の構成は形態例1と同じものを想定する。このとき、演算装置200を特定することなく発生される動作ユニットの少なくとも一部に、処理対象として記憶装置から読み出す数値データのアドレス範囲と、演算結果を書き込むアドレス範囲と、読み出された数値データに対する演算動作を指定する処理内容と、数値データの読み出し又は書き込み先を与えるアドレス範囲を、アクセス不可領域として他の演算装置に通知させる処理と、読み出し又は書き込みの終了を他の演算装置に通知して第2のリストから削除させる処理とが記述されていれば良い。 (2-4) In the case of the above-described embodiment, the case where the calculation system calculates the magnetic energy as a whole has been described. However, the technique described in the embodiment can be applied to other general-purpose operations. It is assumed that the configuration of the high-speed arithmetic device 100 is the same as that of the first embodiment. At this time, at least a part of the operation unit generated without specifying the arithmetic device 200, the numerical data address range to be read from the storage device as a processing target, the address range to which the arithmetic result is written, and the read numerical data The processing contents for specifying the arithmetic operation for the above and the address range for giving the reading or writing destination of the numerical data are notified to the other arithmetic device as an inaccessible area, and the end of the reading or writing is notified to the other arithmetic device. And the process to be deleted from the second list may be described.

100…高速演算装置
120…バス
130…記憶装置(メモリG)
140…記憶装置(メモリS)
150…コネクタ
160…外部計算機
162…バス
164…中央演算装置
166…メモリ
200…演算装置
210…演算器
220…キャッシュメモリ(レジスタ)
230…リストメモリ
240…allowリスト
250…denyリスト
260…内部バス
100 ... High-speed arithmetic unit 120 ... Bus 130 ... Storage device (memory G)
140 ... Storage device (memory S)
150 ... Connector 160 ... External computer 162 ... Bus 164 ... Central processing unit 166 ... Memory 200 ... Processing unit 210 ... Processing unit 220 ... Cache memory (register)
230 ... List memory 240 ... allow list 250 ... deny list 260 ... internal bus

Claims (7)

双極子−双極子行列データ及び磁化ベクトルデータの集合を保持する第1の記憶装置と、
演算結果を格納する第2の記憶装置と、
演算器と、数値データ及びそのアドレス情報を格納するキャッシュメモリと、前記第1の記憶装置のアクセス可能領域を指定する第1のリストと、前記第2の記憶装置のアクセス不可領域を指定する第2のリストを格納するリストメモリとをそれぞれが有する複数の演算装置と、
前記第1の記憶装置と、前記第2の記憶装置と、前記複数の演算装置とを相互に接続するバスを有し、
双極子−双極子行列データと磁化ベクトルデータとの行列積演算を実行する第1のステップにおいて、
前記複数の演算装置のそれぞれが、独立かつ並列に、
演算装置を特定することなく事前に発生された複数の動作ユニットのうちの一つを読み込んで、当該動作ユニットに記述された磁化ベクトルデータのアドレス範囲と双極子−双極子行列データのアドレス範囲を前記第1のリストに追加すると共に、次に当該2つのアドレス範囲に基づいて演算対象としての磁化ベクトルデータと双極子−双極子行列データを前記第1の記憶装置から読み出して前記キャッシュメモリに書き込み、次に書き込まれた磁化ベクトルデータと双極子−双極子行列データの積演算を前記演算器で実行し、その演算結果である行列積データを動作ユニットで指定された前記第2の記憶装置のアドレス範囲に書き込む処理動作を実行し、
算出された前記行列積データの和演算を実行する第2のステップにおいて、
前記複数の演算装置のそれぞれが、独立かつ並列に、
1つ目の処理として、前記第1のステップによって算出された行列積データの集合に基づいて、全ての行列積データ対間で要素の重複が排除されるように行列積データ対の個数分だけ発生される動作ユニットの一つを読み込み、当該動作ユニットによる数値データの読み書きが終了するまでの間、数値データの読み書きを行うアドレス範囲を前記アクセス不可アドレスとして他の全ての動作ユニット置に通知し、次に動作ユニットで指定された行列積データ対を構成する2つの行列積データの各アドレス範囲を前記第1のリストに追加すると共に、次に指定された行列積データ対を構成する行列積データを前記第2の記憶装置の各アドレス範囲から読み出して前記キャッシュメモリに書き込み、次に書き込まれた2つの行列積データの和演算を前記演算器で実行し、その演算結果である行列積和データを動作ユニットで指定された前記第2の記憶装置のアドレス範囲に書き込む動作を実行し、
引き続き2つ目の処理として、算出された行列積和データの集合に基づいて、全ての行列積和データ対間で要素の重複が排除されるように行列積和データ対の個数分だけ発生される動作ユニットのうちの一つを読み込み、当該動作ユニットで指定された行列積和データ対を構成する2つの行列積和データの各アドレス範囲を前記第1のリストに追加すると共に、当該動作ユニットによる演算結果の書き込み動作が終了するまでの間、演算結果の書き込み先を与える1つのアドレス範囲を他の全ての動作ユニットに対して前記第2のリストに書き込むように通知し、次に指定された行列積和データ対を構成する行列積和データを前記第2の記憶装置の各アドレス範囲から読み出して前記キャッシュメモリに書き込み、次に書き込まれた2つの行列積和データの和演算を前記演算器で実行し、その演算結果である行列積和データを動作ユニットで指定された前記第2の記憶装置のアドレス範囲に書き込む動作を実行し、
以後、前記2つ目の処理を、演算結果が1つの行列積和データに統合されるまで繰り返し実行する
ことを特徴とする双極子相互作用の高速演算装置。
A first storage device for holding a set of dipole-dipole matrix data and magnetization vector data;
A second storage device for storing a calculation result;
An arithmetic unit, a cache memory for storing numerical data and its address information, a first list for designating an accessible area of the first storage device, and a first list for designating an inaccessible area of the second storage device A plurality of arithmetic units each having a list memory for storing two lists;
A bus that interconnects the first storage device, the second storage device, and the plurality of arithmetic devices;
In a first step of performing a matrix product operation of dipole-dipole matrix data and magnetization vector data:
Each of the plurality of arithmetic devices is independent and in parallel,
Read one of a plurality of motion units generated in advance without specifying an arithmetic unit, and determine the address range of magnetization vector data and the address range of dipole-dipole matrix data described in the motion unit. In addition to adding to the first list, next, magnetization vector data and dipole-dipole matrix data as operation targets are read from the first storage device and written to the cache memory based on the two address ranges. The product operation of the next written magnetization vector data and dipole-dipole matrix data is executed by the computing unit, and the matrix product data as the result of the computation is stored in the second storage device designated by the operation unit. Execute the processing operation that writes to the address range,
In a second step of performing a sum operation of the calculated matrix product data,
Each of the plurality of arithmetic devices is independent and in parallel,
As the first process, based on the set of matrix product data calculated in the first step, as many as the number of matrix product data pairs so as to eliminate duplication of elements between all matrix product data pairs. Until one of the generated operation units is read and reading / writing of numerical data by the operation unit is completed, the address range for reading / writing numerical data is notified to all other operation unit devices as the inaccessible address. Next, each address range of two matrix product data constituting the matrix product data pair designated by the operation unit is added to the first list, and the matrix product constituting the matrix product data pair designated next is added. Data is read from each address range of the second storage device, written to the cache memory, and then the sum operation of the two written matrix product data The running in the computing unit performs the operation to write the address range of the calculation result a is the matrix product sum data and the second storage device designated by the operation units,
Subsequently, as the second process, as many matrix product-sum data pairs as the number of matrix product-sum data pairs are generated based on the calculated set of matrix product-sum data so as to eliminate duplication of elements between all matrix product-sum data pairs. One of the operation units is read, and each address range of the two matrix product-sum data constituting the matrix product-sum data pair designated by the operation unit is added to the first list, and the operation unit Until the operation result writing operation by is completed, one address range giving the operation result write destination is notified to all other operation units to be written to the second list, and then specified. The matrix product-sum data constituting the matrix product-sum data pair is read from each address range of the second storage device, written to the cache memory, and then the two written rows Running sum operation of accumulator data in the operation unit performs the operation to write the address range of the operation of the matrix product sum data is the result specified by the operating unit the second storage device,
Thereafter, the second processing is repeatedly executed until the calculation result is integrated into one matrix product-sum data.
個々の演算装置に実行させる動作内容を記述する各動作ユニットには、それぞれに固有の認識番号が付されており、各演算装置は、当該認識番号に基づいて自他の演算装置が実行する動作ユニットを識別する
ことを特徴とする請求項1に記載の高速演算装置。
Each operation unit that describes the operation content to be executed by each arithmetic device is given a unique identification number, and each arithmetic device performs an operation to be executed by the other arithmetic device based on the recognition number. The high-speed arithmetic device according to claim 1, wherein the unit is identified.
前記第2のステップにおける前記1つ目又は前記2つ目の処理で実行される各動作ユニットにおいては、
和演算の対象としての行列積データ又は行列積和データの集合のうち、各行列積データ又は行列積和データの認識番号の並び順に取り出された2つの行列積データ又は行列積和データが和演算の対象として指定される
ことを特徴とする請求項2に記載の高速演算装置。
In each operation unit executed in the first process or the second process in the second step,
Two matrix product data or matrix product-sum data taken out in the order of the recognition number of each matrix product data or matrix product-sum data from the matrix product data or the set of matrix product-sum data as the target of the sum operation is summed The high-speed arithmetic device according to claim 2, wherein the high-speed arithmetic device is designated as an object of
前記第2のステップにおいて、
各動作ユニットは、和演算の対象に指定された2つの行列積データ又は行列積和データのいずれか一方を読み出したアドレス範囲を、演算結果の書き込み先のアドレス範囲に使用する
ことを特徴とする請求項3に記載の高速演算装置。
In the second step,
Each operation unit uses the address range from which one of the two matrix product data or matrix product-sum data specified as the target of the sum operation is read as the address range to which the operation result is written. The high-speed arithmetic device according to claim 3.
前記第2のステップにおける前記1つ目の処理で和演算の対象となる行列積データの総数が2のべき乗数と一致しない場合、
前記行列積データの集合を、前記総数を超えない最大の2のべき乗数で表される個数分の部分集合に処理範囲を分割し、その後、残りの行列積データの集合に対して、その総数を超えない最大の2のべき乗数で表される個数分の部分集合に処理範囲を分割する処理を、全ての行列積データがいずれかの部分集合に割り当てられるまで繰り返し、
生成された個々の部分集合を対象として、前記1つ目の処理及び前記2つ目の処理を適用し、
それぞれの部分集合についてそれぞれ1つの行列積和データが得られると、それらを対象として前記2つ目の処理を実行する
ことを特徴とする請求項4に記載の高速演算装置。
When the total number of matrix product data to be summed in the first process in the second step does not match the power of 2,
The processing range of the set of matrix product data is divided into a subset corresponding to the maximum number of powers of 2 that does not exceed the total number, and then the total number of matrix product data sets is set for the remaining set of matrix product data. Repeating the process of dividing the processing range into a subset of the maximum number of powers of 2 not exceeding until all matrix product data is assigned to any subset,
Applying the first process and the second process to each generated subset,
5. The high-speed computing device according to claim 4, wherein when one matrix product-sum data is obtained for each subset, the second processing is executed on the data. 5.
数値データの集合を保持する第1の記憶装置と、
演算結果を格納する第2の記憶装置と、
演算器と、数値データ及びそのアドレス情報を格納するキャッシュメモリと、前記記憶装置のアクセス可能領域を指定する第1のリストと、前記記憶装置のアクセス不可領域を指定する第2のリストを格納するリストメモリとをそれぞれが有する複数の演算装置と、
前記第1の記憶装置と、前記第2の記憶装置と、前記複数の演算装置とを相互に接続するバスとを有し、
前記演算装置を特定することなく発生される動作ユニットの少なくとも一部が、
処理対象として前記第1の記憶装置から読み出す数値データのアドレス範囲と、
演算結果を書き込むアドレス範囲と、
読み出された数値データに対する演算動作を指定する処理内容と、
数値データの読み出し又は書き込み先を与えるアドレス範囲を、前記アクセス不可領域として他の演算装置に通知させる処理と、
読み出し又は書き込みの終了を他の演算装置に通知して前記第2のリストから削除させる処理と
を記述内容として有する
ことを特徴とする双極子相互作用の高速演算装置。
A first storage device for holding a set of numerical data;
A second storage device for storing a calculation result;
An arithmetic unit, a cache memory that stores numerical data and address information thereof, a first list that specifies an accessible area of the storage device, and a second list that specifies an inaccessible area of the storage device are stored. A plurality of arithmetic units each having a list memory;
A bus that interconnects the first storage device, the second storage device, and the plurality of arithmetic devices;
At least some of the operation units that are generated without specifying the computing device are:
An address range of numerical data to be read from the first storage device as a processing target;
Address range to write the calculation result,
Processing contents to specify the operation for the read numerical data,
A process of notifying other arithmetic devices of the address range giving the reading or writing destination of numerical data as the inaccessible area;
A dipole interaction high-speed arithmetic device comprising: a process of notifying the other arithmetic device of the end of reading or writing and deleting it from the second list.
双極子−双極子行列データ及び磁化ベクトルデータの集合を保持する第1の記憶装置と、演算結果を格納する第2の記憶装置と、演算器と、数値データ及びそのアドレス情報を格納するキャッシュメモリと、前記第1の記憶装置のアクセス可能領域を指定する第1のリストと、前記第2の記憶装置のアクセス不可領域を指定する第2のリストを格納するリストメモリとをそれぞれが有する複数の演算装置と、前記第1の記憶装置と、前記第2の記憶装置と、前記複数の演算装置とを相互に接続するバスを有する高速演算装置において実行される双極子相互作用の高速演算方法であって、
双極子−双極子行列データと磁化ベクトルデータとの行列積演算を実行する第1のステップにおいて、
前記複数の演算装置のそれぞれが、独立かつ並列に、
演算装置を特定することなく事前に発生された複数の動作ユニットのうちの一つを読み込んで、当該動作ユニットに記述された磁化ベクトルデータのアドレス範囲と双極子−双極子行列データのアドレス範囲を前記第1のリストに追加すると共に、次に当該2つのアドレス範囲に基づいて演算対象としての磁化ベクトルデータと双極子−双極子行列データを前記第1の記憶装置から読み出して前記キャッシュメモリに書き込み、次に書き込まれた磁化ベクトルデータと双極子−双極子行列データの積演算を前記演算器で実行し、その演算結果である行列積データを動作ユニットで指定された前記第2の記憶装置のアドレス範囲に書き込む処理動作を実行し、
算出された前記行列積データの和演算を実行する第2のステップにおいて、
前記複数の演算装置のそれぞれが、独立かつ並列に、
1つ目の処理として、前記第1のステップによって算出された行列積データの集合に基づいて、全ての行列積データ対間で要素の重複が排除されるように行列積データ対の個数分だけ発生される動作ユニットの一つを読み込み、当該動作ユニットによる数値データの読み書きが終了するまでの間、数値データの読み書きを行うアドレス範囲を前記アクセス不可アドレスとして他の全ての動作ユニットに通知し、次に動作ユニットで指定された行列積データ対を構成する2つの行列積データの各アドレス範囲を前記第1のリストに追加すると共に、次に指定された行列積データ対を構成する行列積データを前記第2の記憶装置の各アドレス範囲から読み出して前記キャッシュメモリに書き込み、次に書き込まれた2つの行列積データの和演算を前記演算器で実行し、その演算結果である行列積和データを動作ユニットで指定された前記第2の記憶装置のアドレス範囲に書き込む動作を実行し、
引き続き2つ目の処理として、算出された行列積和データの集合に基づいて、全ての行列積和データ対間で要素の重複が排除されるように行列積和データ対の個数分だけ発生される動作ユニットのうちの一つを読み込み、当該動作ユニットで指定された行列積和データ対を構成する2つの行列積和データの各アドレス範囲を前記第1のリストに追加すると共に、当該動作ユニットによる演算結果の書き込み動作が終了するまでの間、演算結果の書き込み先を与える1つのアドレス範囲を他の全ての動作ユニットに対して前記第2のリストに書き込むように通知し、次に指定された行列積和データ対を構成する行列積和データを前記第2の記憶装置の各アドレス範囲から読み出して前記キャッシュメモリに書き込み、次に書き込まれた2つの行列積和データの和演算を前記演算器で実行し、その演算結果である行列積和データを動作ユニットで指定された前記第2の記憶装置のアドレス範囲に書き込む動作を実行し、
以後、前記2つ目の処理を、演算結果が1つの行列積和データに統合されるまで繰り返し実行する
ことを特徴とする双極子相互作用の高速演算方法。
A first storage device that holds a set of dipole-dipole matrix data and magnetization vector data, a second storage device that stores operation results, an arithmetic unit, and a cache memory that stores numerical data and address information thereof And a plurality of list memories each storing a first list that designates an accessible area of the first storage device and a second list that designates an inaccessible area of the second storage device A dipole interaction high-speed calculation method executed in a high-speed calculation device having a bus that interconnects the calculation device, the first storage device, the second storage device, and the plurality of calculation devices There,
In a first step of performing a matrix product operation of dipole-dipole matrix data and magnetization vector data:
Each of the plurality of arithmetic devices is independent and in parallel,
Read one of a plurality of motion units generated in advance without specifying an arithmetic unit, and determine the address range of magnetization vector data and the address range of dipole-dipole matrix data described in the motion unit. In addition to adding to the first list, next, magnetization vector data and dipole-dipole matrix data as operation targets are read from the first storage device and written to the cache memory based on the two address ranges. The product operation of the next written magnetization vector data and dipole-dipole matrix data is executed by the computing unit, and the matrix product data as the result of the computation is stored in the second storage device designated by the operation unit. Execute the processing operation that writes to the address range,
In a second step of performing a sum operation of the calculated matrix product data,
Each of the plurality of arithmetic devices is independent and in parallel,
As the first process, based on the set of matrix product data calculated in the first step, as many as the number of matrix product data pairs so as to eliminate duplication of elements between all matrix product data pairs. Read one of the generated operation units, and notify all other operation units as the inaccessible address of the address range for reading and writing numerical data until the reading and writing of numerical data by the operation unit is completed, Next, each address range of two matrix product data constituting the matrix product data pair designated by the operation unit is added to the first list, and the matrix product data constituting the matrix product data pair designated next is added. Is read from each address range of the second storage device and written to the cache memory, and then the sum operation of the two matrix product data written is performed. Serial executed by the arithmetic unit, executes the operation to write the address range of the calculation result a is the matrix product sum data and the second storage device designated by the operation units,
Subsequently, as the second process, as many matrix product-sum data pairs as the number of matrix product-sum data pairs are generated based on the calculated set of matrix product-sum data so as to eliminate duplication of elements between all matrix product-sum data pairs. One of the operation units is read, and each address range of the two matrix product-sum data constituting the matrix product-sum data pair designated by the operation unit is added to the first list, and the operation unit Until the operation result writing operation by is completed, one address range giving the operation result write destination is notified to all other operation units to be written to the second list, and then specified. The matrix product-sum data constituting the matrix product-sum data pair is read from each address range of the second storage device, written to the cache memory, and then the two written rows Running sum operation of accumulator data in the operation unit performs the operation to write the address range of the operation of the matrix product sum data is the result specified by the operating unit the second storage device,
Thereafter, the second process is repeatedly executed until the calculation result is integrated into one matrix product-sum data.
JP2009066443A 2009-03-18 2009-03-18 High-speed computing device and computing method for dipole interaction Expired - Fee Related JP5202405B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009066443A JP5202405B2 (en) 2009-03-18 2009-03-18 High-speed computing device and computing method for dipole interaction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009066443A JP5202405B2 (en) 2009-03-18 2009-03-18 High-speed computing device and computing method for dipole interaction

Publications (2)

Publication Number Publication Date
JP2010218398A JP2010218398A (en) 2010-09-30
JP5202405B2 true JP5202405B2 (en) 2013-06-05

Family

ID=42977149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009066443A Expired - Fee Related JP5202405B2 (en) 2009-03-18 2009-03-18 High-speed computing device and computing method for dipole interaction

Country Status (1)

Country Link
JP (1) JP5202405B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08282745A (en) * 1995-04-19 1996-10-29 Mieko Kodama Method and tool for quantitatively taking out tablets
JPH10124479A (en) * 1996-10-24 1998-05-15 Sony Corp Analysis method of magnetization distribution
JP4037303B2 (en) * 2002-03-29 2008-01-23 富士通株式会社 Parallel processing method of eigenvalue problem for shared memory type scalar parallel computer.
JP2005100067A (en) * 2003-09-24 2005-04-14 Fujitsu Ltd Micro magnetization analysis program and analysis apparatus
JP2006251978A (en) * 2005-03-09 2006-09-21 Nec Corp Vector operation device and method
JP2007213384A (en) * 2006-02-10 2007-08-23 Fujitsu Ltd Micromagnetization analysis program, method and apparatus

Also Published As

Publication number Publication date
JP2010218398A (en) 2010-09-30

Similar Documents

Publication Publication Date Title
Wang et al. A massively parallel and scalable multi-GPU material point method
Zhou et al. Rethinking bottleneck structure for efficient mobile network design
KR102810851B1 (en) Vector reductions using shared scratchpad memory
US11921626B2 (en) Processing-in-memory and method and apparatus with memory access
US9632729B2 (en) Storage compute device with tiered memory processing
Finkbeiner et al. In-memory intelligence
US20140181387A1 (en) Hybrid cache
Ma et al. An area and energy efficient design of domain-wall memory-based deep convolutional neural networks using stochastic computing
Loh et al. Fast density-based clustering through dataset partition using graphics processing units
Coluccio et al. Hybrid-SIMD: A modular and reconfigurable approach to beyond von Neumann computing
Nakano Optimal parallel algorithms for computing the sum, the prefix-sums, and the summed area table on the memory machine models
US12298901B2 (en) Apparatus and method with register sharing
Zhou et al. FASTCF: FPGA-based accelerator for stochastic-gradient-descent-based collaborative filtering
JP5202405B2 (en) High-speed computing device and computing method for dipole interaction
Kaplan et al. From processing-in-memory to processing-in-storage
Nakano et al. The random address shift to reduce the memory access congestion on the discrete memory machine
US11379371B2 (en) Method and system with improved memory input and output speed
Xu et al. GPU accelerated image matching with cascade hashing
US20220171658A1 (en) Active scheduling method and computing apparatus
Kuzelewski et al. Application of CUDA for acceleration of calculations in boundary value problems solving using PIES
US12574204B2 (en) Highly-parallel hardware architecture for fully homomorphic encryption (FHE) and butterfly-like algorithms
Yavits et al. PRINS: resistive CAM processing in storage
US20260127119A1 (en) Memory controller for processing in memory and memory generation method using memory controller
US20250217274A1 (en) Method and apparatus with register file operator
CN119718251B (en) Data processing methods, apparatus, computer equipment and storage media

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110510

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130115

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: 20130122

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130212

R151 Written notification of patent or utility model registration

Ref document number: 5202405

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees