JP2014170556A - 粒子相互作用を計算するための並行計算アーキテクチャ - Google Patents
粒子相互作用を計算するための並行計算アーキテクチャ Download PDFInfo
- Publication number
- JP2014170556A JP2014170556A JP2014076105A JP2014076105A JP2014170556A JP 2014170556 A JP2014170556 A JP 2014170556A JP 2014076105 A JP2014076105 A JP 2014076105A JP 2014076105 A JP2014076105 A JP 2014076105A JP 2014170556 A JP2014170556 A JP 2014170556A
- Authority
- JP
- Japan
- Prior art keywords
- particles
- particle
- interaction
- data
- home box
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000002245 particle Substances 0.000 title claims abstract description 497
- 230000003993 interaction Effects 0.000 title claims abstract description 373
- 238000004364 calculation method Methods 0.000 title claims abstract description 184
- 238000004891 communication Methods 0.000 claims abstract description 107
- 238000012545 processing Methods 0.000 claims abstract description 70
- 238000004088 simulation Methods 0.000 claims abstract description 61
- 238000003860 storage Methods 0.000 claims abstract description 19
- 238000000638 solvent extraction Methods 0.000 claims abstract description 6
- 238000000926 separation method Methods 0.000 claims description 3
- 239000006185 dispersion Substances 0.000 abstract 1
- 238000000034 method Methods 0.000 description 330
- 230000008676 import Effects 0.000 description 140
- 238000000354 decomposition reaction Methods 0.000 description 63
- 238000013459 approach Methods 0.000 description 44
- 230000006870 function Effects 0.000 description 43
- 230000027455 binding Effects 0.000 description 30
- 238000009739 binding Methods 0.000 description 30
- 125000004429 atom Chemical group 0.000 description 27
- 230000036961 partial effect Effects 0.000 description 23
- 239000006260 foam Substances 0.000 description 20
- 238000010586 diagram Methods 0.000 description 18
- 230000007717 exclusion Effects 0.000 description 18
- 108090000623 proteins and genes Proteins 0.000 description 18
- 102000004169 proteins and genes Human genes 0.000 description 18
- 239000011159 matrix material Substances 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 16
- 238000013519 translation Methods 0.000 description 16
- 238000009826 distribution Methods 0.000 description 15
- 238000009825 accumulation Methods 0.000 description 14
- 238000009792 diffusion process Methods 0.000 description 14
- 230000000694 effects Effects 0.000 description 14
- 238000001914 filtration Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 11
- 238000005457 optimization Methods 0.000 description 11
- 230000007423 decrease Effects 0.000 description 10
- 239000003446 ligand Substances 0.000 description 10
- 238000000324 molecular mechanic Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 239000011449 brick Substances 0.000 description 7
- 238000013507 mapping Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 230000007704 transition Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 230000010354 integration Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 238000000329 molecular dynamics simulation Methods 0.000 description 5
- 230000007935 neutral effect Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 4
- 230000009881 electrostatic interaction Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 4
- 238000000342 Monte Carlo simulation Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000005421 electrostatic potential Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 229910052757 nitrogen Inorganic materials 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 238000005381 potential energy Methods 0.000 description 3
- 238000000455 protein structure prediction Methods 0.000 description 3
- IJGRMHOSHXDMSA-UHFFFAOYSA-N Atomic nitrogen Chemical compound N#N IJGRMHOSHXDMSA-UHFFFAOYSA-N 0.000 description 2
- 238000005411 Van der Waals force Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 229910052799 carbon Inorganic materials 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 125000004435 hydrogen atom Chemical group [H]* 0.000 description 2
- 150000002605 large molecules Chemical class 0.000 description 2
- 229920002521 macromolecule Polymers 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- VNWKTOKETHGBQD-UHFFFAOYSA-N methane Chemical compound C VNWKTOKETHGBQD-UHFFFAOYSA-N 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000012846 protein folding Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000007480 spreading Effects 0.000 description 2
- 238000003892 spreading Methods 0.000 description 2
- 229910052717 sulfur Inorganic materials 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 1
- 108010052285 Membrane Proteins Proteins 0.000 description 1
- 241000053227 Themus Species 0.000 description 1
- 238000005076 Van der Waals potential Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 230000003281 allosteric effect Effects 0.000 description 1
- 150000001412 amines Chemical class 0.000 description 1
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008499 blood brain barrier function Effects 0.000 description 1
- 210000001218 blood-brain barrier Anatomy 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 150000001720 carbohydrates Chemical class 0.000 description 1
- 235000014633 carbohydrates Nutrition 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 210000001520 comb Anatomy 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 229940079593 drug Drugs 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- -1 for example Substances 0.000 description 1
- 230000008571 general function Effects 0.000 description 1
- 230000036433 growing body Effects 0.000 description 1
- 230000036571 hydration Effects 0.000 description 1
- 238000006703 hydration reaction Methods 0.000 description 1
- 229910052739 hydrogen Inorganic materials 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 238000012900 molecular simulation Methods 0.000 description 1
- 230000005405 multipole Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 125000004433 nitrogen atom Chemical group N* 0.000 description 1
- 102000039446 nucleic acids Human genes 0.000 description 1
- 108020004707 nucleic acids Proteins 0.000 description 1
- 150000007523 nucleic acids Chemical class 0.000 description 1
- 229910052760 oxygen Inorganic materials 0.000 description 1
- 239000001301 oxygen Substances 0.000 description 1
- 125000004430 oxygen atom Chemical group O* 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 230000036544 posture Effects 0.000 description 1
- 238000005182 potential energy surface Methods 0.000 description 1
- 230000004853 protein function Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000005476 size effect Effects 0.000 description 1
- 229910001415 sodium ion Inorganic materials 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 231100000419 toxicity Toxicity 0.000 description 1
- 230000001988 toxicity Effects 0.000 description 1
- 231100000041 toxicology testing Toxicity 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
【解決手段】粒子相互作用を計算するためのアーキテクチャは種々の並行処理を用いる。並行処理は、シミュレーション体積の幾何学的パーティション分割に応じて配列された複数の計算ノードを含む。ノードのそれぞれは、シミュレーション体積の1領域内の粒子に対する粒子データ用の記憶装置を備える。通信システムは、計算ノードを相互接続するリンクを含む。ノードのそれぞれはプロセッサ・サブシステムを含む。分散方式で計算ノードを一緒にまとめたプロセッサ・サブシステムは、粒子相互作用の計算を調整する。
【選択図】 図38
Description
対を列挙することにより系内の物体のすべての対の間の相互作用を決定する作業は、多量の計算を必要とし、そのため、反対称相互作用法が使用されることが多い。例えば、特定の粒子の定義済み半径内にあるすべての粒子は、遠く離れている粒子は無視しつつ、その粒子と相互作用する。シミュレーションに要する総計算時間を短縮するために、専用ハードウェアも用いられている。
通信システムは、トロイダル形状のメッシュを形成する。
通信システムは、分離コンポーネントを備え、それぞれのコンポーネントは計算ノードの異なる近傍をリンクする。
ードの間の2地点間リンクを含む。
粒子データの少なくとも一部を複数の計算ノードの他のノードに送ることは、通信システムの複数の分離コンポーネントにわたって他の計算ノードを介してデータを渡すことを含む。
通信サブシステムは、プロセッサ・サブシステムの介入なしで一方の計算ノードから他方の計算ノードへ粒子データを渡すように構成可能である。
(i)計算にそのデータを必要とする複数の計算ノードの他のノードに粒子データを送り、
(ii)複数の計算ノードのうちの他のノードから送られた粒子データを受け取り、
(iii)受け取った粒子データを使用して計算を実行し、第1の結果を出力し、
(iv)第1の結果を複数の計算ノードの他のノードに送り、
(v)第1の結果を複数の計算ノードの他のノードから送られる第1の結果を受け取り、
(vi)受け取った第1の結果を使用してさらに計算を実行し、第2の結果を出力するように構成されている。
システムは、(i)〜(vi)のステップ全て又はいくつかを連続して反復するように構成される。
通信システムは、計算ノードから粒子データを受け取り、その粒子データを複数の計算ノードのうちの他のノードの近傍に分配するように構成される。
計算ノードのそれぞれは、さらに、通信システムの通信サブシステムを備え、通信サブシステムはプロセッサ・サブシステムの介入なしで一方の計算ノードから他方の計算ノードへ粒子データを渡すように構成可能である。
計算サブシステムは、さらに、そのノードで処理サブシステムの介入なしで、第1の結果を複数の計算ノードのうちの他の計算ノードに送ることを目的とする。
メモリ・サブシステムは、さらに、受け取った第1の結果に基づくデータを処理サブシステムに供給することを目的とする。
実行し、第2の結果を出力することを目的とする。
粒子データは、粒子位置データを含む。
第2の結果は、粒子位置データを含む。
他の態様では、一般に、並列処理システムで使用する処理ノードは、サブシステムのグループを含む。サブシステムのこのグループは、プロセッサ・サブシステム、計算サブシステム、およびメモリ・サブシステムを含む。システムは、さらに、複数のサブシステムからなるグループに含まれるいくつかのサブシステムをリンクし、ノードのサブシステムと処理システムの他の処理ノードのサブシステムとの間にリンクの少なくとも一部を形成する通信サブシステムも含む。計算サブシステムは、空間的位置にそれぞれ関連付けられているデータ要素の間の対毎の計算を実行する回路を備える。
プロセッサ・サブシステムは、実質的に一般的な計算を行うようにプログラム可能である。
通信サブシステムは、一群のインターフェイス・ユニットを含み、それぞれのインターフェイス・ユニットはサブシステムのグループに含まれる1つのサブシステムにリンクされ、通信サブシステムは、さらに、他の複数の処理ノードのインターフェイス・ユニットとリンクするための1つまたは複数のインターフェイス・ユニットを備える。
通信システムは、同じ処理ノード上のサブシステムと異なる処理ノード上のサブシステムとの間でアドレス指定可能なメッセージ受け渡しを実現する。
計算サブシステムは、それぞれ粒子シミュレーション・システム内の粒子およびグリッド位置を伴う計算を行うように適合可能である。
メモリ・サブシステムは、集積回路の外部の記憶装置デバイスとのインターフェイスを備える。
他の態様では、一般に、計算システムは、処理モジュールの1つまたは複数の直列に相互接続された処理グループに配列された処理モジュールのアレイを備える。処理モジュールはそれぞれ、データ要素用の記憶装置を備え、データ要素の間の対毎の計算を実行する回路を備え、対毎の計算のそれぞれは、処理モジュールの記憶装置からのデータ要素および直列に相互接続された処理モジュールを通過するデータ要素を使用する。
処理モジュールのアレイは、2つまたはそれ以上の直列に相互接続された処理グループを含む。
このシステムは、さらに、処理グループ間にデータ要素を分配するための分配モジュールを備える。
他の態様では、一般に、処理モジュールは、マッチング・ユニットの集合を含み、それぞれのユニットはデータ要素の第1の集合の異なる部分集合に対する記憶装置に関連付けられている。処理モジュールは、さらに、データ要素の第2の集合内の一連のデータ要素を受け取るための入力を備え、この入力はマッチング・ユニットのそれぞれに結合されており、受け取ったデータ要素をマッチング・ユニットに渡す。このモジュールは、さらに、マッチング・ユニットにより選択された、第1の集合から取った1つのデータ要素と第2の集合から取った1つのデータ要素からなる、データ要素の複数の対を受け取るためマッチング・ユニットに結合された計算ユニット、および計算ユニットにより出力される結果を送出するための出力を備える。
モジュールは、受け取った一連のデータ要素を他のモジュールに送出するための出力を備える。
モジュールは、計算ユニットにより出力される結果と結果を受け取るための入力で受け取った結果とを組み合わせるマージ・ユニットを備える。
他の態様では、一般に、方法は、データ要素の第1の集合を受け取ることと、データ要素の第1の集合を処理モジュールの1つまたは複数の直列に相互接続された処理グループに配列されている処理モジュールのアレイの記憶装置に分配することと、データ要素の第2の集合を受け取ることと、データ要素を直列に相互接続された処理グループに通すこととを含む。
第1の集合および第2の集合のデータ要素は、多体シミュレーション・システム内の物体に関連付けられる。
この方法は、さらに、複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、データ要素の全部ではなく一部を選択することを含み、データ要素は対毎の計算の実行に関して処理グループを通過する。
データ要素の複数の対を選択することは、データ要素に関連付けられている空間的位置の間の距離間隔に応じて対を選択することを含む。
1 概要
1.1 分子力学
1.2 分子力場
1.3 対毎の相互作用
1.4 メッシュ・ベースの計算
1.5 文書の編成
2 NT、SH、およびHS法
2.1 HS法
2.2 NT法
2.3 SH法
3 一般化分解
3.1 畳み込み判定基準
3.2 割り当て規則
3.2.1 HS、NT、およびSHアナログ方式の割り当て規則
3.2.2 中間点割り当て規則
3.2.3 擬似ランダム割り当て規則
3.2.4 計算負荷分散
3.2.5 並進不変性
3.3 可換な相互作用
3.4 丸め判定基準
3.5 高次元での分解
4 共有通信
5 対リストおよび除外グループ
6 マルチ・ゾーン法
6.1 インポート体積の下限
6.2 最適化優先度
7 一般化分解の適用
7.1 1/8シェル法7.2 スライス1/2シェル法
7.3 マルチ・ゾーンNTおよびSNT法
7.4 泡法
7.5 通信帯域幅要件の比較
7.6 多粒子相互作用
8 シリアル化実装
9 クラスタ・アーキテクチャ
10 並列実装
11 応用
12 代替え。
多体相互作用(「N体」問題と呼ばれることが多い)のシミュレーションは、天体力学および計算化学を含む多くの問題領域において有用である。例えば、生体分子または静電気粒子相互作用のシミュレーションは、系内の粒子間の相互作用の非常に詳しい図を描くことにより実験を補完するものである。シミュレーションにおける重要な課題は、シミュレーション速度である。
分子シミュレーションの1アプローチは、主に物理学に基づくものであり、分子系の物理学の数学モデルに基づいて構造を予測する。タンパク質は、原子レベルでモデル化され、個々の原子または原子の複数のグループはN体系内の点物体として表される。これらの方法のうちの1つは、それぞれの粒子に加わる力を計算し、ニュートンの法則の数値積分を用いて時間の経過とともに変わるそれぞれの原子の物理的軌道を予測する分子力学(MD)である。代替えの方法として、系のポテンシャル・エネルギー面の確率的サンプリングを行うモンテカルロ法の一種がある。物理学ベースの方法は、ホモロジー・モデルを精密化するために使用されるか、または単独で適用され、スクラッチからタンパク質構造を決定する。MDは、さらに、タンパク質折り畳みの過程を調査するためにも使用される。
分子系が与えられた時刻においてそれらの状態のうちの1つの状態にある確率が高くなるということである。アンサンブルの自由エネルギーは、アンサンブル内のすべての状態にわたって確率の総和を求めることにより計算される。状態の確率は、系の温度に依存するポテンシャル・エネルギーの指数関数である(特に、計算ではボルツマン分布を使用する)。実際的な言い方では、このことは、タンパク質構造予測に関して、MDシミュレーションを1回実行し、ある時点において停止し、終端立体構造を固有の状態とみなすだけでは不十分であることを意味する。最低でも、そのようなシミュレーションの終わり近くで多くの立体構造がサンプリングされるべきである。それどころか、複数の別々のシミュレーションを実行し、結果同士を比較する必要がある場合がある。
構造ベースの問題に対する物理学ベースの方法では、これらの計算方法の「内側ループ」は、分子系が与えられた場合に、(a)系のポテンシャル・エネルギーを全体として計算するか、または(b)系の残り部分との相互作用によるそれぞれの粒子に対する力を計算するという問題を解くように選択することが可能である。((b)の力は、単に、(a)の3次元ベクトル勾配であり、問題の2つのバリエーションは計算に関して類似のものとなる。)これらの力およびエネルギーは、一般に、分子力場と呼ばれる特定のタイプのモデルに従って計算される。
は、酸素原子に結合されたものと異なる部分電荷を有する(アルコール)。炭素、水素、酸素、および窒素のそれぞれに複数の種類が容易に挙げられる。これらに使用される種類の原子およびパラメータの集合は、特定の力場を定義する特性のうちの1つである。
多数の場におけるシミュレーションは、粒子の明示的な対毎の相互作用を計算することを必要とする。上述の生化学における分子力学およびモンテカルロ・シミュレーションに加えて、類似のシミュレーションを物質科学、宇宙物理学およびプラズマ物理学におけるN体シミュレーション、ならびに流体力学における状態シミュレーションの粒子ベースの流体力学および方程式に適用することが可能である。このようなシミュレーションの計算作業負荷を低減するために、粒子のすべての対の間の相互作用を計算する代わりに、1アプローチでは、ある相互作用半径R未満の距離だけ隔てられている対の間の相互作用のみを計算する。これらの相互作用は、「近距離相互作用」と呼ばれる。残りの相互作用(「遠距離相互作用」)は、無視されるか、または計算量の少ない方法で取り扱われる。相互作用半径を制限することに関連して無駄を省く場合であっても、近距離相互作用はそのまま計算コストに対し支配的である。この計算を並列処理および/または直列処理について分解する方法は、これらのシミュレーションに必要な総時間数および/またはこれらのシミュレーションに必要な計算または通信を低減するうえで有用と思われる。
上で導入されているように、粒子の間、例えば、最大相互作用半径よりも広く隔てられている粒子の間の遠距離相互作用は、計算量の少ない方法を使用して計算することができる。このようなアプローチの1つは、同時係属出願である米国出願第11/171,619号、米国出願第11/171,634号、国際出願第PCT/US2005/0231
84号において詳述されているようなEwald法に基づく。
フーリエ領域の計算を伴う部分の実装は、3つのフェーズに分割できる。第1に、(無限および周期的)連続3次元空間r上で定義されている離散型電荷分布
第2のフェーズでは、ポテンシャル関数φ*(rm)は、電荷分布ρS(rm)に対する畳み込み演算を使用してグリッド位置で計算される。この畳み込みは、高速フーリエ変換(FFT)技術を使用して実装される。
計算上では、第1のフェーズおよび第3のフェーズは、位置の対を伴う総和を必要とし、それぞれの対の一方の位置は粒子(i)位置であり、対の他方の位置はメッシュ点(m)の位置である。
本明細書の残り部分は、以下のように編成される。第2節から第7節までは、粒子の間の範囲制限された対毎の相互作用を計算すること、またはより一般的には、空間内の点の対に関連付けられている範囲制限された計算を実行することに適用可能なアルゴリズムに関係するが、ただし、対は、N体問題における粒子の対に対応するか、または対は、例えば、電荷拡散または力補間法の一部として1つのグリッド点と1つの粒子点に対応しうる。
2 NT、SH、およびHS法
近年登場したNT法およびSH法は、従来の空間分解法の1例である、「1/2シェル
」またはHS法とともに、以下の枠組み内で説明することができる。シミュレートされる粒子(物体)の系は、グローバル・セルと呼ばれる矩形のボックス内に入っていると仮定する。3つの方法すべてにおいて、このグローバル・セルを小さなボックスからなる正則な矩形3次元グリッドに分割する。これらの小さなボックスをホームボックスと呼ぶ。1並列実装では、ホームボックスとプロセッサとの間に1対1対応関係を割り当てるが、プロセッサとそのホームボックスは入れ換えて参照できる。これらの方法は、そのような実装の内容について以下で説明され、いくつかの代替え実装が、この説明の後に提示される。
従来の分解では、一般に、2つの粒子は、その一方が置かれているホームボックス内で相互作用する。特にHS法では、粒子の対が相互作用する位置は、粒子は小さなx基準座標とホームボックス内で相互作用すること、2つの粒子が同じx基準座標を有する場合、粒子は、小さなy基準座標とホームボックス内で相互作用すること、これらは、同じy基準座標を有する場合、小さなz基準座標とホームボックス内で相互作用することという規則に従って相互作用する。また、これらは、同じz基準座標を有する場合、同じホームボックス内にあり、相互作用はそこで完了する。同じホームボックス上の粒子間の相互作用は、「局所的相互作用」と呼ばれるが、異なるホームボックス上の粒子間の相互作用は、「遠隔相互作用」と呼ばれる。
ームボックス、およびホームボックスと1/2シェルとの和集合である。
NT法では、2つの粒子は、1つの粒子に関連付けられているxおよびy基準座標および他の粒子に関連付けられているz基準座標を有するホームボックス内で相互作用する。より具体的には、粒子同士が相互作用するホームボックスのxおよびy基準座標は、より小さなx基準座標を持つ粒子の基準座標であるか、または両方の粒子が同じx基準座標を有する場合には、より小さなy基準座標を持つ粒子の基準座標である。粒子同士が相互作用するホームボックスのz基準座標は、他の粒子のz基準座標である。2つの粒子が同じxおよびy基準座標を有する場合、それらの粒子は、低いz座標を持つ粒子のホームボックス上で相互作用する。
SH法では、辺長hの立方体ホームボックスを仮定する。ここで、
コーム430とベース420を相互作用させることで、必ず、すべての近距離相互作用は、少なくとも1回計算される。HSおよびNT法に関して、必ずすべての近距離相互作用がちょうど1回だけ計算され、近距離相互作用のみが計算されるように、フィルタ処理が使用される。
一般化クラスの方法では、それぞれのプロセッサは、2つの相互作用ゾーンから粒子をインポートし、一方のゾーンからの粒子と他方のゾーンからの粒子とを相互作用させる。ゾーンの対は、すべての近距離相互作用が必ず計算されるようにする方法の実装について選択される。囲まれた立方体内でそれぞれの粒子が他の粒子と相互作用する場合と、囲まれている球体内でそれぞれの粒子が他の粒子と相互作用する場合の両方について考察される。半径Rの球体領域は、辺長2Rの外接立方体の体積のおおよそ半分を有するため、「丸め」により、通信帯域幅要件を低減することができる。
A.粒子は、2次元x−y平面に制限される。
B.粒子の対は、x次元方向にはR未満の距離だけ隔てられ、y次元方向にはR未満の距離だけ隔てられている場合に、かつその場合に限り相互作用する(つまり、ユークリッド距離は、Rよりも大きくてもよい)。
C.ホームボックスは、辺長hの正方形であり、Rは、hの整数倍である。同様に、相互作用ゾーンは、完全なホームボックスのみからなる(「ボクセル化法」)。
D.相互作用は、非可換である。したがって、粒子aとbの対について、ここで、aのbに対する影響とbのaに対する影響を別々に計算しなければならない。(2つの粒子の間の力は、通常、ニュートンの第三法則により可換な相互作用として取り扱われ、粒子aに対する相互作用による力は、粒子bに対する力と等しく、反対の向きである。非可換な相互作用も、実用上興味深く、例えば、それぞれの粒子の、近くのメッシュ点に対する影響を計算したい場合がある。)
これらの単純化は、以下では、簡略化された問題の最初の説明の後、徐々に緩和される。
子をインポートし、一方のゾーン720内の粒子が他方のゾーン730内の粒子に及ぼす影響を計算する。
それぞれのホームボックスに関連付けられている並進不変性ゾーンの対が与えられた場合、すべての必要な相互作用が計算されたことの検証は、畳み込みベースの判定基準を用いて実行される。ここでは、方法の受け入れ領域を、ホームボックスに影響を及ぼす空間の領域として定義する。特に、受け入れ領域は、対のレベルでさらにフィルタ処理が使用されない場合に局所的粒子に影響を及ぼすすべての遠隔粒子を含むことを保証されている空間の最小体積である。判定基準は、ホームボックスの受け入れ領域が、相互作用近傍全体を確実に含むようにすることに基づく。
保証されなくなる。
分解は、それぞれのホームボックスに関連付けられた相互作用ゾーンに関して記述できる。代替え記述は、割り当て規則の形を取り、一方の粒子の他方の粒子への影響をその位置の関数として、またはそれらの粒子が最初に置かれているプロセッサ上で、計算するプロセッサを指定する。このような記述は、すでに上で示されているHSおよびNT法を含む、方法のいくつかを記述する際に無意識のうちに使用されている。
図5に例示されている、HS法の簡略化されたアナログについては、割り当て規則は、(ia→b,ja→b)=(ib,jb)として表すことができる。図6に例示されている、NT法の簡略化されたアナログについては、割り当て規則は、(ia→b,ja→b)=(ia,jb)として表すことができる。
図7の分解方式、SHアナログに対する割り当て規則は、(ia→b,ja→b)=(ib,g(jb,ja))と表わされる。図8に例示されている、泡状方式に対する割り当て規則は、(ia→b,ja→b)=(g(ib,ia),g(jb,ja))と表わされる。
割り当て規則は、さらに、粒子aおよびbの位置に関しても指定される。例えば、mid(a,b)がaおよびbの座標の間の幾何学的中間点を表すために使用される場合(つまり、xmid(a,b)=(xa+xb)/2)、割り当て規則は、(ia→b,ja→b)=(imid(a,b),jmid(a,b))として表わされる。さらに一般的
に、必ずしも点の幾何学的中間点ではない、粒子の座標から空間内の他の点(「中間位置」)への中間点マッピングm(a,b)を使用することができ、中間点規則は、「中間点」の適当な定義により3つまたはそれ以上の点に適用される。例えば、点の集合の中間点は、すべての点を含む最小球体の中心として定義される。他の実施例としては、平均位置がある(例えば、集合内の点の座標を平均するそれぞれの座標方向について)。
それぞれのホームボックスについて定義されている特定のインポート領域では、相互作用に必要な粒子データは、複数のノードにインポートされるか、または複数のノード上ですでに利用可能であることがきわめて頻繁にある。例えば、ホームボックスのサイズがh=8{A}、相互作用半径がR=10{A}である図36に示されている実施例では、粒子a 3631とb 3632との間の相互作用に必要なデータは、インポート領域3622を有する、ホームボックス3612のある、プロセッサからも利用できる。一般に、この実施例では、粒子の対に対するデータは、最大9=32個のホームボックス(3次元バージョンでは、27=33個のホームボックス)に関連付けられているノードから利用できる。この特定の場合の相互作用の大半について、相互作用を実行することが可能なノードが少なくとも2つあり、さらに多くがあることはきわめて頻繁なことである。
上述の擬似ランダム割り当て規則に関係するアプローチでは、一般に対毎のそれぞれの計算を実行するために複数のノードが利用可能であるという事実が負荷分散に使用され、ノード同士は連携してそれぞれの計算が1回だけ実行されるように、また計算の望ましい負荷分散が行われるようにどの計算がどのノードで実行されるかを決定する。ここでは、あるクラスの方法を「中間点保証法」と呼び、それぞれのプロセッサは、上述の中間点法でインポートされるのと同じデータをインポートするが、プロセッサへの相互作用計算の割り当ては、計算負荷がプロセッサ間により均等に分けられるように調整される。
次いで、それぞれのプロセッサは、半径R/2の球体内に入る、そのプロセッサから利用可能なm個の粒子のすべての組合せからなる、局所的計算可能相互作用の集合を見つけ
る。それぞれのプロセッサiは、局所的に計算可能な相互作用の集合を、左の隣接要素(プロセッサi−1)上でも計算可能な相互作用、右の隣接要素(プロセッサi+1)上でも計算可能な相互作用、およびプロセッサi上でのみ計算可能な相互作用の、3つの重なり合わない部分集合に分割する。これらの部分集合をそれぞれLi、Ri、およびCiと表し、そのサイズをli、ri、およびciで表す。RiおよびLi+1は、ちょうど同じ要素、つまり、ボックスiとボックスi+1との間の境界の距離R/2の範囲内にあるm個の粒子のすべての組合せを含み、したがって、ri=li+1となる。
この平均は、プロセッサiおよびi+1の両方がアクセスできる情報に基づくci−1およびci+2の妥当な推定値を表す。両方のプロセッサがci−1およびci+2にアクセスできた場合、またはプロセッサが粒子分布に関する何らかの事前統計情報(例えば、平均粒子密度)を有していた場合に、負荷分散はうまくゆく可能性がある。
それぞれのプロセッサ(i,j)は、値
これまで説明してきた分解方式は、並進不変である。つまり、それぞれのホームボックスは、関連付けられている相互作用ゾーンと同じ空間関係を有する。割り当て規則により、必ずしも並進不変でない分解を記述することができる。
クでは、隣接するホームボックスのいくつかの集合の間の通信は、隣接するホームボックスの他の複数の集合の間の通信に比べて費用がかからないか、またはより好ましい。並進不変性方式を使用すると、トロイダル・ネットワークおよび全対全相互接続方式を使用するネットワークを含む、並進不変性ネットワークの性能が最適化される可能性があるが、非並進不変性方式は、ネットワーク自体が並進不変ではない場合に好ましいと思われる。
並進不変な方式の部分集合は、相互作用ホームボックスの論理x座標が粒子の論理x座標にのみ依存し、y座標についても同様に依存するという意味で分離可能である。本明細書で説明されている方式の大半は、ここでもまた、アプローチの多くは、分離不可能な場合にも直接に、またはある程度修正して適用可能であるということを理解したうえで、分離可能である。
上に示されている簡略化された問題における仮定の1つ(上でDのラベルが付けられている)は、粒子aとbの対について、aのbに対する影響とbのaに対する影響を別々に計算するというものであった。大半ではないとしても多くの応用において、これらの影響は対称性を有し、これにより、ただ1つの相互作用を計算すればよい。相互作用が可換でないとしても、計算には、粒子位置などの同じ入力が必要な場合がある。これを利用して、同じホームボックスで両方の非可換相互作用を計算することにより通信要件を低減することができる。
とホームボックスを中心とする受け入れ領域の鏡映との和集合は、相互作用近傍全体を覆う。これらの分解において、それぞれのゾーン内のすべての粒子を他のすべてのゾーン内のすべての粒子と単純に相互作用させる場合、いくつかの近距離相互作用が計算され、Rよりも大きいユークリッド距離だけ隔てられている対に対するいくつかの過剰な相互作用も計算される場合があることに留意されたい。対レベルのフィルタ処理メカニズムは、例えば、計算反復の内側ループに検査を導入することにより使用できるが、そのような検査を必ずしも必要とせずにこのような二重計算を避ける代替え方法が、以下の第6節において導入される。
上で導入されたように、上記のアプローチは、相互作用半径である、Rよりも短いユークリッド距離だけ隔てられている粒子間の相互作用の計算に関係する。簡略化された2次元問題では、したがって、それぞれの粒子は、上の仮定Bで説明されているように、辺長2Rの正方形ではなく半径Rの円内に入る粒子と相互作用する。同様に、ホームボックスの相互作用近傍は、上で考察された正方形領域の部分領域であり(仮定Bの帰結として)、部分領域のコーナーは、少なくとも一部は相互作用近傍内に入るホームボックスの限界まで伸びるのではなく「丸め」られる。この丸めを通して体積を低減するそのような相互作用近傍の使用は、インポート領域のサイズを縮小し、それにより、相互作用すべき粒子に関する情報をインポートするために必要な通信の量を減らすために活かされる。インポート領域のサイズを縮小するこの技術は、「丸め」と呼ばれる。
丸められた部分領域内に配置されている粒子のみを、計算を実行するホームボックスに供給する。このようにして、計算を実行するホームボックスにより考慮される、Rよりも大きな距離だけ隔てられている粒子の対が少なく、相互作用するゾーンのいくつかの対については、Rよりも大きい距離だけ隔てられた粒子の対を考慮することを回避するために計算ループ内に検査を必要としない。
上述の簡略化された技術は、高次元の場合に一般化される(上記の仮定Aを緩和する)。それぞれのホームボックスが一方の並進不変性相互作用ゾーン内の粒子を他方のゾーン内の粒子と相互作用させる方法が与えられた場合、畳み込み判定基準または割り当て規則を使用して、距離R内のすべての粒子対が相互作用するかどうかを決定し、次いで、丸め判定基準により相互作用ゾーンを丸めることができる。上述の3次元HS、SH、NT、およびSNT法は、この一般的なクラスの方式の具体的なインスタンスである。
A.一方のゾーンが単一のホームボックスのみを含み、他方のゾーンが相互作用近傍の端から端まで広がるホームボックスの1つの行を含む分解。これは、図12に例示されているHSアナログと図13に例示されているNTアナログの両方の次元、および図14に例示されているSHアナログの水平方向次元についての場合である。
B.一方のゾーンが複数の隣接ホームボックスからなり、他方のゾーンは相互作用近傍の端から端まで規則正しい間隔で並ぶ個々の非隣接ホームボックスの集合からなる。これは、図15に例示されている「泡」アナログの両方の次元、および図14に例示されているSHアナログの垂直次元の場合である。
それぞれの次元について以下の4つの選択肢のうちの1つを選択することによりそのような方法の1つのゾーンを構成することができる。
・a’.単一のホームボックス、
・b.その次元にわたって規則正しい間隔で並べられた個別のホームボックスの集合、
・b’.複数の隣接ホームボックスからなるブロック。
3つの次元では、この記述に適合する一意的な分解は20ある。ただし、1つの次元にそって相互作用ゾーンのうちの1つを半分にすることにより相互作用の可換性を利用すると仮定する。
くならないという条件を付す。こうして、第2および第3のゾーンに対する分解を4+3+2+1=10通り選択することが可能であり、したがって、このクラスにおいては合計2×10=20の分解がある。一意的な分解を数えるときに、ホームボックスに関してそれぞれのゾーンの正確な位置決めなどの詳細を無視したことに留意されたい。
・一方または両方のゾーンが複数の非隣接断片(例えば、上記の分解b)を伴う方法では、断片の間の間隔を適宜選択する。これは、SH法により使用される技術である。
4 共有通信
上記の中間点法は、計算の複数の異なる成分で同じ通信される粒子データを利用し、これによりそれぞれの成分が別々に並列化される場合と比べて必要な総通信量が低減されるため、分子力学シミュレーションの並列化に特に適している。一般に、最大4個までの粒子の相互作用とともに、対毎の静電気およびファン・デル・ワールス項を伴う、結合力項の評価を並列化するために使用することが可能である。さらに、これにより、結合力項の評価を含む、MD計算の複数の成分は、隣接原子の対の間の静電気およびファン・デル・ワールス力の評価のため伝達される同じデータに頼ることができる。
相互作用する粒子の対を識別することを伴うアプローチでは、粒子の複数の対が識別された時点で相互作用の計算が実行されるように計算を分配される。それとは別に、NT法などのアプローチが、相互作用する粒子の対を識別するために使用されるが、対が識別されるときに計算を実行するのではなく、対のリストが生成される。次いで、必要な計算を反復するためにリストが使用される。例えば、対毎の計算が開始する前に対のリストが完全に計算されるか、または他のソフトウェアまたはさらに多くの対が計算されている間にハードウェア・モジュールがリストを受け取り、相互作用を計算するパイプライン化アプローチが使用される。いくつかのハードウェア・アーキテクチャでは、対毎の計算から対リストの生成を分離すると、例えば、より単純なハードウェアまたはより効率的にコーディングされた内側ソフトウェア・ループを使用して対毎の相互作用を計算できるようにすることにより、計算効率を高めることができる。
l Territory法のマッチメーキング工程において破棄される。
一般に、上で考察した方法では、2つの重なり合うゾーンが相互作用する−ホームボックス/シェル、タワー/プレート、ベース/コーム、レンガ/泡、または一般的に、青色/赤色。この節では、複数のゾーンを伴う方法を考察し、その対は、使用される特定の方法に応じて相互作用するように選択することができる。そのようマルチ・ゾーン法では、インポート領域およびホームボックスは、複数の潜在的に重なり合うゾーンの集合の和集合として取り扱われる。1つのゾーン内の粒子は、他のゾーンの部分集合内のすべての粒子と相互作用する。
(ia←→b,ja←→b)=(min(ia,ib),min(ja,jb))
に対応する。
も多いゾーン−ゾーン相互作用に関わる場合にゾーンvの前にインポートされる必要がある。次いで、インポートされる順序に応じてゾーンに番号を振り、ゾーン1は相互作用ボックスを表し、ゾーン2はインポートされる第1のゾーンを表し、ゾーン3はインポートされる第2のゾーンを表し、というように続けて行く。そこで、相互作用すべきでないゾーンの対に対応するスケジュール・エントリをゼロに設定する。次いで、列を主とした順序で残りのエントリに番号を振る、つまり、行i1と列j1における相互作用は、j1<j2の場合、またはj1=j2で、i1<i2の場合に、行i2と列j2における相互作用の前に計算される。これにより、すでにインポートされているゾーンの対の間の相互作用の計算は、まだインポートされていないゾーンを伴う相互作用の計算を決して待たなくてよいことになる。
間の相互作用をフィルタ処理する必要がもはやないため、簡略化される。図25を参照すると、通信および図24のスケジュールに対応する通信を実装するためのアルゴリズムが示されており、これにより、力の計算のためMPIスタイルの共同メッセージ受け渡しシステムに適したスケジュールに基づき通信シーケンスが決まる。このアルゴリズムは、粒子インポートと力エクスポートの両方を部分的に重ね合わせている。計算サイクルの始めに(シミュレーションの1時間ステップ)、粒子を特徴付けるデータがホームボックスから、ホームボックスでの計算にそのデータを必要とする他のホームボックスに送られる(ステップ2501)。他のホームボックスも、同様に、そのデータを送る動作を開始し、そのホームボックスは、ゾーンP、U、およびLのデータを受け取る動作を開始する(ステップ2502)。他のホームボックスは、ホームボックス内の粒子に加える力を計算すると、計算された力をホームボックスに送る動作を開始し、そのホームボックスは受け取る動作を開始する(ステップ2503)。ホームボックスは、すでに、ホームボックス内の粒子に関するデータすべてを持っており、そのため、進行中の通信のどれの完了を待たずにホームボックス−ホームボックス相互作用を実行することが可能である(ステップ2504)。ホームボックスがステップ2502で開始されたプレート(P)内の粒子に対するデータを受け取るステップを終了した後(ステップ2505)、ホームボックスは、ホームボックス・プレート(H−P)相互作用を計算する(ステップ2506)。ホームボックスがステップ2502で開始された上側タワー(U)内の粒子に対するデータを受け取るステップを終了した後(ステップ2507)、ホームボックスは、ホームボックス−上側タワー(H−U)相互作用を計算し(ステップ2508)、プレート−上側タワー(P−U)相互作用を計算する(ステップ2509)。この時点で、ホームボックスは、上側タワー(U)内の粒子について計算された力をそれぞれのホームボックスに送る動作を開始する(ステップ2510)。ホームボックスがステップ2502で開始された下側プレート(P)内の粒子に対するデータを受け取るステップを終了した後(ステップ2511)、ホームボックスは、プレート−下側プレート(P−L)相互作用を計算する(ステップ2512)。この時点で、ホームボックスは、プレートおよび下側タワー内の粒子について計算された力をそれぞれのホームボックスに送る動作を開始する(ステップ2513)。最後に、ホームボックスは、他のホームボックスからの粒子について計算された力を受け取る動作を終了する(ステップ2514)。
計算する必要のある対毎の相互作用の数を考慮することによりマルチ・ゾーン法のインポート体積(Vimport)に下限を設けている。この下限は、
上記に関して、Nzrは、遠隔粒子をインポートするゾーンの数であり、Vhは、ホームボックスの体積である。Vir,remoteは、ランダムに選択された粒子について他のプロセッサに置かれている相互作用領域の部分の予想される体積である。Vir,remoteは、R、Vh、およびホームボックス・アスペクト比に依存する。下限は、ゾーンの数が増えるか、Vhが増大するか、またはRが減少するとともに減少する。
上の説明では、正規化されたホームボックス・アスペクト比αx=hx/Vh 1/3、αy=hy/Vh 1/3、αz=hz/Vh 1/3および並列化パラメータaR=R/Vh 1/3が使用されている。この有効相互作用領域体積は、任意のNzrについて大きなαRの限界において、また任意のαRについて限界Nzr=1において正確である。
対称性により、有効長距離相互作用領域の体積は、立方体ホームボックスに関して最小化される(αx=αy=αz=1)。これにより、ホームボックス・アスペクト比とは無関係の緊密度の低い下限が
この下限は、立方体ホームボックスが最適であることを示しておらず、単に、ホームボックス・アスペクト比と無関係の下限である。下限にはαRを伴う3つの項がある。これらの項は、幾何学的に、相互作用近傍の8つのコーナー(3次項)、12辺(2次項)、および6面(1次項)に由来する。
項の大きさは、コーナーの項の大きさが1.0となるように正規化される。低い並列度限界では、面の項がインポート体積を決め、次いで、辺の項、そしてコーナーの項と続く。この限界において、方法により、相互作用近傍の面を覆うのに必要なインポートの体積を最小にしなければならず、その後、辺のインポートが続く。しかし、並列化パラメータが大きくなると、これらの優先度は変化する。第1の遷移点は、αR>2/π〜0.64のところで生じる。この遷移の後、優先度は、辺、面、コーナーの順になる。次の遷移は、αR>(9/(2π))1/2〜1.20のところで生じ、次いで、優先度は、辺、コーナー、面の順になる。最終遷移は、優先度が、コーナー、辺、面の順になったときにαR>2.25で生じる。
この節では、一般化アプローチの特定のインスタンスが提示される。ほとんどの方法は、特定の意味で最適であることが実証されていないが、多くの場合において、これらの方法は、意図された形態に対する帯域幅に関して最適であるか、または最適に非常に近いと考えられる。説明されているほとんどの方法において、適用される必要のある唯一の相互作用フィルタ処理は、相互作用半径および局所的相互作用フィルタ処理である。つまり、フィルタ処理は、一般的には、同じホームボックスから出る粒子の対の場合以外、系内で粒子の対を複数考慮することを避ける必要はない。
HS法のインポート領域は、4つのコーナー・インポート部分領域、6つの辺インポート部分領域、および3つ面インポート部分領域からなる。面部分領域は、1つの次元で異なるホームボックス、2つの次元で異なる辺部分領域、および3つの次元すべてで異なるコーナー部分領域を含む。直観的には、1/2シェル法は、低い並列度限界(αR<0.64)で実現可能な最良のものと思われる。しかし、この場合はそうではない。
(ia←→b,ja←→b,ka←→b)=(min(ia,ib),min(ja,jb),min(ka,kb))
により記述される。全インポート体積は、
この方法は、低い並列度限界では最適な帯域幅法となりうる。また、高い対称性を有し、さまざまなネットワーク・トポロジに関してメリットとなりうる。図29を参照すると、多くの方法の帯域幅は、1/2シェル(HS)法2910の標準と比較される。1/8シェル2914法は、立方体ホームボックスを使用した場合に、いくつかの他の方法および近似的な下限と比較される。1/8シェル法は、面領域、辺領域、およびコーナー領域を最小にするという低並列度最適化優先度に従う。最適化優先度は、異なる幾何学的カテゴリに関するインポート体積に対する寄与分の原点を並列度に応じて示す。例えば、並列度が低い場合、面インポートはインポート領域を支配し、したがって、さらなる最適化を行うため優先的に扱うために好ましい。
範囲0.64<αR<1.20に対するあるクラスの方法は、最適化優先度によく合う場合がある。図30を参照すると、スライス1/2シェル(SHS)は、スライスされた半球配列の4つのコーナー・インポート部分領域3010(単一ゾーンC4として表される)と5つの面インポート3020(5つのゾーンN、S、E、W、Lとして表される)からなる。SおよびW面インポートは、ホームボックス3030と相互作用しないのでNおよびE面よりも遠くで丸めることが可能であることに留意されたい。図30に対応するスケジュールは、図31に示されている。
マルチ・ゾーンNT法のスケジュールは、上で説明され、図24に示されている。図32を参照すると、図18に例示されている2ゾーンSNT法のマルチ・ゾーンは、ホームボックス3210の下にある、拡張ベース3220からなる。コーム3230およびホームボックスと同じ高さのベースの部分3240は、4つのインポート領域を形成する。コーム3250の残り部分は、残りのインポート領域を形成する。マルチ・ゾーンSNT法は、図33に示されている比較的複雑なスケジュールを有する。
ムとの間の体積のバランスを最適化する。漸近的に、面インポートは、インポート体積に対する無視できる寄与分であり、固定されたアスペクト比では、SNT法で得られるインポート帯域幅はNT法に比べて低い。最適化優先度に基づく、NT法は、1.20<αR<2.25の並列化形態では最も実現性が高いと予想されるが、SNT法は、αR>2.25を超えたところで実現可能になると予想される。したがって、クロスバーは、図34に示されているように、立方体ホームボックスに対しαR〜2.7のところにある。
泡法は、図15に例示されている方法の3次元への一般化である。泡法のこのような変更形態は、多くの丸めの機会を有し、頂部がホームボックスの頂部と同じ高さであるホームボックス上のxおよびy方向に中心を置くs×s×s次元のホームボックスのレンガをインポートする。ホームボックスは、さらに、s×s×sの周期性を持つホームボックスの泡もインポートする。泡の底部は、ホームボックスの底部と同じ高さであり、泡はこのレンガに当てて丸められ、半球構造を形成する。(低並列度限界では、レンガも丸めることが可能であるが、この方法は、その限界については競合しない。)漸近的には、この方法のインポート体積は、
インポート体積が最小になるように周期性を最適化すると、
したがって、最適な泡法の漸近的インポート体積は、
泡法では、2つの遠隔ゾーンを使用する方法に対し正確な下限を漸近的に達成する。実際には、この方法は、並列化パラメータが大きい状況に最もよく適合する。図34に示されているように、泡は、〜14を超える並列化パラメータでしか競合しない。これは、プロセッサの個数が増えるとともに、インポート体積に対する泡面と泡コーナーのオーバーヘッドの相対的寄与率が非常にゆっくりとしか下がらないという事実の帰結である。
ポートされるホームボックスの数は、泡が実用的である場合に大きいため、ゾーン相互作用スケジュールは、簡単のため省かれる。概念的には、スケジュールの重要な要素は、ホームボックスは泡およびレンガの両方と相互作用するが、泡およびレンガは、互いに相互作用する。
図34および35は、並列化パラメータの範囲にわたって上述の多くの方法のインポート体積をまとめたものである。立方体ホームボックスについては、ES法はαR<0.8の場合にこれらの方法のうちで最もよい。NT法は、0.8<αR<2.7の範囲内で最良である。SNT法は、2.7<αR<〜14の範囲内で最良である。それを超えると、泡法は次第に競合するようになる。これらの遷移は、並列化に使用されるプロセッサの数に関係しうる。例えば、N=25,000個の原子およびR=12{A}とした分子力学シミュレーションを考える。生体系は、おおよそD=0.1/{A}3の原子密度を有する。立方体ホームボックスが使用されており、それぞれの原子は、単一の粒子により表されると仮定すると、並列化パラメータは、これらのパラメータで
図34のグラフは、〜75個未満のプロセッサを使用した場合に、1/8シェル法により通信帯域幅が最小になることを示している(適度なサイズのクラスタ)。プロセッサ数が〜75から〜2,800までの範囲(大規模クラスタ)であれば、NT法が最良である。2,800個を超えるプロセッサがある場合(例えば、BlueGeneまたはQCDOCなどでの超並列ハードウェアの範囲内)、間隔が2のSNT法で始まる、より巧妙な方法が好ましい。泡法は、極端な50万プロセッサ・レベルにおいて好ましいものとなり始める。
上の説明では、対毎の相互作用を計算するという背景状況において、さまざまなアプローチが説明されている。これらのアプローチは、さらに、2つよりも多い粒子からなる集合の間の相互作用を計算することに適用することが可能である。例えば、分子中の原子間の力は、これらのアプローチを使用して構成される。マルチ・ゾーン・アプローチでは、例えば、ES法を使用することで、2つよりも多いゾーンの特定の組合せをスケジューリングして、そのような複数の粒子相互作用を構成することができる。
1.座標次元のそれぞれについて、中間点の座標を粒子の座標の算術平均として近似する。
2.座標次元のそれぞれについて、中間点の座標を粒子の座標の算術平均として近似する。
ート体積が少し増えるだけで十分であるが、それは、結合項に関わる粒子の空間的配列は、任意ではなく、例えば、原子の対は通常の条件の下で互いからある最小距離を保たなければならないからである。
上述のアルゴリズム技術のうちの1つまたは複数を含む、粒子相互作用を計算する1アプローチでは、シリアル化されたソフトウェア実装を使用する。このような実装では、処理ノードは、シリアル化の方法でホームボックスに対する計算を実行する。例えば、それぞれのホームボックスについて、ゾーンのそれぞれの対に含まれる粒子の対の間の相互作用がプロセッサにより計算されるマルチ・ゾーン法が実装される。このようなシリアル化実装の一バージョンでは、単一の処理ノードがシリアル化の方法ですべてのホームボックスに対するすべての計算を実行する。他のバージョンでは、複数の処理ノードの集合のうちの単一の処理ノードが、例えば、空間の1領域(例えば、立方体)を一緒に定義するホームボックスの集合に関わる。処理ノードは、少なくとも一部の共通メモリを共有する多数のプロセッサを備えていてもよい。例えば、1つのノードにある複数のプロセッサのそれぞれが、プライベート・キャッシュ・メモリを備え、全体としてノードのローカルにある共有メモリにアクセスすることができる。例えば、処理ノード間で共有される他のレベルのメモリもありえるが、それは以下の説明には直接的に重要であるわけではない。
模な行列乗算の固有の実装は、行列全体の乗算がキャッシュ・メモリ内に収まりきらないときにメイン・メモリ(帯域幅)との間で転送されるO(N3)のデータを必要とする。一般に、これは、計算が続く間、行列内のエントリが繰り返しフラッシュされ、次いで、キャッシュ内にロードされる結果として生じる。しかし、それぞれの行列を「キャッシュ・ブロック」のコレクションに分けて、適切なスケジュールを決定することにより、キャッシュ・ブロックがロードされ、処理され、格納され、行列同士の乗算は、O(N2)の帯域幅を持つように構造化される。
果を伝達することができる。
上述のアルゴリズム技術のうちの1つまたは複数を含む、粒子相互作用を計算する他のアプローチでは、クラスタ・アーキテクチャを使用する。このアーキテクチャでは、多数のコンピュータが、通信ネットワーク、例えば、1つまたは複数のGigabit Ethernet(登録商標)セグメントにより結合される。それぞれのコンピュータは、例えば、オペレーティング・システム(例えば、Linux)を実行する汎用コンピュータとすることが可能である。
上述のアルゴリズム技術のうちの1つまたは複数を含むことができる、粒子相互作用を計算する他のアプローチでは、粒子相互作用を計算するために必要なさまざまな計算に特に適している専用ハードウェアを使用する。専用ハードウェアは、複数の処理ノードを含む並列アーキテクチャで配列され、それぞれの処理ノードは1つのホームボックスに関連付けられている計算を受け持つ。このアーキテクチャでは、ノード間通信が可能である。ノードを一配列は、3次元アレイであり、それぞれのノードは3本の直交軸にそってその6つの隣接要素と直接通信し、粒子データの通信は、複数のノードを通してデータを受け渡し宛先に届くようにすることを伴うことができる。
836を含む。これらの計算のそれぞれの一部として、力累算3838で、それぞれの粒子に対する力の合計を決定し、特定の粒子に対する力は潜在的に空間スケールのそれぞれにおける計算により決定される成分を含む。それぞれの時間ステップで空間スケールのそれぞれにおいて力計算を実行する必要はない。遠隔力計算は、結合力計算に比べてそれほど頻繁には実行されないミッドレンジ計算に比べてそれほど頻繁には実行されないが、例えば、MTS(Multiple Time Scale)および/またはRESPA(REference System Propagator Algorithm)アプローチを使用する。
内部的な並列を利用する。全体として、この実装は、計算の並列処理およびパイプライン化をアーキテクチャの複数のレベルで実現する。
ドの4Gのアドレス・ロケーション(例えば、バイト)に残り32ビットを予約する。ノードの異なるアドレス範囲は、リング・ステーション内に格納されている経路選択情報に基づいてノード上の異なるリング・ステーションにマッピングされ、それぞれのリング・ステーションでは、異なるアドレス範囲が、リング・ステーションに結合された異なるサブシステムにマッピングされる。パケットは可変長であり、1ユニット(つまり、ヘッドのみ)から9ユニット(ヘッダと8ユニットのデータ)までの長さを持ち、それぞれのユニットは、例えば、256ビットである。
プid毎に異なるパターンのマルチキャストを構成することができる。確認応答は不要であることに留意されたい。マルチキャスト・パターンの構成は、リング・ステーション間に分配され、それぞれ経路選択パターン全体のうちの限られた部分しか見えない。
システムのノード間に適宜分割される。特に、粒子データ(位置および速度)は、粒子のホームボックスの柔軟なサブシステム内にある。それに加えて、それぞれの結合項は、その計算を受け持つ「所有者」ノードを有する。
図41を参照し、単一の粒子−粒子相互作用モジュール(PPIM)4100を考えることにより、ミッドレンジ・サブシステムの動作を理解することができる。一般に、粒子間の相互作用を計算するため、反復毎に、反復の始めに、粒子の1つの集合に対する粒子データを最初にPPIM内のメモリにロードする。次いで、他の集合内の粒子はPPIMを超えてストリーミングされ、ストリーミングされる粒子に力の寄与分をもたらす。反復の終わりに、PPIMに入っていた粒子に対する力の寄与分がストリーミング出力される。
、異なる計算は、データをリロードすることなく、PPIMにより実行可能であり、例えば、第2の計算の第1のフェーズ(データ・ロード)フェーズを第1の計算の第3のフェーズ(結果アンロード)フェーズにおいて実行される。
Mを超えてストリーミングされる。隣接するノードのホームボックスに対するグリッド位置がストリーミングされるだけでなく、現在のノードのホームボックスのグリッド位置もストリーミングされることに留意されたい。NT方を使用するこの計算では、粒子相互作用に対する順序付けがあり、2つの等しいが向きが反対の力は一度に計算されないため、「フルプレート」が必要であることに留意されたい。電荷拡散では、データが、第3のフェーズでPPIMにより累算されること、ストリーミング出力されることを必要としないが、力の補間では、PPIMは、第2のフェーズにおいて、出力を行う必要はなく、補間された力は第2のフェーズで累算され、第3のフェーズでPPIMからストリーミング出力される。
計算のためミッドレンジ・サブシステムに送られ、結合項の計算のため他のプロセッサに送られる。
上述のアルゴリズム技術、またはハードウェアもしくはソフトウェア技術は、さまざまな用途に適用可能であり、そのうち一部は、生体分子シミュレーションに関係し、他はそうではない。応用例としては、例えば以下のものがある。
代替えとして、分散処理のさまざまな配列形態が上述の計算分解とともに使用される。
処理ノードとホームボックスとの間に一対一対応関係がある必要もない。例えば、それぞれのノードは、n×n×nの立方体のホームボックスなどの、ホームボックスの集合に関与しうる。ホームボックスのそのようなより細かな定義の用途の1つは、マルチ・ゾーン・スケジュール・アプローチであり、ゾーン間相互作用のスケジュールを使用することで重複計算の検査の必要をなくしたり、改善された丸めを通じて通信量を低減したりすることが可能である。そのようなより細かなホームボックスの他の用途は、相互作用ゾーンのそれぞれの対に関わる計算をシリアル化し、処理ノードのそれぞれにおける、ローカル・キャッシュ・メモリなどのローカル・メモリを有効に利用することである。メモリ利用の態様は、直列実装に関して以下で詳細に記載される、
並列実装の代替えバージョンでは、それぞれのノードは、ホームボックス内に配置されたものよりも多い粒子に対するデータを保持する。「クローン・バッファ」アプローチは、中間点割り当て規則アプローチとともに使用される。特に、それぞれのノードは、ホームボックスの境界を超えて距離R/2だけ伸びる領域から粒子データを格納する。それぞれの計算フェーズの後、拡張された領域内のすべての粒子に対する力がそのノードに送られ、これにより、粒子の新しい位置を冗長に計算することが可能になる。計算フェーズでは、例えば、中間点割り当て規則または擬似ランダム割り当て規則を使用して、粒子データをさらにインポートすることは必要ないが、その理由は、拡張領域が必要なすべての粒子を含むからである。
も1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取り、データ記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送るように結合された少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能である1つまたは複数のコンピュータ・プログラムで実装されうる。それぞれのコンピュータ・プログラムは、高水準手続きプログラミング言語、オブジェクト指向プログラミング言語、または必要ならばアセンブリもしくは機械言語で実装することができる。そのような言語は、コンパイラ言語またはインタプリタ言語としてよい。好適なプロセッサは、例えば、汎用マイクロプロセッサおよび専用マイクロプロセッサのいずれか(または両方)を含む。一般に、プロセッサは、読み取り専用メモリおよび/またはランダム・アクセス・メモリから命令およびデータを受け取る。一般に、コンピュータは、データ・ファイルを格納するための1つまたは複数の大容量記憶装置デバイスを備える。そのようなデバイスは、内蔵ハードディスクおよびリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、または光ディスクを含む。コンピュータ・プログラムの命令およびデータを明確に具現化するのに好適な記憶装置デバイスは、例えば、EPROM、EEPROM、およびフラッシュ・メモリ・デバイスなどの半導体メモリ・デバイス、内蔵ハードディスクおよびリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、およびCD−ROMディスクを含む、あらゆる形態の不揮発性メモリを含む。前記は、いずれも、特定用途向け集積回路(ASIC)などの特定用途向けハードウェアに組み込まれるか、または補足されることが可能である。
尚、国際出願の英文明細書中にJISコードで表記できない箇所があったため、この翻訳文では代替表記を使用した、具体的には、
{A}は、
Claims (2)
- シミュレーション体積の幾何学的パーティション分割に応じて配列された粒子同士の相互作用を計算するための並列処理システムで使用する処理ノード(3720)であって、前記処理ノード(3720)は、
前記シミュレーション体積の選択した1領域(3710)内の粒子に対する粒子データ用の記憶のために、プロセッササブシステム(3912)、計算サブシステム(3914,3916)、およびメモリサブシステム(3950,3954)を含むサブシステムのグループと、
いくつかの前記サブシステムをリンクする通信サブシステム(3920,3922)であって、前記通信サブシステム(3920,3922)は、前記処理ノードのサブシステムと、処理システムの他の処理ノードのサブシステムとの間に、リンクの少なくとも一部を形成することと
を含み、
前記計算サブシステム(3914,3916)は、空間的位置にそれぞれ関連付けられているデータ要素の間の対毎の計算を実行する計算回路と;
データ要素にそれぞれ関連付けられている空間的位置の間の分離に応じて前記データ要素の対を選択する選択回路と
を備えることを特徴とする、処理ノード。 - シミュレーション体積の幾何学的パーティション分割に応じて配列された粒子同士の相互作用を計算するための並行処理システムであって、前記並行処理システムは、
前記幾何学的パーティション分割に応じて配列された複数の計算ノード(3720)であって、前記計算ノードのそれぞれは、シミュレーション体積の対応する1領域(3710)内の粒子に対する粒子データ用の記憶装置(3954)を備えることと;
前記計算ノードのそれぞれに対応付けられたプロセッササブシステム(3912,3914,3916)と;
前記計算ノード(3720)同士を相互接続するリンク(3730)を含む通信システム(3920,3922,3730,3930)と
を備え、
分散方式で前記計算ノードを一緒にまとめたプロセッササブシステムは、粒子相互作用の計算を調整する
ことを特徴とする、並行処理システム。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US70918405P | 2005-08-18 | 2005-08-18 | |
US60/709,184 | 2005-08-18 | ||
US75644806P | 2006-01-04 | 2006-01-04 | |
US60/756,448 | 2006-01-04 | ||
USPCT/US2006/014782 | 2006-04-19 | ||
PCT/US2006/014782 WO2006113825A1 (en) | 2005-04-19 | 2006-04-19 | Scalable method for the evaluation of distance-limited pairwise particle interactions |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012015530A Division JP6047288B2 (ja) | 2005-04-19 | 2012-01-27 | 粒子相互作用を計算するための並行計算アーキテクチャ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016154389A Division JP2016219044A (ja) | 2005-08-18 | 2016-08-05 | 粒子相互作用を計算するための並行計算アーキテクチャ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014170556A true JP2014170556A (ja) | 2014-09-18 |
JP2014170556A5 JP2014170556A5 (ja) | 2015-01-29 |
Family
ID=51692848
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014076105A Pending JP2014170556A (ja) | 2005-08-18 | 2014-04-02 | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2016154389A Pending JP2016219044A (ja) | 2005-08-18 | 2016-08-05 | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2016185526A Active JP6251790B2 (ja) | 2005-08-18 | 2016-09-23 | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2018204629A Active JP6778728B2 (ja) | 2005-08-18 | 2018-10-31 | 粒子相互作用を計算するための並行計算アーキテクチャ |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016154389A Pending JP2016219044A (ja) | 2005-08-18 | 2016-08-05 | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2016185526A Active JP6251790B2 (ja) | 2005-08-18 | 2016-09-23 | 粒子相互作用を計算するための並行計算アーキテクチャ |
JP2018204629A Active JP6778728B2 (ja) | 2005-08-18 | 2018-10-31 | 粒子相互作用を計算するための並行計算アーキテクチャ |
Country Status (1)
Country | Link |
---|---|
JP (4) | JP2014170556A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102019108160A1 (de) * | 2019-03-29 | 2020-10-01 | Airbus Operations Gmbh | Bipolarplatte zur Verwendung in einem Brennstoffzellenstapel |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03204758A (ja) * | 1990-01-06 | 1991-09-06 | Fujitsu Ltd | 粒子運動シミュレーション処理方式 |
JPH09185592A (ja) * | 1995-12-19 | 1997-07-15 | Commiss Energ Atom | 多重並列構造プロセッサのアレイシステムアーキテクチャ |
JP2000508096A (ja) * | 1996-02-20 | 2000-06-27 | コザ,ジョン・アール | 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2976675B2 (ja) * | 1992-02-21 | 1999-11-10 | 日本電気株式会社 | アレイプロセッサのルーティング方法 |
JP2004038642A (ja) * | 2002-07-04 | 2004-02-05 | Renesas Technology Corp | マルチプロセッサ |
JP3832431B2 (ja) * | 2002-12-25 | 2006-10-11 | ソニー株式会社 | 画像処理装置 |
-
2014
- 2014-04-02 JP JP2014076105A patent/JP2014170556A/ja active Pending
-
2016
- 2016-08-05 JP JP2016154389A patent/JP2016219044A/ja active Pending
- 2016-09-23 JP JP2016185526A patent/JP6251790B2/ja active Active
-
2018
- 2018-10-31 JP JP2018204629A patent/JP6778728B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03204758A (ja) * | 1990-01-06 | 1991-09-06 | Fujitsu Ltd | 粒子運動シミュレーション処理方式 |
JPH09185592A (ja) * | 1995-12-19 | 1997-07-15 | Commiss Energ Atom | 多重並列構造プロセッサのアレイシステムアーキテクチャ |
JP2000508096A (ja) * | 1996-02-20 | 2000-06-27 | コザ,ジョン・アール | 遺伝的プログラミングを使用した複雑な構造の自動設計の方法および装置 |
Non-Patent Citations (1)
Title |
---|
JPN6015021079; 五明 則人: '大規模並列システムにおける動的負荷分散のシミュレーションによる性能評価' シミュレーション 第16巻,第3号, 19970915, pp.55-63, (株)日鉄技術情報センター * |
Also Published As
Publication number | Publication date |
---|---|
JP2019071062A (ja) | 2019-05-09 |
JP6251790B2 (ja) | 2017-12-20 |
JP2016219044A (ja) | 2016-12-22 |
JP2016224989A (ja) | 2016-12-28 |
JP6778728B2 (ja) | 2020-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5592523B2 (ja) | 多数の物体の相互作用を計算する計算ユニットを決定するための方法 | |
Phillips et al. | Scalable molecular dynamics on CPU and GPU architectures with NAMD | |
JP2009505299A (ja) | 粒子相互作用を計算するための並行計算アーキテクチャ | |
Zhang et al. | Implementation of parallel genetic algorithm based on CUDA | |
JP6251790B2 (ja) | 粒子相互作用を計算するための並行計算アーキテクチャ | |
Koanantakool et al. | A computation-and communication-optimal parallel direct 3-body algorithm | |
Nuttall | Parallel implementation and application of the random finite element method | |
Stone et al. | GPU Algorithms for Molecular Modeling. | |
Bylaska et al. | Performance evaluation of NWChem ab-initio molecular dynamics (AIMD) simulations on the Intel® xeon Phi™ processor | |
Ocetkiewicz et al. | Multi-GPU UNRES for scalable coarse-grained simulations of very large protein systems | |
Koanantakool | Communication Avoidance for Algorithms with Sparse All-to-all Interactions | |
Athanasaki et al. | Hyperplane grouping and pipelined schedules: How to execute tiled loops fast on clusters of SMPs | |
Kohnke | GPU fast multipole method with lambda-dynamics features | |
Abduljabbar | Communication reducing approaches and shared-memory optimizations for the hierarchical Fast Multipole Method on distributed and many-core systems | |
Lingg | Novel Parallel Algorithms and Performance Optimization Techniques for the Multi-Level Fast Multipole Algorithm | |
Kulkarni | Implementation of a parallel tridiagonal solver for linear system of equations arising in Physicell-BioFVM | |
Deveci | Load-balancing and task mapping for exascale systems | |
Stevens | GPU-optimized graph theory analysis of allosteric protein signaling networks | |
Rushaidat | Efficient algorithms and optimizations for scientific computing on many-core processors | |
Succi et al. | A six lecture primer on parallel computing | |
Abraham | Efficient load balancing strategies on a network of computers: a case study with two scientific computing problems | |
Hu | Efficient data-parallel implementations of highly irregular problems | |
Edelman et al. | 6: 50s A Peek at Parallel Processing from an Applications Perspective | |
Edelman | 18.337 J/6.338 J Applied Parallel Computing (SMA 5505), Spring 2005 | |
Kristensen | Towards Parallel Execution of Sequential Scientific Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141208 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150527 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150602 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20150902 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151113 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20160412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160805 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20161003 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20161222 |