JP7133843B2 - Processing device, processing system, processing method, program, and recording medium - Google Patents
Processing device, processing system, processing method, program, and recording medium Download PDFInfo
- Publication number
- JP7133843B2 JP7133843B2 JP2018197597A JP2018197597A JP7133843B2 JP 7133843 B2 JP7133843 B2 JP 7133843B2 JP 2018197597 A JP2018197597 A JP 2018197597A JP 2018197597 A JP2018197597 A JP 2018197597A JP 7133843 B2 JP7133843 B2 JP 7133843B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cell
- particle
- particle data
- particles
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 137
- 238000003672 processing method Methods 0.000 title claims description 9
- 239000002245 particle Substances 0.000 claims description 428
- 230000015654 memory Effects 0.000 claims description 268
- 238000004364 calculation method Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 23
- 238000000034 method Methods 0.000 claims description 18
- 238000004088 simulation Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 9
- 230000007717 exclusion Effects 0.000 description 26
- 238000000329 molecular dynamics simulation Methods 0.000 description 6
- 238000005411 Van der Waals force Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000008030 elimination Effects 0.000 description 4
- 238000003379 elimination reaction Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000005381 potential energy Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000032823 cell division Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 229920002521 macromolecule Polymers 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 102000004169 proteins and genes Human genes 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 150000001413 amino acids Chemical class 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 150000002500 ions Chemical class 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Complex Calculations (AREA)
Description
本発明は、処理装置、処理システム、処理方法、プログラム、及び、記録媒体に関する。 The present invention relates to a processing device, a processing system, a processing method, a program, and a recording medium.
分子動力学シミュレーションを行うための専用計算機が知られており、専用計算機による種々のシミュレーション高速化手法が開発されている。例えば、巨大分子等を含むシミュレーション空間を複数のセルに分割して管理する手法が知られている(特許文献1)。しかし、従来の手法によってもシミュレーションの処理速度は必ずしも十分ではなく、更なる高速化が望まれている。一例として、従来の手法によると複数のセル間の粒子移動等の処理をソフトウエアにより行っており、オーバーヘッドが依然大きかった。
特許文献1 特開2006-236256号公報
Dedicated computers for conducting molecular dynamics simulations are known, and various simulation speed-up methods using dedicated computers have been developed. For example, there is known a method of dividing a simulation space containing macromolecules and the like into a plurality of cells for management (Patent Document 1). However, the simulation processing speed is not necessarily sufficient even with the conventional method, and further speeding up is desired. As an example, according to the conventional method, processing such as particle movement between a plurality of cells is performed by software, and the overhead is still large.
専用計算機を用いた粒子動力学シミュレーションの処理を高速化する装置等を提供することを課題とする。 An object of the present invention is to provide an apparatus and the like for speeding up the processing of particle dynamics simulation using a dedicated computer.
上記課題を解決するために、本発明の第1の態様においては、空間内に配置される複数の粒子のそれぞれの粒子データを記憶する粒子データメモリと、空間を分割した各セルのセル番号に対応付けて、粒子データメモリにおける、当該セル内の粒子の粒子データを格納するために割り当てられた記憶位置を示すセル情報を記憶するセル情報メモリと、空間を分割したセルに含まれる粒子の粒子データを、セル番号を指定してアクセスする処理ユニットと、セル番号を指定した粒子データへのアクセスを受けたことに応じて、指定されたセル番号に対応付けられたセル情報を用いて粒子データメモリにおけるアクセス対象の粒子データの記憶位置を特定するメモリコントローラとを備える処理装置、処理システム、プログラム、及び、記録媒体を提供する。 In order to solve the above-mentioned problems, in a first aspect of the present invention, a particle data memory for storing particle data of each of a plurality of particles arranged in a space and a cell number of each cell dividing the space are stored. In association with each other, a cell information memory for storing cell information indicating a storage position allocated for storing particle data of a particle in the cell in the particle data memory, and a particle of the particles contained in the cells into which the space is divided. A processing unit that accesses data by specifying a cell number, and particle data using cell information associated with the specified cell number in response to access to the particle data that specifies the cell number. A processing device, a processing system, a program, and a recording medium including a memory controller that identifies a storage location of particle data to be accessed in a memory are provided.
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。 It should be noted that the above summary of the invention does not list all the necessary features of the invention. Subcombinations of these feature groups can also be inventions.
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。 Hereinafter, the present invention will be described through embodiments of the invention, but the following embodiments do not limit the invention according to the claims. Also, not all combinations of features described in the embodiments are essential for the solution of the invention.
本実施形態の処理システムは、空間内に配置された複数の粒子の間に働く力を計算することで、空間内の粒子の運動をシミュレーションする。例えば、処理システムは、多数の原子を含む巨大分子等に生じる古典力学的な力やポテンシャルエネルギー等を、複数の処理ノードにより計算する。 The processing system of this embodiment simulates the movement of particles in space by calculating forces acting between a plurality of particles arranged in space. For example, the processing system uses a plurality of processing nodes to calculate classical mechanical forces, potential energies, and the like that occur in macromolecules containing a large number of atoms.
本実施形態において、複数の処理ノードの各々は、空間を複数の次元方向のそれぞれにおいて分割した分割空間を担当し、担当する分割空間内の力やポテンシャルエネルギーを計算する。処理システムが扱う空間は、シミュレーションさせる粒子が配置される空間(例えば、3次元空間)であり、予め定められた大きさの立体領域として定義される。 In this embodiment, each of the plurality of processing nodes takes charge of a divided space obtained by dividing the space in each of a plurality of dimensional directions, and calculates forces and potential energies in the divided space that it takes charge of. The space handled by the processing system is a space (for example, a three-dimensional space) in which particles to be simulated are arranged, and is defined as a three-dimensional region of a predetermined size.
粒子は、分子動力学シミュレーションの対象となる原子、原子群、分子、それらのイオン、又は電子であってよい。粒子には、質量、座標、速度、加速度、及び、電荷の1以上の数値が、粒子データとして付与されていてよい。分子動力学シミュレーションにおいて、粒子には複数の力が作用する。 The particles may be atoms, groups of atoms, molecules, their ions, or electrons that are the subject of molecular dynamics simulations. One or more numerical values of mass, coordinates, velocity, acceleration, and electric charge may be assigned to particles as particle data. In a molecular dynamics simulation, particles are subject to multiple forces.
例えば、粒子には、共有結合力、クーロン力、及び、ファンデルワールス力等が作用する。処理システムは、複数の処理ノードを用いて、複数の粒子に作用する力の計算と、複数の粒子の位置の更新と交互に繰り返し行ってよい。処理システムは、分子動力学シミュレーションに代えて、重力多体シミュレーションを行ってもよく、この場合は、粒子は天体等の大きな質量を有する質点となり、粒子に作用する力は重力等となる。 For example, covalent forces, Coulomb forces, Van der Waals forces, etc. act on particles. The processing system may use multiple processing nodes to repeatedly alternate between computing forces acting on multiple particles and updating the positions of multiple particles. The processing system may perform a gravitational many-body simulation instead of the molecular dynamics simulation. In this case, the particles are mass points having a large mass, such as celestial bodies, and the force acting on the particles is gravity.
図1は、本実施形態における空間の処理ノードによる分担の一例を示す。処理システムにおける複数の処理ノードの各々は、専用に設計された専用チップ(以下、単にチップともいう)により実装されてよい。例えば、図1に示すように、処理システムは8処理ノード(8チップ)×8処理ノード(8チップ)×8処理ノード(8チップ)の512処理ノード(512チップ)を備えてよい。そして、空間を512分割した分割空間のそれぞれの処理を、各処理ノード(各チップ)が担当してよい。 FIG. 1 shows an example of allocation of spatial processing nodes in this embodiment. Each of the plurality of processing nodes in the processing system may be implemented by a specially designed dedicated chip (hereinafter simply referred to as chip). For example, as shown in FIG. 1, a processing system may comprise 512 processing nodes (512 chips) of 8 processing nodes (8 chips) by 8 processing nodes (8 chips) by 8 processing nodes (8 chips). Then, each processing node (each chip) may be in charge of processing each divided space obtained by dividing the space into 512 spaces.
各処理ノードは、担当する分割空間に存在する粒子の力と位置の計算を担当してよい。複数の処理ノードはネットワークで相互接続されて、系全体の計算処理に必要な通信を行ってよい。複数の処理ノードは、ボードに搭載されてよい。例えば、8チップを搭載したボードを64台設けることで、512チップの処理システムを構築してよい。 Each processing node may be responsible for computing the forces and positions of particles in its responsible divided space. Multiple processing nodes may be interconnected by a network to provide the communications necessary for the computational processing of the entire system. Multiple processing nodes may be mounted on a board. For example, a 512-chip processing system may be constructed by providing 64 boards on which 8 chips are mounted.
図2は、本実施形態における分割空間のセル分割の一例を示す。処理システムは、セルインデックス法を用いて、複数のセルに分割された空間を管理してよい。セルは、各処理ノードが管理する分割空間を更に分割した空間であってよい。例えば、図示するように、処理ノードは、担当する分割空間を2×2×2=8セルに分割して管理してよい。これにより、処理システムは、空間内の電荷や電位を、粒子単位ではなくセル単位で少なくとも部分的に管理し、計算効率を高めることができる。 FIG. 2 shows an example of cell division of a divided space in this embodiment. The processing system may use a cell index method to manage the space divided into multiple cells. A cell may be a space obtained by further dividing a divided space managed by each processing node. For example, as illustrated, the processing node may divide the divided space it is in charge of into 2×2×2=8 cells and manage them. This allows the processing system to manage, at least in part, the charge or potential in the space on a cell-by-cell basis rather than a particle-by-particle basis, increasing computational efficiency.
一例として、処理システムは、100~100万原子を有する分子又は分子群の動力学シミュレーションを実行してよい。セルの一辺は1~100nmの範囲であってよい。 As an example, the processing system may perform dynamics simulations of molecules or groups of molecules having 1-1 million atoms. A cell side may range from 1 to 100 nm.
図3は、本実施形態における処理装置10のブロック図を示す。処理システムにおける処理ノード(及びチップ)は、図3に示す処理装置10により実現されてよい。処理装置10は、メモリ100、処理ユニット200、メモリコントローラ300、ネットワークインタフェース400、及び、コンボリューションユニット600を有する。
FIG. 3 shows a block diagram of the
メモリ100は、粒子データ、及び、粒子データのメモリ100内の記憶位置に関する情報等を記憶する。メモリ100は、粒子データメモリ110、セル情報メモリ120、メモリブロック情報メモリ130、マスクパターンメモリ140、及び、マスクテーブルメモリ150を含む。
The
粒子データメモリ110、セル情報メモリ120、メモリブロック情報メモリ130、マスクパターンメモリ140、及び、マスクテーブルメモリ150は、単一の物理メモリにより実装されてよく、又は、複数の物理メモリにより実装されてもよい。
粒子データメモリ110は、空間内に配置される複数の粒子のそれぞれの粒子データを記憶する。粒子データは、粒子の物理状態を示すデータであってよい。例えば、粒子データメモリ110は、複数の粒子について、粒子番号、座標、質量、及び、電荷の情報を粒子データとして記憶してよい。粒子番号は、粒子が属するセル内における相対的な番号を含んでよい。これに加えて/代えて、粒子番号は、空間内における絶対的な番号を含んでよい。
粒子データメモリ110は、複数の粒子について、更に速度、及び/又は、加速度等の情報を粒子データとして記憶してもよい。また、粒子データは、後述するマスクパターン識別情報を含んでよい。また、粒子データは、後述するアトリビュートを含んでよい。更に、粒子データメモリ110は、粒子以外のデータを記憶してもよい。
The
セル情報メモリ120は、処理装置10が担当する各セルのセル番号に対応付けて、粒子データメモリ110における、当該セル内の粒子の粒子データを格納するために割り当てられた記憶位置を示すセル情報を記憶する。例えば、セル情報は、各セルのセル番号に対応付けて、粒子データメモリ110内の複数のメモリブロックを示すものであってよい。一例として、セル情報は、セル番号を粒子データメモリ110内のアドレスに変換するアドレス変換テーブルであってよい。
The
これにより、対象粒子のセル番号とセル内の粒子番号とを指定することで、粒子データメモリ110の対象粒子の粒子データを格納する記憶位置が取得可能になる。セル情報メモリ120は、セル中の粒子数をセル情報として記憶してよい。また、セル情報は、後述するアトリビュートを含んでよい。
Thus, by designating the cell number of the target particle and the particle number within the cell, it is possible to acquire the storage position of the
メモリブロック情報メモリ130は、粒子データメモリ110内における、使用済みのメモリブロックまたは未使用のメモリブロックを管理するためのメモリブロック情報を記憶する。例えば、メモリブロック情報メモリ130は、粒子データメモリ110のメモリブロックに対応するアドレスと、使用/未使用を示すインジケータとの組をメモリブロック情報として記憶してよい。
The memory
マスクパターンメモリ140は、計算対象の粒子に働く力及び/又はポテンシャルの計算において、他の粒子のそれぞれを高排除および低排除の少なくとも一方の対象とすべきか否かを指定する複数のマスクパターンを記憶する。例えば、分子中における隣り合う原子同士は共有結合で結合するが、このような原子間のクーロン力、ファンデルワールス力等の効果は、共有結合に取り込まれている場合がある。
The
このような場合に、処理装置10は、隣接原子同士に作用するクーロン力等の効果をマスクパターンにより排除し、同一の力が実質的に二重に考慮されないようにする。ここで、クーロン力、ファンデルワールス力等の効果の排除は、高い水準(例えば、完全に排除)で行ってよく(「高排除」の指定)、又は、これよりも低い水準(例えば、一部のみ排除)で行ってもよく(「低排除」の指定)、いずれを行うかはマスクパターンにより指定されてよい。
In such cases,
各粒子がどのマスクパターンを使用するかは、粒子データメモリ110に格納される粒子データ中のマスクパターン識別情報で識別されてよい。マスクパターンの詳細は後述する。
Which mask pattern each particle uses may be identified by mask pattern identification information in the particle data stored in
マスクテーブルメモリ150は、計算対象の2以上の粒子と、他の2以上の粒子との間で高排除および低排除の少なくとも一方を指定するマスクテーブルを記憶する。マスクパターンメモリ140が記憶するマスクパターンによれば、粒子番号が比較的近い粒子間の力の排除を考慮することができるが、環状分子中の隣接原子や巨大タンパク質中でジスルフィド結合する原子間等、空間的には近接するが粒子番号が離れた粒子間の力の排除を考慮できない場合がある。
The
そこで、処理装置10は、マスクテーブルメモリ150により、粒子番号が離れた複数の粒子又は粒子群間の高排除及び低排除などの指定を個別に記憶し、空間的には近接するが粒子番号が離れた粒子間の力の排除を考慮することができる。マスクテーブルの詳細は後述する。
Therefore, the
処理ユニット200は、空間内に配置される複数の粒子のそれぞれについて、他の各粒子から働く力及び電位を計算し、粒子の位置を計算、更新する。処理ユニット200は、当該計算を複数種類の演算回路に分担して実行してよい。例えば、処理ユニット200は、複数のパイプライン210、複数のコア220、及び、長距離ユニット230を含んでよい。処理ユニット200は、必要に応じて、汎用プロセッサ、ローカルメモリ、その他の回路等を含んでよい。
The
複数のパイプライン210は、協働して複数の粒子間に働く力及び/又はポテンシャルの一部を計算する。例えば、複数のパイプライン210は、協働して粒子間に作用する短距離のクーロン力、及び、粒子間に作用するファンデルワールス力を計算する。ここで、短距離のクーロン力とは、1つのセル及び近傍セルの空間内で作用するクーロン力であってよい。なお、以降の説明では「短距離のクーロン力及び/又はファンデルワールス力、及び/又はこれらのポテンシャル」を「短距離クーロン力等」ともいう。
複数のパイプライン210は、マスクパターンメモリ140に格納されるマスクパターンを利用して、一部の粒子間の短距離クーロン力等の計算を省略してよい。例えば、「高排除」が全部排除を意味する場合、複数のパイプライン210は、「高排除」と指定される粒子間の短距離クーロン力等の計算を行わないか、これらの計算結果を0としてよい。例えば、「高排除」が一部の排除を意味する場合、複数のパイプライン210は、「高排除」と指定される粒子間の短距離クーロン力等の計算に所定の係数を乗じてよい。
また、複数のパイプライン210は、マスクパターンメモリ140に格納されるマスクパターンを利用して、一部の粒子間の短距離クーロン力等を減殺してよい。例えば、複数のパイプライン210は、「低排除」と指定される粒子間の短距離クーロン力等の計算に「高排除」に用いた係数よりも大きい所定の係数(例えば、1/2又は1/4)を乗じてよい。例えば、処理ユニット200は8個のパイプライン210を含んでよい。
The plurality of
コア220は、複数の粒子間に働く力の他の一部を計算する。例えば、コア220は、共有結合力を計算する。コア220は、SRAM等の専用メモリを命令メモリ等の用途で有してもよい。
コア220は、各粒子に作用する力を統合し、統合された力及び質量から各粒子の加速度及び速度を計算し、更に次のシミュレーション時刻における各粒子の位置(例えば、3次元座標)を計算してよい。ここで、コア220は、自身が計算する共有結合力、複数のパイプライン210が計算する短距離クーロン力等に加えて、後述するコンボリューションユニット600が計算する長距離クーロン力を統合してよい。また、コア220は、各粒子の電位を計算してよい。
The
複数のコア220は、処理装置10が担当するセルを分担してよい。例えば、処理ユニット200は、8個のコア220を含んでよく、各コアが図2に示す空間における1又は複数のセルの処理を担当してよい。複数のコアが1セルの処理を担当してもよい。例えば、あるコア220が図2のセルAに含まれる粒子に作用する力及び粒子の位置の計算を行い、別のあるコア220が図2のセルBに含まれる粒子に作用する力及び粒子の位置の計算を行いよい。また、処理ユニット200は、各セルを担当するコア220に加えて、パイプライン210制御用のコア220を別途含んでよい。
A plurality of
処理ユニット200のパイプライン210及びコア220は、メモリコントローラ300を介して、粒子データメモリ110に記憶された粒子データにアクセスする。処理ユニット200は、空間を分割したセルに含まれる粒子の粒子データを、セル番号を指定してアクセスしてよい。
例えば、コア220は、メモリコントローラ300を介して、粒子データメモリ110に記憶された粒子データに書き込みを行ってよい。一例として、コア220は、セル番号およびセル内の粒子番号を指定して粒子データに対する書き込みを要求する書込要求をメモリコントローラ300へと送信してよい。
For example,
また、コア220は、粒子の位置の更新(例えば、粒子のセル間の移動)に伴い、メモリコントローラ300を介して、指定したセル番号のセルに粒子を追加してよい。例えば、コア220は、指定したセル番号のセルに粒子を追加することを指示する追加要求をメモリコントローラ300へと送信してよい。なお、コア220は、ハードウェアにより実現されてよく、又は、ソフトウエア(すなわちプログラム)により実現されてもよい。後者の場合、ソフトウエア(プログラム)は、記録媒体(例えば、揮発性又は不揮発性メモリ)に記録されてよい。
In addition, the
長距離ユニット230は、粒子間に働く力のうち処理ユニット200で計算されないものを計算する。例えば、長距離ユニット230は、コンボリューションユニット600と協働して粒子間に作用する長距離クーロン力を計算する。一例として、長距離ユニット230は、空間内に設けた格子点のうち処理装置10が担当する分割空間に含まれる格子点にアサインされた複数の粒子の電荷から、担当する分割空間内に含まれる格子点の電荷を補間演算により算出してよい。また、格子点の電位から粒子位置の力とポテンシャルエネルギーを補間演算により算出してよい。長距離ユニット230の動作の詳細については、後述する。
The
メモリコントローラ300は、処理ユニット200からの、メモリ100に記憶された粒子データ等へのアクセスを仲介する。メモリコントローラ300は、セル番号を指定した粒子データへのアクセスを受けたことに応じて、指定されたセル番号に対応付けられたセル情報を用いて粒子データメモリ110におけるアクセス対象の粒子データの記憶位置を特定する。例えば、メモリコントローラ300は、セル情報メモリ120のセル情報を参照することで、アクセス対象の粒子データの記憶位置を特定してよい。
また、メモリコントローラ300は、処理ユニット200からの要求に応じ、粒子データメモリ110の粒子データに書き込みしてよい。例えば、メモリコントローラ300は、処理ユニット200から書込要求を受け取ったことに応じて、粒子データメモリ110における、指定されたセル番号に対応付けられたセル情報および指定されたセル内の粒子番号によって示される記憶位置の粒子データに対して書込データを書き込んでよい。
The
また、メモリコントローラ300は、処理ユニット200からの要求に応じ、粒子データメモリ110に粒子データを追加してよい。例えば、メモリコントローラ300は、処理ユニット200から追加要求を受け取ったことに応じて、粒子データメモリ110における、指定されたセル番号に対応付けられたセル情報によって示される記憶位置に、当該粒子の粒子データを追加してよい。
The
また、メモリコントローラ300は、セルに粒子データメモリ110の未使用のメモリブロックを割り当ててよい。例えば、メモリコントローラ300は、セルにメモリブロックを割り当てる場合に、メモリブロック情報メモリ130に格納されたメモリブロック情報を用いて、粒子データメモリ110が使用できるメモリブロックのうち未使用のメモリブロックを選択してよい。なお、粒子データメモリ110が粒子以外のデータを記憶する場合、メモリコントローラ300は、粒子以外のデータを記憶するメモリブロックをセルへの割り当てから除外してよい。
さらに、メモリコントローラ300は、複数の処理ユニットから同一セルに対して競合する処理を実行してよい。例えば、メモリコントローラ300は、複数の処理ユニットから同一セルに対して競合する複数の追加要求を受信した場合に、複数の追加要求のそれぞれをアトミックに処理してよい。
In addition,
ネットワークインタフェース400は、処理装置10と外部(例えば、他の処理装置10)との通信を仲介する。これにより、処理装置10は、自身が担当しない担当外セルを担当する他の処理装置10と通信し、担当外セル中の粒子の粒子データ等を他の処理装置10から取得することができる。
The
コンボリューションユニット600は、粒子間に働く力のうち処理ユニット200で計算されないものを計算する。例えば、コンボリューションユニット600は、長距離ユニット230と協働して、粒子間に作用する長距離クーロン力を計算する。例えば、コンボリューションユニット600は、格子点の電荷から格子点の電位を畳み込み演算により算出し、長距離ユニット230に提供する。コンボリューションユニット600は、長距離クーロン力の計算量及び計算時間を削減するために、粒子の電荷を格子点上にアサインする手法を用いてよい。コンボリューションユニット600の動作の詳細については後述する。
The
例えば、コンボリューションユニット600は、空間内に設けた格子点のうち処理装置10が担当する分割空間に含まれる格子点にアサインされた複数の粒子の電荷から、担当する分割空間内に含まれる格子点の電位を畳み込み演算により算出してよい。複数の処理装置10におけるコンボリューションユニット600は、相互に通信して、各格子点の電荷に応じた値を複数の軸の各軸方向に順に畳み込んでいってよい。コンボリューションユニット600は、ハードウェアにより実現されてよく、又は、ソフトウエア(すなわちプログラム)により実現されてもよい。後者の場合、ソフトウエア(プログラム)は、記録媒体(例えば、揮発性又は不揮発性メモリ)に記録されてよい。コンボリューションユニット600の処理の詳細は後述する。
For example, the
このように、複数の処理装置10は、互いに通信しながら、パイプライン210及びコア220等の専用ハードウェアにより粒子に作用する力や粒子位置等を演算し、メモリ100の所定の記憶位置に演算結果を格納する。各粒子の記憶位置は、セル情報メモリ120等により管理されるので、粒子がセル間を移動した場合や粒子が追加された場合であっても、粒子データメモリ110を書き換えずに処理を完了することも可能である。
In this way, while communicating with each other, the plurality of
本実施形態によれば、メモリコントローラ300が処理ユニット200のメモリ100へのアクセスを管理するので、複数のパイプライン210やコア220間の同期をソフトウエアでとることなく、複数の粒子をセル上で管理することができる。また、本実施形態によれば、セル番号により、粒子データの読み出しが可能になるので、粒子がセル間を移動した場合であっても同じパイプラインコマンド及びネットワークコマンドを再利用することができる。
According to this embodiment, since the
図4は、本実施形態におけるメモリ100の記憶内容の一例を示す。図4には、最大64粒子を格納するセルAとセルDが示される。粒子データメモリ110は、多数のメモリブロック(以下、MBともいう)を有し、そのうちのメモリブロック1~メモリブロック4でセルAの64粒子の粒子データを記憶し得る。ここで、各メモリブロックは最大16粒子分の粒子データを記憶してよい。また、粒子データメモリ110は、メモリブロック16でセルDの最大16粒子分の粒子データを記憶してよい。
FIG. 4 shows an example of contents stored in the
セル情報メモリ120は、粒子データメモリ110における粒子の記憶位置をセル番号に対応づけて記憶する。例えば、セル情報メモリ120は、セルAに対応付けてメモリブロック1~4に対応するアドレス(例えば、メモリブロック1の先頭アドレス)をセル情報として記憶する。
The
これにより、セルAに属する粒子のうち1~16番目までのものは粒子データメモリ110のメモリブロック1に対応し、17~32番目までのものは粒子データメモリ110のメモリブロック2に対応し、33~48番目までのものは粒子データメモリ110のメモリブロック3に対応し、49~64番目までのものは粒子データメモリ110のメモリブロック4に対応することが示される。
Thus, the 1st to 16th particles belonging to the cell A correspond to the
ここで、粒子データメモリ110及びセル情報メモリ120は、二重化された粒子データを記憶してよい。例えば、粒子データメモリ110は、複数の粒子について現在のシミュレーション時刻の粒子データを記憶する第1領域と、当該複数の粒子について次の時刻の粒子データを記憶する第2領域とを備えてよい。そして、粒子の移動に伴って各セルに粒子の再配置を行う場合、第1領域において記憶位置が指定される粒子データを第2領域の記憶位置に再割り当てしてよい。
Here, the
ここで、セル情報メモリ120も、粒子データメモリ110の第1領域と第2領域に対応して、第1セット及び第2セットを有してよい。例えば、セル情報メモリ120は、複数のセルに対応付けた第1セットの複数のセル情報と、複数のセルに対応付けた第2セットの複数のセル情報とを記憶してよい。そして、空間内に複数の粒子の移動に伴って複数の粒子を各セルに再配置する処理において、処理ユニット200は、第1セットの複数のセル情報によって記憶位置が指定される各粒子の粒子データを、第2セットの複数のセル情報によって指定される記憶位置に再割当してよい。
Here, the
図4では、セル情報メモリ120の第1セットにおいて、セルAに属する現在の粒子データが粒子データメモリ110のMB1~4に記憶され、セルBに属する現在の粒子データが粒子データメモリ110のMB5~8に記憶されることが示される。また、セル情報メモリ120の第2セットにおいて、セルAに属する次時刻の粒子データが粒子データメモリ110のMB1'~4'に記憶され、セルBに属する次時刻の粒子データが粒子データメモリ110のMB5'~8'に記憶されることが示される。ここで、MB1'~4'はMB1~4と異なるブロックであり、MB5'~8'はMB5~8とは異なるブロックである。
4, in the first set of
セル情報メモリ120は、セル中の粒子数を記憶してよい。例えば、図示するようにセル情報メモリ120は、セルAの粒子数が11であり、セルBの粒子数が16であることを記憶する。メモリブロック情報メモリ130は、メモリブロック1、メモリブロック2等が使用済であるか、未使用であるかを示す。
図5から図7において、本実施形態におけるメモリ処理の例を示す。 5 to 7 show examples of memory processing in this embodiment.
図5は、メモリコントローラ300によるアトミックなセルへの粒子追加の例を示す。あるセルに粒子Aのみが含まれる場合を想定する。ここで、コア1(図3に示すコア220の1つに対応)が、メモリコントローラ300に粒子追加命令(Append命令)を送信する。これに応じて、メモリコントローラ300が粒子データメモリ110にアクセスして当該セルに新しい粒子Bを追加する。
FIG. 5 illustrates an example of atomic cell addition of particles by
また、コア2(図3に示すコア220の別の1つに対応)が、メモリコントローラ300に粒子追加命令(Append命令)を送信する。これに応じて、メモリコントローラ300が、粒子データメモリ110にアクセスして当該セルに新しい粒子Cを追加する。メモリコントローラ300は、このようなメモリアクセス処理を一度(アトミック)に行ってよい。
Core 2 (corresponding to another one of
このようにメモリコントローラ300が、メモリへの粒子の追加を制御する。各コアがメモリコントローラ300を介さず、それぞれでメモリにアクセスして粒子を追加した場合は、処理の競合が生じ得るが、本実施形態によればメモリコントローラ300により、そのような競合は避けられる。
The
図6は、メモリコントローラ300によるアトミックな演算処理の例を示す。あるセル(例えば、特定の粒子)に対して演算処理(例えば、複数種類の力の合算)を行う場合を想定する。ここで、処理ユニットのコア1(図3に示すコア220の1つに対応)が、予め定められたデータを演算により更新することを指示する更新要求(例えば、積算を指示するACCUM命令)を、メモリコントローラ300に送信する。更新要求を受け取ったことに応じて、メモリコントローラ300が粒子データメモリ110にアクセスして演算処理(例えば、A+B)を実行し、演算結果でデータを更新する。
FIG. 6 shows an example of atomic arithmetic processing by the
また、コア2(図3に示すコア220の別の1つに対応)が、メモリコントローラ300に更新要求(例えば、ACCUM命令)を送信する。これに応じて、メモリコントローラ300が粒子データメモリ110にアクセスして演算処理(A+B+C)を実行する。このような演算処理を一度(アトミック)に行ってよい。
Core 2 (corresponding to another one of
このようにメモリコントローラ300が、メモリ上での演算処理を制御する。各コアがメモリコントローラ300を介さず、それぞれでメモリに読出及び書込を行って演算した場合は、処理の競合が生じ得るが、本実施形態によればメモリコントローラ300により、そのような競合は避けられる。
Thus, the
図7は、メモリコントローラ300によるアトミックな積算処理の別の例を示す。メモリ100は、各粒子の粒子データが現シミュレーション時刻で更新されたか否かを示すアトリビュートを記憶してよい。例えば、アトリビュートは、複数の粒子のそれぞれに対応付けられて、各粒子の粒子データ中の予め定められたデータが現シミュレーション時刻に更新されたか否かを示すものであってよい。アトリビュートは、粒子データメモリ110が記憶する各粒子の粒子データ、及び、セル情報メモリ120が記憶する各粒子に対応するセル情報の少なくとも1つに保持されてよい。
FIG. 7 shows another example of atomic accumulation processing by
メモリコントローラ300は、一の粒子の粒子データ中における予め定められたデータがアクセスされたことに応じて、アトリビュートに基づいて、予め定められたデータに記録されている値を使用するか、初期値を使用するかを選択してよい。
In response to access to predetermined data in particle data of one particle, the
例えば、図7の例では、最初に、粒子データメモリ110において、対象粒子についてデータAとアトリビュートT-1が記憶されている。次の時刻Tで、コア1(図3に示すコア220の1つに対応)が、メモリコントローラ300に更新要求(例えば、ACCUM命令)を送信する。
For example, in the example of FIG. 7, data A and attribute T−1 are first stored in the
メモリコントローラ300は、更新要求を受け取ったことに応じて、予め定められたデータが現シミュレーション時刻に更新されている場合は予め定められたデータに記録されている値に対して演算を施して更新する。メモリコントローラ300は、予め定められたデータが現シミュレーション時刻に更新されていない場合は初期値に対して演算を施して予め定められたデータを更新する。
In response to receiving the update request, the
例えば、メモリコントローラ300が、対象粒子のアトリビュートT-1と現在の時刻Tとを比較し、一致しないと判断する。これに応じて、メモリコントローラ300は、粒子データメモリ110にアクセスして、対象粒子についてデータAを破棄し、ACCUM命令に含まれる初期値Bで更新する。メモリコントローラ300は、同時に対象粒子のアトリビュートをT-1からTに更新する。
For example, the
更にコア2(図3に示すコア220の別の1つに対応)が、メモリコントローラ300に更新要求(例えば、ACCUM命令)を送信する。メモリコントローラ300が、対象粒子のアトリビュートTと現在の時刻Tとを比較し、一致すると判断する。これに応じて、メモリコントローラ300は、対象粒子の記憶されているデータBを使用し、粒子データメモリ110にアクセスして積算処理(B+C)を実行する。
In addition, Core 2 (corresponding to another one of
図7に示した実施形態によれば、メモリコントローラ300がアトリビュートの値に応じて、演算結果を初期値(例えば、0)にする。各コア220がメモリ100にアクセスして積算処理(例えば、複数種類の力の合算)を行う場合、最初に、メモリ100にアクセスしたコア220が初期値0を書き込む必要があるが(0クリアともいう)、このような処理には時間がかかる。一方で、本実施形態によれば、メモリコントローラ300が0クリアをメモリに対して行う必要がなく、アトリビュートの値に応じて初期値を0にした積算処理を行うことができる。なお、アトリビュートは、粒子データメモリ110が粒子以外のデータを記憶する場合、粒子データだけでなく、当該粒子以外のデータにも適用してよい。
According to the embodiment shown in FIG. 7, the
図8から図12において、本実施形態における遠距離力(例えば、遠距離のクーロン力)の処理方法の例を示す。例えば、処理装置10は、(1)空間中の各粒子が有する電荷を、空間に設けられた比較的少数の格子点に近似的にアサインするチャージアサインを実行し、(2)格子点上の電位を計算する電位計算を実行し、(3)その後、格子点上の電位を元に各粒子への力を計算するパックインターポレーションを実行する。このような手法は、Particle Mesh Ewald(PME)としても知られている。本実施形態において、長距離ユニット230は(1)と(3)を実行し、コンボリューションユニット600は(2)を実行する。
FIGS. 8 to 12 show examples of methods for processing long-range forces (for example, long-range Coulomb forces) in this embodiment. For example, the processing device 10 (1) performs charge assignment that approximately assigns the charge of each particle in space to a relatively small number of grid points provided in the space, and (2) performs charge assignment on the grid points. Potential calculation is performed to calculate the potential, and (3) pack interpolation is then performed to calculate the force on each particle based on the potential on the lattice points. Such an approach is also known as Particle Mesh Ewald (PME). In this embodiment,
ここで、(2)電位計算は、格子電荷を含むポアソン方程式を解くことにより行われる。ポアソン方程式は、格子点の電荷値に格子点間の距離に応じた係数(カーネル)を乗じ、予め定められた範囲内の全ての格子点からの寄与を畳み込みにより加算することにより、解かれる。ここで、畳み込みは、密で近距離の畳み込みと、疎で長距離の畳み込みの結果を足し合わせることにより行ってよい。このような手法はMultilevel Summation Method(MSM:Skeel等、2002、Hardy等、2016)として知られている。 Here, (2) potential calculation is performed by solving Poisson's equation including lattice charges. The Poisson's equation is solved by multiplying the grid point charge value by a coefficient (kernel) that depends on the distance between grid points, and adding the contributions from all grid points within a predetermined range by convolution. Here, the convolution may be performed by adding together the results of a dense short-range convolution and a sparse long-range convolution. Such an approach is known as the Multilevel Summation Method (MSM: Skeel et al., 2002; Hardy et al., 2016).
図8は、MSMによる解法の一例を示す。以降の図では説明のため、2次元(2軸方向)に配列された格子点を図示するが、実際には3次元(3軸方向)に配列された格子点が用いられてよい。 FIG. 8 shows an example of the MSM solution. Although grid points arranged two-dimensionally (in two axial directions) are illustrated in subsequent drawings for explanation, grid points arranged three-dimensionally (in three axial directions) may actually be used.
図示するように、コンボリューションユニット600は、例えば、レベル1~3の3段階の粗密レベルで畳み込みを実行してもよい。対象となる格子点(図中、Tで示す)の電位を算出するのに、コンボリューションユニット600は、まず最も密なレベル1における近接格子点66からの対象格子点Tへの寄与を計算する。
As shown,
次にコンボリューションユニット600は、中間の粗密レベルのレベル2における近接格子点64からの対象格子点Tへの寄与を計算する。更にコンボリューションユニット600は、最も疎なレベル3における近接格子点62からの対象格子点Tへの寄与を計算する。コンボリューションユニット600は、これらのレベル1~3における寄与を合算することにより、対象格子点Tの電位を算出してよい。
The
レベル1~3のいずれかのレベルにおける格子点のそれぞれは、セルに対応するものであってよい。例えば、レベル3の各格子点は、各セルの中心点又は頂点に対応するものであってよい。また、例えば、レベル3の所定の個数の格子点(例えば、8個の格子点)は、セルごとに設けられてよい。
Each grid point in any one of
図9は、1つのレベルにおける畳み込み処理の概要を示す。この図の例では、各処理ノード(チップ)は、4個の格子点を担当する。格子点はセルに対応するものであってよい。一例として、1個の格子点は1個のセルに対応する。 FIG. 9 shows an overview of the convolution process at one level. In the example of this figure, each processing node (chip) is responsible for four lattice points. A grid point may correspond to a cell. As an example, one lattice point corresponds to one cell.
コンボリューションユニット600は、対象格子点Tから一方向にカットオフ範囲内(例えば隣接2個)の格子点までの電荷を考慮して畳み込みを行う。図9の例では、チップ5が担当する対象格子点Tの電位は、チップ1が担当する1個の隣接格子点、チップ2~4及びチップ7が担当する2個の隣接格子点、及び、チップ5~6及びチップ8~9が担当する4個の隣接格子点(対象格子点自身も含んでよい)の電荷の畳み込みに少なくとも部分的に基づいて決定する。
The
ここで、チップ5は、チップ1~4及びチップ6~9と個別に通信して各隣接格子点の電荷を取得してもよいが、その場合、演算時間よりも通信よるオーバーヘッドが処理時間のボトルネックとなる場合がある。そこで、本実施形態においては、格子点を軸方向に分離し、各軸における畳み込みを別個に行うことで、チップ間の通信時間を削減し、全体的な処理時間を減少させる。
Here, the
例えば、複数の処理ノードのコンボリューションユニット600は、複数の軸内における格子点間の距離に応じた係数を算出する関数を、複数の軸のそれぞれに分離したカーネル関数の組み合わせによって近似することにより、複数の軸における畳み込み演算を各軸方向の畳み込みに分離してよい。
For example, the
例えば、コンボリューションユニット600は、各軸について、
x'n=a-2xn-2+a-1xn-1+a0xn+a1xn+1+a2xn+2 …式1
を計算することで畳み込み演算を実行してよい。ここで、x'nは対象格子点Tにおける電位であり、a-2~a2は格子点間の距離に応じた係数であり、xn-2~xn+2は各格子点の電荷である。
For example,
x'n =a -2xn -2 +a -1xn -1 + a0xn + a1xn +1 + a2xn+2 Equation 1
A convolution operation may be performed by computing Here, x′ n is the potential at the target grid point T, a −2 to a 2 are coefficients according to the distance between the grid points, and x n−2 to x n+2 are the charges at each grid point. .
コンボリューションユニット600は、第1軸方向における予め定められた範囲の格子点を担当する他の処理ノード(チップ)から受信した電荷等の値に応じた値を担当する格子点に畳み込んでよい。例えば、コンボリューションユニット600は、図8に示すx方向と図9に示すy方向のそれぞれについて、他の処理ノード(チップ)から電荷等の値(例えば、xn-2~xn+2)を受信し、上記式1を計算することで対象格子点のx方向の寄与分及びy方向の寄与分を演算してよい。
The
また、コンボリューションユニット600は、自身の担当する格子点の電荷及び/又は自身の演算結果の情報を別のチップのコンボリューションユニット600に対して送信する。例えば、複数の処理ノード(チップ)のそれぞれのコンボリューションユニット600は、担当する格子点に割り当てられた電荷等の値を、複数の軸のうち第1軸方向における予め定められた範囲の格子点を担当する他の処理ノードに送信する。
Also, the
例えば、コンボリューションユニット600は、電荷及び/又は演算結果を、各軸方向に必要な範囲までに存在するコンボリューションユニット600に対して、マルチキャストする。一例として、コンボリューションユニット600は、電荷等をy方向及び/又はz方向に1又は複数チップ分隣接するコンボリューションユニット600にマルチキャストしてよい。
For example, the
コンボリューションユニット600は、予め定められた範囲の格子点を担当する他の処理ユニットからの受信回数が、予め定められた数に達したことに応じて第1軸方向における畳み込みの終了を判定してよい。例えば、図10におけるチップ5のコンボリューションユニット600は、チップ4から1回電荷を受信し、チップ6から2回電荷を受信したこと(すなわち、計3回の電荷の受信)に応じて、X方向における畳み込みの終了を判定してよい。同様に図11におけるチップ5のコンボリューションユニット600は、チップ2から1回電荷を受信し、チップ8から2回電荷を受信したこと(すなわち、計3回の電荷の受信)に応じて、Y方向における畳み込みの終了を判定してよい。
The
そして、コンボリューションユニット600は、複数の粗密レベルで演算した畳み込み結果に基づいて、各格子点の電位を計算してよい。例えば、コンボリューションユニット600は、図9~図11に基づいて説明した手法により、複数の処理ノードのコンボリューションユニット600は、空間を第1単位で分割した各第1格子点(例えば、図8のレベル1に示す格子点)にアサインされた電荷を各第1格子点から第1範囲内で畳み込んでよい。
The
第1格子点の電荷を集計することで、コンボリューションユニット600は、空間を第1単位よりも大きな第2単位で分割した各第2格子点(例えば、図8のレベル2に示す格子点)にアサインされた電荷を、算出してよい。
By aggregating the charges of the first grid points, the
そして、コンボリューションユニット600は、算出した電荷から第2格子点の電位を算出し、第2格子点で求めた電位から第1範囲内で畳み込むことで、各第1格子点の電位を算出してよい。コンボリューションユニット600は、更に空間を第2単位よりも大きな第3単位で分割した各第3格子点(例えば、図8のレベル3に示す格子点)にアサインされた電荷を算出し、各第3格子点の電位を算出し、これらを更に用いて、各第1格子点の電位を算出してよい。
Then, the
複数の粗密レベルで演算した畳み込み結果の統合は、コンボリューションユニット600とは別個のハードウェアにより実現してもよい。例えば、処理システム又は処理装置10は、FPGA等の専用回路を別途有し、当該専用回路で畳み込み結果の統合を行ってもよい。
Integration of convolution results calculated at multiple coarse and fine levels may be realized by hardware separate from the
図12は、3レベルにおいて実行されるコンボリューションユニット600による電位演算の一例を示す。図示する通り、64格子点×64格子点×64格子点における電荷(643電荷)に基づいて、より大きな単位の32格子点×32格子点×32格子点における電荷(323電荷)が演算される。また、323電荷に基づいて更に大きい単位の16格子点×16格子点×16格子点における電荷(163電荷)が演算される。
FIG. 12 shows an example of potential computation by
そして、163電荷から同格子点における電位(163電位)が演算される。163電位及び323電荷に基づいて32格子点×32格子点×32格子点における電位(323電位)が演算される。更に323電位及び643電荷に基づいて64格子点×64格子点×64格子点における電位(643電位)が演算される。 Then, the potential ( 163 potential) at the same lattice point is calculated from the 1633 charge. Based on the 16 3 potentials and 32 3 charges, potentials (32 3 potentials) at 32 grid points x 32 grid points x 32 grid points are calculated. Further, based on the 32 3 potentials and 64 3 charges, potentials (64 3 potentials) at 64 grid points x 64 grid points x 64 grid points are calculated.
本実施形態によれば、各レベルの各軸方向において、畳み込み演算は順不同に実行でき、各格子点の演算の終了は受信したデータ個数で判断できる。また、コンボリューションユニット600は、演算に必要な前の軸方向のデータが揃うまで次の演算を実行しなくてよいので、同期処理を必要とせず、状態を自動的に遷移させることができる。
According to this embodiment, in each axis direction of each level, the convolution operation can be executed in random order, and the end of the operation of each lattice point can be determined by the number of received data. In addition, the
また、本実施形態によれば、MSMに必要な格子レベルの上下を繋げる補完演算も一つのハードウェア(すなわちコンボリューションユニット600)により実現される。本実施形態によれば、FFTによりポアソン方程式を解く場合と比較して、処理ノード間の通信量を低減することで、全体的な処理時間を削減することができる。 Further, according to the present embodiment, a complementary operation for connecting upper and lower lattice levels required for MSM is also realized by one piece of hardware (that is, the convolution unit 600). According to the present embodiment, compared with the case of solving Poisson's equation by FFT, by reducing the amount of communication between processing nodes, it is possible to reduce the overall processing time.
図13から図16Bを用いて、本実施形態における排除粒子機能の例を示す。 13 to 16B are used to illustrate an example of the excluded particle function in this embodiment.
図13は、排除粒子機能に用いられるマスクパターンの一例を示す。マスクパターンメモリ140に記憶された複数のマスクパターンのそれぞれは、計算対象の粒子の粒子番号に対して予め定められた相対粒子番号を有する他の粒子のそれぞれを高排除および低排除の少なくとも一方の対象とすべきか否かを指定する。例えば、図13では、短距離クーロン力等の計算において、粒子番号i=1の粒子が、別の粒子(粒子番号j=2、3、4…)を高排除又は低排除の対象とするかを表すマスクパターンを示している。
FIG. 13 shows an example of a mask pattern used for the excluded particles function. Each of the plurality of mask patterns stored in the
図13のマスクパターンは「000110…」の値を有している。ここで「0」は排除の対象としないことを表し、「1」は排除の対象とすることを表す。また、マスクパターンは別の粒子に対し、高排除と低排除の両方についての指定を含んでいる。例えば、当該マスクパターンは、粒子番号1の粒子が、粒子番号2の粒子に対して、マスク値「00」を有する。これは、粒子番号1の粒子は、粒子番号2の粒子を、低排除及び高排除の対象にしないことを示す。
The mask pattern in FIG. 13 has values of "000110...". Here, "0" indicates not to be excluded, and "1" indicates to be excluded. The mask pattern also contains both high and low rejection designations for different particles. For example, in the mask pattern, particles with
また、例えば、当該マスクパターンは、粒子番号1の粒子が、粒子番号3の粒子に対して、マスク値「01」を有する。これは、粒子番号1の粒子は、粒子番号3の粒子を、低排除の対象にすることを示す。同様に、当該マスクパターンは、粒子番号1の粒子が、粒子番号4の粒子に対して、マスク値「10」を有する。これは、粒子番号1の粒子は、粒子番号4の粒子を、高排除の対象にすることを示す。
Also, for example, in the mask pattern, particles with
このマスクパターンの値に基づいて、処理ユニット200のパイプライン210は、短距離クーロン力等の計算の一部を省略してよい。例えば、パイプライン210は、図13のマスクパターンの値に基づいて、粒子番号1の粒子と粒子番号2の粒子間の短距離クーロン力等を計算し、粒子番号1の粒子と粒子番号3の粒子間の短距離クーロン力等を計算した結果を低排除所定の割合で減殺し、粒子番号1の粒子と粒子番号4の粒子間の短距離クーロン力等を高排除所定の割合で減殺してよい、例えば、高排除が全部排除を意味する場合、短距離クーロン力等を計算しないでよい(又はこれらの力等を0としてよい)。
Based on the value of this mask pattern,
ここで、粒子間の相互作用を高い精度でシミュレーションしようとすると、全ての粒子ペア間のマスクパターンを保持することになる。しかし、全ての粒子ペアのマスクパターンを保持することは、メモリ容量やマスク幅の制約から難しい場合がある。一方でマスクパターンに頼らず個別に粒子間の高排除/低排除/非排除を考慮した力の演算を個別に行うと計算時間が増大する問題が生じていた。 Here, when attempting to simulate interactions between particles with high accuracy, mask patterns between all particle pairs are retained. However, it may be difficult to hold mask patterns for all particle pairs due to restrictions on memory capacity and mask width. On the other hand, there is a problem that the calculation time increases if the force is individually calculated considering high exclusion/low exclusion/non-exclusion between particles without relying on the mask pattern.
ここで、本発明者らは、分子動力学シミュレーションの対象となる巨大タンパク質等は、所定構造のアミノ酸の繰り返し等、同一/類似する部分構造が多く出現することに着目した。従って、粒子に適用すべきマスクパターンも同様のものが多く出現することになる。そこで、本実施形態によれば、マスクパターンを限られた数のパターンに限定する代わりに、マスク幅を大きくし、これにより、短距離クーロン力等のより効率的な排除を実現した。本実施形態では、限られた数のマスクパターンを指定するためにマスクパターン識別情報を用いる。 Here, the present inventors paid attention to the fact that many identical/similar partial structures, such as repeated amino acids of a given structure, appear in large proteins and the like that are objects of molecular dynamics simulations. Therefore, many similar mask patterns to be applied to particles appear. Therefore, according to the present embodiment, instead of limiting the number of mask patterns to a limited number, the mask width is increased, thereby achieving more efficient elimination of the short-range Coulomb force and the like. In this embodiment, mask pattern identification information is used to designate a limited number of mask patterns.
図14は、本実施形態におけるマスクパターン識別情報の一例を示す。マスクパターン識別情報は、複数の粒子のそれぞれについて、複数のマスクパターンのうち各粒子に働く力の計算において使用するマスクパターンを識別する。粒子データメモリ110は、粒子データの一部として、図14に示すようなマスクパターン識別情報を記憶してよい。
FIG. 14 shows an example of mask pattern identification information in this embodiment. The mask pattern identification information identifies, for each of the plurality of particles, a mask pattern to be used in calculation of the force acting on each particle among the plurality of mask patterns. The
例えば図示するように、粒子番号1の粒子の粒子データは、パターン番号1023をマスクパターン識別情報として含む。この場合、粒子番号1の粒子は、パターン番号1023で指定されるマスクパターンを使用することが示される。同様に粒子番号2の粒子の粒子データは、パターン番号442をマスクパターン識別情報として含む。この場合、粒子番号2の粒子は、パターン番号442で指定されるマスクパターンを使用することが示される。
For example, as illustrated, the particle data of the particle with
図15は、本実施形態において用いられるマスクパターンの一例を示す。複数のマスクパターンのそれぞれは、予め定められた長さのマスクビット列と、マスクビット列のうち計算対象の粒子に働く計算における高排除すべき他の粒子の指定および低排除すべき他の粒子の指定に割り当てるビット数を設定するための設定値とを含む。 FIG. 15 shows an example of mask patterns used in this embodiment. Each of the plurality of mask patterns includes a mask bit string of a predetermined length, designation of other particles to be highly excluded and other particles to be low-excluded in the calculation acting on the particle to be calculated in the mask bit string. and a setting value for setting the number of bits to allocate to .
例えば、図15に示すマスクパターンは、77ビットのビット長さを有し、72ビットのマスクビット列と、5ビットの設定値とを含む。5ビットの設定値は、0~31までの指定値を指定できる。当該指定値により、72ビットのマスクビット列を、8~40ビットの第1マスクと、32~64ビットの第2マスクとに分割する。例えば、設定値が10であれば、72ビットのマスクビット列を、18ビットの第1マスクと54ビットの第2マスクに分割する。 For example, the mask pattern shown in FIG. 15 has a bit length of 77 bits and includes a 72-bit mask bit string and a 5-bit setting value. The 5-bit setting value can specify a specified value from 0 to 31. The specified value divides the 72-bit mask bit string into a first mask of 8-40 bits and a second mask of 32-64 bits. For example, if the set value is 10, the 72-bit mask bit string is divided into a first mask of 18 bits and a second mask of 54 bits.
第1マスクは、計算対象の粒子に働く力等の計算における高排除すべき他の粒子の指定に用いられる。例えば、粒子番号1の粒子に対して、「0101…」の第1マスクを使用する場合、粒子番号1の粒子と粒子番号3の粒子間の短距離クーロン力等、及び、粒子番号1の粒子と粒子番号5の粒子間の短距離クーロン力等は高排除所定の割合で減殺されてよい。高排除が全部排除を意味する場合、短距離クーロン力等を計算しないでよい(又はこれらの力等を0としてよい)。
The first mask is used to designate other particles to be highly excluded in calculations such as forces acting on particles to be calculated. For example, when using the first mask of "0101..." for the particles of
第2マスクは、計算対象の粒子に働く力等の計算における低排除すべき他の粒子の指定に用いられる。例えば、粒子番号1の粒子に対して、「0010…」の第2マスクを使用する場合、粒子番号1の粒子と粒子番号4の粒子間の短距離クーロン力等は一部(例えば1/2又は1/4)が排除されてよい。
The second mask is used to designate other particles to be excluded in calculations such as forces acting on particles to be calculated. For example, when using the second mask of "0010..." for the particles of
低排除に使用される第2マスクは、高排除に使用される第1マスクよりもマスク幅が大きくてよい。これにより、高排除より遠距離まで影響する可能性のある低排除の効果を、高排除よりも遠くの原子まで考慮することができる。 The second mask used for low rejection may have a larger mask width than the first mask used for high rejection. This allows the effects of low exclusion, which can affect longer distances than high exclusion, to be taken into account to atoms further away than high exclusion.
ここで、図15に示すマスクパターンは、パターン番号442である。従って、当該マスクパターンは、粒子データのマスクパターン識別情報において442が指定された場合に使用される。マスクパターンメモリ140は、所定の数(例えば、1024個)のマスクパターンを記憶してよい。
Here, the mask pattern shown in FIG. 15 is
更に、処理装置10は、マスクパターンメモリ140に記憶された所定数のマスクパターンでカバーできない粒子間の高排除/低排除の関係を更に考慮するために、マスクテーブルを用いてよい。例えば、環状分子中の隣接原子等、空間的には近接するが粒子番号が離れた粒子群間の高排除/低排除のパターンをマスクテーブルで指定することができる。
Additionally,
図16A及び図16Bに、本実施形態におけるマスクテーブルの一例を示す。マスクテーブルは、マスクテーブルメモリ150に記憶され、マスクパターンでカバーされない粒子番号の離れた2つの粒子群の間に働く短距離クーロン力等の高排除および低排除の少なくとも一方を指定するものであってよい。図16Aは高排除のマスクテーブルを示し、図16Bは低排除のマスクテーブルを示す。マスクテーブルメモリ150に記憶されるマスクテーブルが表現する粒子群の組み合わせは、記憶するマスクテーブルの数だけ組み合わせ方(例えば16の組み合わせ方)があってよい。
16A and 16B show an example of the mask table in this embodiment. The mask table is stored in the
例えば、図16Aの例では、粒子番号101の粒子は、粒子番号221、222、223の粒子に対し、「100」の高排除のパターンを有する。また、図16Bの例では、「010」の低排除のパターンを有する。これは、粒子番号221の粒子は粒子番号101の粒子に対して高排除(例えば、全部が排除)され、粒子番号222の粒子は粒子番号101の粒子に対して低排除(例えば、一部が排除)されることを示す。同様に粒子番号222の粒子は粒子番号102の粒子に対して高排除(例えば、全部が排除)され、粒子番号223の粒子は粒子番号103の粒子に対して低排除(例えば、一部が排除)されることが示される。
For example, in the example of FIG. 16A, a particle with
ここで、マスクテーブルに記憶する高排除および低排除の少なくとも一方を指定する情報が、粒子番号の離れた2つの粒子群のどの粒子同士の組み合わせ方に対応するのかを予め定めた対応関係によって指定可能であってよい。一例として、図17で説明する斜方モードが挙げられる。 Here, information specifying at least one of high exclusion and low exclusion stored in the mask table corresponds to which combination of particles in two particle groups with different particle numbers is specified by a predetermined correspondence relationship. It may be possible. An example is the oblique mode described in FIG.
図17A及び図17Bは、本実施形態における高排除のマスクテーブル斜方モードの一例を示す。本実施形態の処理装置10は、マスクテーブルの利用に関して、例えば、図17Aおよび図17Bに示す斜方モードを備えてよい。斜方モードが指定された場合、マスクテーブルのマスク値が示す高排除/低排除の指定範囲が、粒子番号に応じて、所定数(例えば1つ)ずつずれていく。図17Aの例では、粒子番号221の粒子は粒子番号101の粒子に対して高排除(例えば、全部が排除)され、粒子番号223の粒子は粒子番号102の粒子に対して高排除(例えば、全部が排除)されることが示され、図17Bの例では、粒子番号222の粒子は粒子番号101の粒子に対して低排除(例えば、一部が排除)され、粒子番号225の粒子は粒子番号103の粒子に対して低排除(例えば、一部が排除)されることが示される。
17A and 17B show an example of a mask table oblique mode with high rejection in this embodiment. The
このように本実施形態の処理システム及び処理装置10等によれば、従来の専用計算機を用いた場合と比較して、より高速かつ効率的に分子動力学シミュレーションを実行することができる。
As described above, according to the processing system and the
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It is obvious to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the description of the scope of claims that forms with such modifications or improvements can also be included in the technical scope of the present invention.
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。 The execution order of each process such as actions, procedures, steps, and stages in the devices, systems, programs, and methods shown in the claims, the specification, and the drawings is particularly "before", "before" etc., and it should be noted that it can be implemented in any order unless the output of the previous process is used in the subsequent process. Regarding the operation flow in the claims, the specification, and the drawings, even if the description is made using "first," "next," etc. for convenience, it means that it is essential to carry out in this order. not a thing
10 処理装置
62 近接格子点
64 近接格子点
66 近接格子点
100 メモリ
110 粒子データメモリ
120 セル情報メモリ
130 メモリブロック情報メモリ
140 マスクパターンメモリ
150 マスクテーブルメモリ
200 処理ユニット
210 パイプライン
220 コア
230 長距離ユニット
300 メモリコントローラ
400 ネットワークインタフェース
600 コンボリューションユニット
REFERENCE SIGNS
Claims (13)
前記空間を分割した各セルのセル番号に対応付けて、前記粒子データメモリにおける、当該セル内の粒子の粒子データを格納するために各セルに割り当てられたメモリブロックを示すセル情報を記憶するセル情報メモリと、
前記空間を分割したセルに含まれる粒子の粒子データを、セル番号を指定してアクセスする処理ユニットと、
セル番号を指定した粒子データへのアクセスを受けたことに応じて、指定されたセル番号に対応付けられたセル情報を用いて前記粒子データメモリにおけるアクセス対象の粒子データのメモリブロックを特定するメモリコントローラと
を備える処理装置。 a particle data memory that stores particle data of each of a plurality of particles arranged in space;
A cell for storing cell information indicating a memory block assigned to each cell for storing particle data of particles in the cell in the particle data memory in association with the cell number of each cell obtained by dividing the space. an information memory;
a processing unit that accesses particle data of particles contained in cells obtained by dividing the space by specifying a cell number;
A memory for identifying a memory block of particle data to be accessed in the particle data memory using cell information associated with the specified cell number in response to access to particle data with a specified cell number. A processing unit comprising a controller and .
前記空間を分割した各セルのセル番号に対応付けて、前記粒子データメモリにおける、当該セル内の粒子の粒子データを格納するために各セルに割り当てられた記憶位置を示すセル情報を記憶するセル情報メモリと、
前記空間を分割したセルに含まれる粒子の粒子データを、セル番号を指定してアクセスする処理ユニットと、
セル番号を指定した粒子データへのアクセスを受けたことに応じて、指定されたセル番号に対応付けられたセル情報を用いて前記粒子データメモリにおけるアクセス対象の粒子データの記憶位置を特定するメモリコントローラと、
前記粒子データメモリ内における、使用済みの記憶位置または未使用の記憶位置を管理するための情報を記憶するメモリと、
を備え、
前記メモリコントローラは、セルに記憶位置を割り当てる場合に、前記使用済みの記憶位置または未使用の記憶位置を管理するための情報を用いて未使用の記憶位置を選択する
処理装置。 a particle data memory that stores particle data of each of a plurality of particles arranged in space;
A cell for storing cell information indicating a storage location assigned to each cell for storing particle data of particles in the cell in the particle data memory in association with the cell number of each cell obtained by dividing the space. an information memory;
a processing unit that accesses particle data of particles contained in cells obtained by dividing the space by specifying a cell number;
A memory for specifying a storage location of the particle data to be accessed in the particle data memory by using cell information associated with the specified cell number in response to access to the particle data with the specified cell number. a controller ;
a memory for storing information for managing used or unused storage locations within the particle data memory;
with
The memory controller selects unused storage locations using information for managing the used or unused storage locations when assigning storage locations to cells.
processing equipment.
前記メモリコントローラは、前記追加要求を受け取ったことに応じて、前記粒子データメモリにおける、指定されたセル番号に対応付けられたセル情報によって示される記憶位置に、当該粒子の粒子データを追加する請求項1又は2に記載の処理装置。 The processing unit transmits to the memory controller an addition request instructing addition of particles to a cell with a specified cell number;
wherein said memory controller adds particle data of said particle to a storage location indicated by cell information associated with a specified cell number in said particle data memory in response to said addition request being received. Item 3. The processing apparatus according to Item 1 or 2 .
前記メモリコントローラは、前記書込要求を受け取ったことに応じて、前記粒子データメモリにおける、指定されたセル番号に対応付けられたセル情報および指定されたセル内の粒子番号によって示される記憶位置の粒子データに対して書込データを書き込む請求項1から4のいずれか一項に記載の処理装置。 The processing unit transmits to the memory controller a write request requesting writing of particle data by designating a cell number and a particle number within the cell;
In response to receiving the write request, the memory controller stores cell information associated with the specified cell number and the storage location indicated by the particle number in the specified cell in the particle data memory. 5. The processing apparatus according to any one of claims 1 to 4 , wherein write data is written with respect to particle data.
前記メモリコントローラは、セルにメモリブロックを割り当てる場合に、前記メモリブロック情報を用いて未使用のメモリブロックを選択する
請求項1、3から6のいずれか一項に記載の処理装置。 further comprising a memory block information memory for storing memory block information for managing used memory blocks or unused memory blocks in the particle data memory;
7. The processing device according to claim 1 , wherein the memory controller selects an unused memory block using the memory block information when allocating a memory block to a cell.
請求項1から7のいずれか一項に記載の処理装置。 further comprising a memory block information memory within the particle data memory for storing memory block information including indicators of used and unused memory blocks ;
8. A processing apparatus according to any one of claims 1-7.
前記処理ユニットは、前記空間内に前記複数の粒子の移動に伴って前記複数の粒子を各セルに再配置する処理において、前記第1セットの複数のセル情報によって記憶位置が指定される各粒子の粒子データを、前記第2セットの複数のセル情報によって指定される記憶位置に再割当する
請求項1から8のいずれか一項に記載の処理装置。 the cell information memory stores a first set of the plurality of cell information associated with the plurality of cells and a second set of the plurality of cell information associated with the plurality of cells;
In the processing of rearranging the plurality of particles in each cell as the plurality of particles move within the space, the processing unit is arranged such that each particle whose storage position is designated by the plurality of cell information of the first set of particle data to storage locations specified by the second set of cell information.
前記メモリコントローラは、一の粒子の前記粒子データ中における前記予め定められたデータがアクセスされたことに応じて、前記アトリビュートに基づいて、前記予め定められたデータに記録されている値を使用するか、初期値を使用するかを選択する
請求項1から9のいずれか一項に記載の処理装置。 At least one of the particle data of each particle and the cell information corresponding to each particle is associated with each of the plurality of particles, and predetermined data in the particle data of each particle is generated at current simulation time. Holds an attribute indicating whether or not it has been updated,
The memory controller uses the value recorded in the predetermined data based on the attribute in response to accessing the predetermined data in the particle data of one particle. or use a default value.
前記メモリコントローラは、前記更新要求を受け取ったことに応じて、前記予め定められたデータが現シミュレーション時刻に更新されている場合は前記予め定められたデータに記録されている値に対して演算を施して更新し、前記予め定められたデータが現シミュレーション時刻に更新されていない場合は初期値に対して演算を施して前記予め定められたデータを更新する
請求項10に記載の処理装置。 The processing unit transmits to the memory controller an update request instructing to update the predetermined data by calculation,
In response to receiving the update request, the memory controller performs an operation on the value recorded in the predetermined data when the predetermined data is updated at the current simulation time. 11. The processing device according to claim 10 , wherein if the predetermined data has not been updated at the current simulation time, the predetermined data is updated by performing an operation on the initial value.
セル情報メモリが、前記空間を分割した各セルのセル番号に対応付けて、前記粒子データメモリにおける、当該セル内の粒子の粒子データを格納するために各セルに割り当てられたメモリブロックを示すセル情報を記憶する段階と、
処理ユニットが、前記空間を分割したセルに含まれる粒子の粒子データを、セル番号を指定してアクセスする段階と、
メモリコントローラが、セル番号を指定した粒子データへのアクセスを受けたことに応じて、指定されたセル番号に対応付けられたセル情報を用いて前記粒子データメモリにおけるアクセス対象の粒子データのメモリブロックを特定する段階と
を備える処理方法。 a particle data memory storing particle data for each of a plurality of particles arranged in space;
A cell in which the cell information memory indicates a memory block assigned to each cell for storing particle data of particles in the cell in the particle data memory in association with the cell number of each cell obtained by dividing the space. storing the information;
a step in which a processing unit accesses particle data of particles contained in cells obtained by dividing the space by designating a cell number;
The memory controller stores a memory block of particle data to be accessed in the particle data memory using cell information associated with the specified cell number in response to access to particle data with a specified cell number. A processing method comprising identifying and .
セル情報メモリが、前記空間を分割した各セルのセル番号に対応付けて、前記粒子データメモリにおける、当該セル内の粒子の粒子データを格納するために各セルに割り当てられた記憶位置を示すセル情報を記憶する段階と、
処理ユニットが、前記空間を分割したセルに含まれる粒子の粒子データを、セル番号を指定してアクセスする段階と、
メモリコントローラが、セル番号を指定した粒子データへのアクセスを受けたことに応じて、指定されたセル番号に対応付けられたセル情報を用いて前記粒子データメモリにおけるアクセス対象の粒子データの記憶位置を特定する段階と、
メモリが、前記粒子データメモリ内における、使用済みの記憶位置または未使用の記憶位置を管理するための情報を記憶する段階と、
前記メモリコントローラは、セルに記憶位置を割り当てる場合に、前記使用済みの記憶位置または未使用の記憶位置を管理するための情報を用いて未使用の記憶位置を選択する段階と、
を備える処理方法。 a particle data memory storing particle data for each of a plurality of particles arranged in space;
A cell in which the cell information memory indicates a storage position assigned to each cell for storing particle data of particles in the cell in the particle data memory in association with the cell number of each cell obtained by dividing the space. storing the information;
a step in which a processing unit accesses particle data of particles contained in cells obtained by dividing the space by designating a cell number;
In response to access to particle data with a specified cell number, the memory controller stores the storage position of the particle data to be accessed in the particle data memory using the cell information associated with the specified cell number. and
a memory storing information for managing used or unused storage locations within the particle data memory;
the memory controller selecting unused storage locations using information for managing the used or unused storage locations when allocating storage locations to cells;
A processing method comprising:
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018197597A JP7133843B2 (en) | 2018-10-19 | 2018-10-19 | Processing device, processing system, processing method, program, and recording medium |
JP2022116316A JP7376163B2 (en) | 2018-10-19 | 2022-07-21 | Processing device, processing system, processing method, program, and recording medium |
JP2023171432A JP2023171462A (en) | 2018-10-19 | 2023-10-02 | Processing device, processing system, processing method, program, and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018197597A JP7133843B2 (en) | 2018-10-19 | 2018-10-19 | Processing device, processing system, processing method, program, and recording medium |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022116316A Division JP7376163B2 (en) | 2018-10-19 | 2022-07-21 | Processing device, processing system, processing method, program, and recording medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020064560A JP2020064560A (en) | 2020-04-23 |
JP7133843B2 true JP7133843B2 (en) | 2022-09-09 |
Family
ID=70387372
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018197597A Active JP7133843B2 (en) | 2018-10-19 | 2018-10-19 | Processing device, processing system, processing method, program, and recording medium |
JP2022116316A Active JP7376163B2 (en) | 2018-10-19 | 2022-07-21 | Processing device, processing system, processing method, program, and recording medium |
JP2023171432A Pending JP2023171462A (en) | 2018-10-19 | 2023-10-02 | Processing device, processing system, processing method, program, and recording medium |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022116316A Active JP7376163B2 (en) | 2018-10-19 | 2022-07-21 | Processing device, processing system, processing method, program, and recording medium |
JP2023171432A Pending JP2023171462A (en) | 2018-10-19 | 2023-10-02 | Processing device, processing system, processing method, program, and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (3) | JP7133843B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001236342A (en) | 2000-02-23 | 2001-08-31 | Gazo Giken:Kk | Address device used for many-body problem analyzing device |
JP2006236256A (en) | 2005-02-28 | 2006-09-07 | Institute Of Physical & Chemical Research | Numerical calculation processor |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096167B2 (en) * | 2001-04-26 | 2006-08-22 | International Business Machines Corporation | System and method for molecular dynamic simulation |
WO2008118789A2 (en) * | 2007-03-23 | 2008-10-02 | D. E. Shaw Research, Llc | Computation of multiple body interactions |
-
2018
- 2018-10-19 JP JP2018197597A patent/JP7133843B2/en active Active
-
2022
- 2022-07-21 JP JP2022116316A patent/JP7376163B2/en active Active
-
2023
- 2023-10-02 JP JP2023171432A patent/JP2023171462A/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001236342A (en) | 2000-02-23 | 2001-08-31 | Gazo Giken:Kk | Address device used for many-body problem analyzing device |
JP2006236256A (en) | 2005-02-28 | 2006-09-07 | Institute Of Physical & Chemical Research | Numerical calculation processor |
Non-Patent Citations (1)
Title |
---|
成見 哲,100Tflopsの分子動力学シミュレーション専用計算機MDM,コンピュータサイエンス誌bit,共立出版株式会社,2000年10月01日,Vol.32 No.10,pp.26-34 |
Also Published As
Publication number | Publication date |
---|---|
JP2023171462A (en) | 2023-12-01 |
JP2020064560A (en) | 2020-04-23 |
JP7376163B2 (en) | 2023-11-08 |
JP2022163069A (en) | 2022-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10990561B2 (en) | Parameter server and method for sharing distributed deep learning parameter using the same | |
JP7379581B2 (en) | Hardware double buffering using special purpose computational units | |
JP4856515B2 (en) | Methods, systems, and products for rebalancing striped disk data (striped disk data rebalancing) | |
US5103393A (en) | Method of dynamically allocating processors in a massively parallel processing system | |
US10521520B2 (en) | Highly scalable cluster engine for hosting simulations of objects interacting within a space | |
CN102457571A (en) | Method for uniformly distributing data in cloud storage | |
JP2013037691A (en) | System, method, and computer program product for constructing acceleration structure | |
JPH06243113A (en) | Calculation model mapping method for parallel computer | |
CN108139882B (en) | Implement the system and method for stratum's distribution lists of links for network equipment | |
US7999808B1 (en) | Parallel processing system, method, and computer program product for executing node traversal or primitive intersection | |
CN114270319A (en) | Reallocating tensor elements among machine learning computation units | |
Han et al. | A novel ReRAM-based processing-in-memory architecture for graph computing | |
JP7133843B2 (en) | Processing device, processing system, processing method, program, and recording medium | |
Rivara | Lepp-bisection algorithms, applications and mathematical properties | |
KR101807172B1 (en) | Ray tracing apparatus and method of the same | |
US20200143586A1 (en) | Highly scalable cluster engine for hosting simulations of objects interacting within a space | |
CN110211235B (en) | Ore drawing simulation method based on parallel RCB three-dimensional potential function discrete elements | |
US8059123B1 (en) | Parallel processing system, method, and computer program product for postponing the execution of primitive intersection | |
KR101685999B1 (en) | Distributed Storage Method For Mass TIN Data | |
WO2017087002A1 (en) | Shared memory for distributed data | |
CN108268697A (en) | A kind of high efficiency electric propulsion plume plasma parallel simulation method | |
JP2000003352A (en) | Molecular dynamics method calculation device | |
CN116107640B (en) | Systematic optimization system for DSMC algorithm cache and SIMD vectorization | |
JPH10334063A (en) | Dynamic load dispersing method in parallel calculation, dynamic load dispersing device, and recording medium in which dynamic load dispersing program is recorded | |
JPH08293041A (en) | High speed rendering method and device therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210716 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220412 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20220606 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220721 |
|
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: 20220809 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220823 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7133843 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |