(57)【要約】【課題】粒子相互作用を計算するための並行計算アーキテクチャを提供する。【解決手段】粒子相互作用を計算するためのアーキテクチャは種々の並行処理を用いる。並行処理は、シミュレーション体積の幾何学的パーティション分割に応じて配列された複数の計算ノードを含む。ノードのそれぞれは、シミュレーション体積の１領域内の粒子に対する粒子データ用の記憶装置を備える。通信システムは、計算ノードを相互接続するリンクを含む。ノードのそれぞれはプロセッサ・サブシステムを含む。分散方式で計算ノードを一緒にまとめたプロセッサ・サブシステムは、粒子相互作用の計算を調整する。【選択図】  図３８
2014170556.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーション体積の幾何学的パーティション分割に応じて配列された粒子同士の相互作用を計算するための並列処理システムで使用する処理ノード（３７２０）であって、前記処理ノード（３７２０）は、
前記シミュレーション体積の選択した１領域（３７１０）内の粒子に対する粒子データ用の記憶のために、プロセッササブシステム（３９１２）、計算サブシステム（３９１４，３９１６）、およびメモリサブシステム（３９５０，３９５４）を含むサブシステムのグループと、
いくつかの前記サブシステムをリンクする通信サブシステム（３９２０，３９２２）であって、前記通信サブシステム（３９２０，３９２２）は、前記処理ノードのサブシステムと、処理システムの他の処理ノードのサブシステムとの間に、リンクの少なくとも一部を形成することと
を含み、
前記計算サブシステム（３９１４，３９１６）は、空間的位置にそれぞれ関連付けられているデータ要素の間の対毎の計算を実行する計算回路と；
データ要素にそれぞれ関連付けられている空間的位置の間の分離に応じて前記データ要素の対を選択する選択回路と
を備えることを特徴とする、処理ノード。
【請求項２】
シミュレーション体積の幾何学的パーティション分割に応じて配列された粒子同士の相互作用を計算するための並行処理システムであって、前記並行処理システムは、
前記幾何学的パーティション分割に応じて配列された複数の計算ノード（３７２０）であって、前記計算ノードのそれぞれは、シミュレーション体積の対応する１領域（３７１０）内の粒子に対する粒子データ用の記憶装置（３９５４）を備えることと；
前記計算ノードのそれぞれに対応付けられたプロセッササブシステム（３９１２，３９１４，３９１６）と；
前記計算ノード（３７２０）同士を相互接続するリンク（３７３０）を含む通信システム（３９２０，３９２２，３７３０，３９３０）と
を備え、
分散方式で前記計算ノードを一緒にまとめたプロセッササブシステムは、粒子相互作用の計算を調整する
ことを特徴とする、並行処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、粒子反応の計算に適用可能なアルゴリズムならびにハードウェアおよびソフトウェア技術を含む、粒子反応の計算に関する。
【背景技術】
【０００２】
多体相互作用（「Ｎ体」問題と呼ばれることが多い）のシミュレーションは、天体力学および計算化学を含む多くの問題領域において有用である。生体分子または静電気粒子相互作用のシミュレーションは、系内の粒子間の相互作用の非常に詳しい図を描くことにより実験を補完するものである。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ヘッフェルフィンガー（Ｈｅｆｆｅｉｆｉｎｇｅｒ）「Ｐａｒａｌｌｅｌ  ａｔｏｍｉｓｔｉｃ  ｓｉｍｕｌａｔｉｏｎｓ」Ｃｏｍｐｕｔｅｒ  Ｐｈｙｓｉｃｓ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ、第１２８巻、２１９〜２３７ページ（２０００）およびプリンプトン（Ｐｌｉｍｐｔｏｎ）「Ｆａｓｔ  Ｐａｒａｌｌｅｌ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｓｈｏｒｔ  Ｒａｎｇｅ  Ｍｏｌｅｃｕｌａｒ  Ｄｙｎａｍｉｃｓ」Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｐｈｙｓｉｃｓ、第１１７巻、１〜１９ページ（Ｍａｒｃｈ  １９９５）
【非特許文献２】マークスニール（Ｍａｒｃ  Ｓｎｉｒ）により「Ａ  Ｎｏｔｅ  ｏｎ  Ｎ−Ｂｏｄｙ  Ｃｏｍｐｕｔａｔｉｏｎｓ  ｗｉｔｈ  Ｃｕｔｏｆｆｓ」（Ｔｈｅｏｒｙ  Ｃｏｍｐｕｔ．Ｓｙｓｔｅｍｓ  第３７巻、２９５〜３１８ページ、２００４）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
シミュレーションにおける重要な問題点は、シミュレーション速度である。
対を列挙することにより系内の物体のすべての対の間の相互作用を決定する作業は、多量の計算を必要とし、そのため、反対称相互作用法が使用されることが多い。例えば、特定の粒子の定義済み半径内にあるすべての粒子は、遠く離れている粒子は無視しつつ、その粒子と相互作用する。シミュレーションに要する総計算時間を短縮するために、専用ハードウェアも用いられている。
【課題を解決するための手段】
【０００５】
本発明の一観点によれば、一般に、並列処理システムは、粒子相互作用を計算することを目的としている。システムは、シミュレーション体積の幾何学的パーティション分割に応じて配列された複数の計算ノードを備える。ノードのそれぞれは、シミュレーション体積の１領域内の粒子に対する粒子データ用の記憶装置を備える。システムは、さらに、計算ノードを相互接続するリンクを含む通信システムも含む。ノードのそれぞれは、プロセッサ・サブシステムを含み、分散方式で計算ノードを一緒にまとめたプロセッサ・サブシステムは、粒子相互作用の計算を調整する。
【０００６】
態様は、以下のうちの１つまたは複数を含む。
通信システムは、トロイダル形状のメッシュを形成する。
通信システムは、分離コンポーネントを備え、それぞれのコンポーネントは計算ノードの異なる近傍をリンクする。
【０００７】
通信システムのそれぞれの分離コンポーネントは、複数の計算ノードのうちの２つのノ
ードの間の２地点間リンクを含む。
粒子データの少なくとも一部を複数の計算ノードの他のノードに送ることは、通信システムの複数の分離コンポーネントにわたって他の計算ノードを介してデータを渡すことを含む。
【０００８】
計算ノードのそれぞれは、さらに、通信システムの通信サブシステムを備える。
通信サブシステムは、プロセッサ・サブシステムの介入なしで一方の計算ノードから他方の計算ノードへ粒子データを渡すように構成可能である。
【０００９】
それぞれのノードは、
（ｉ）計算にそのデータを必要とする複数の計算ノードの他のノードに粒子データを送り、
（ｉｉ）複数の計算ノードのうちの他のノードから送られた粒子データを受け取り、
（ｉｉｉ）受け取った粒子データを使用して計算を実行し、第１の結果を出力し、
（ｉｖ）第１の結果を複数の計算ノードの他のノードに送り、
（ｖ）第１の結果を複数の計算ノードの他のノードから送られる第１の結果を受け取り、
（ｖｉ）受け取った第１の結果を使用してさらに計算を実行し、第２の結果を出力するように構成されている。
【００１０】
システムは、（ｉ）〜（ｖｉ）のステップ全てを反復するように構成される。
システムは、（ｉ）〜（ｖｉ）のステップ全て又はいくつかを連続して反復するように構成される。
【００１１】
システムは、シミュレーションを繰り返すたびに、（ｉ）〜（ｖｉ）のステップを反復するように構成される。
通信システムは、計算ノードから粒子データを受け取り、その粒子データを複数の計算ノードのうちの他のノードの近傍に分配するように構成される。
【００１２】
通信システムは、粒子データを分配するように近傍を構成するための記憶装置を備える。
計算ノードのそれぞれは、さらに、通信システムの通信サブシステムを備え、通信サブシステムはプロセッサ・サブシステムの介入なしで一方の計算ノードから他方の計算ノードへ粒子データを渡すように構成可能である。
【００１３】
計算ノードのそれぞれは、さらに、受け取った粒子データを使用して計算を実行し第１の結果を出力するため計算サブシステムを備える。
計算サブシステムは、さらに、そのノードで処理サブシステムの介入なしで、第１の結果を複数の計算ノードのうちの他の計算ノードに送ることを目的とする。
【００１４】
計算ノードのそれぞれは、さらに、処理サブシステムの介入なしで、複数の計算ノードのうちの他の計算ノードから第１の結果を受け取るためのメモリ・サブシステムを備える。
【００１５】
メモリ・サブシステムは、さらに、粒子の詳細について受け取った第１の結果を蓄積することを目的とする。
メモリ・サブシステムは、さらに、受け取った第１の結果に基づくデータを処理サブシステムに供給することを目的とする。
【００１６】
プロセッサ・サブシステムは、さらに、受け取った第１の結果を使用してさらに計算を
実行し、第２の結果を出力することを目的とする。
粒子データは、粒子位置データを含む。
【００１７】
第１の結果は、粒子力データを含む。
第２の結果は、粒子位置データを含む。
他の態様では、一般に、並列処理システムで使用する処理ノードは、サブシステムのグループを含む。サブシステムのこのグループは、プロセッサ・サブシステム、計算サブシステム、およびメモリ・サブシステムを含む。システムは、さらに、複数のサブシステムからなるグループに含まれるいくつかのサブシステムをリンクし、ノードのサブシステムと処理システムの他の処理ノードのサブシステムとの間にリンクの少なくとも一部を形成する通信サブシステムも含む。計算サブシステムは、空間的位置にそれぞれ関連付けられているデータ要素の間の対毎の計算を実行する回路を備える。
【００１８】
態様は、以下の特徴のうちの１つまたは複数を含む。
プロセッサ・サブシステムは、実質的に一般的な計算を行うようにプログラム可能である。
【００１９】
プロセッサ・サブシステムは、複数の独立にプログラム可能なプロセッサを備える。
通信サブシステムは、一群のインターフェイス・ユニットを含み、それぞれのインターフェイス・ユニットはサブシステムのグループに含まれる１つのサブシステムにリンクされ、通信サブシステムは、さらに、他の複数の処理ノードのインターフェイス・ユニットとリンクするための１つまたは複数のインターフェイス・ユニットを備える。
【００２０】
通信サブシステムは、サブシステムのグループに含まれる複数のサブシステムをリンクする通信リングを備える。
通信システムは、同じ処理ノード上のサブシステムと異なる処理ノード上のサブシステムとの間でアドレス指定可能なメッセージ受け渡しを実現する。
【００２１】
計算サブシステムは、粒子シミュレーション・システム内の粒子の対を伴う計算を行うように適合可能である。
計算サブシステムは、それぞれ粒子シミュレーション・システム内の粒子およびグリッド位置を伴う計算を行うように適合可能である。
【００２２】
サブシステムのグループおよび通信サブシステムは、単一の集積回路上に集積化される。
メモリ・サブシステムは、集積回路の外部の記憶装置デバイスとのインターフェイスを備える。
【００２３】
通信サブシステムは、他の集積回路上の通信サブシステムと通信するためのインターフェイスを備える。
他の態様では、一般に、計算システムは、処理モジュールの１つまたは複数の直列に相互接続された処理グループに配列された処理モジュールのアレイを備える。処理モジュールはそれぞれ、データ要素用の記憶装置を備え、データ要素の間の対毎の計算を実行する回路を備え、対毎の計算のそれぞれは、処理モジュールの記憶装置からのデータ要素および直列に相互接続された処理モジュールを通過するデータ要素を使用する。
【００２４】
態様は、以下のうちの１つまたは複数を含む。
処理モジュールのアレイは、２つまたはそれ以上の直列に相互接続された処理グループを含む。
【００２５】
処理モジュールの複数のグループのうちの少なくとも１つのグループは、処理モジュールのうちの２つまたはそれ以上の直列相互接続を含む。
このシステムは、さらに、処理グループ間にデータ要素を分配するための分配モジュールを備える。
【００２６】
このシステムは、さらに、複数の処理グループのうちのそれぞれにより生成される対毎の計算の結果を組み合わせるための組合せモジュールを備える。
他の態様では、一般に、処理モジュールは、マッチング・ユニットの集合を含み、それぞれのユニットはデータ要素の第１の集合の異なる部分集合に対する記憶装置に関連付けられている。処理モジュールは、さらに、データ要素の第２の集合内の一連のデータ要素を受け取るための入力を備え、この入力はマッチング・ユニットのそれぞれに結合されており、受け取ったデータ要素をマッチング・ユニットに渡す。このモジュールは、さらに、マッチング・ユニットにより選択された、第１の集合から取った１つのデータ要素と第２の集合から取った１つのデータ要素からなる、データ要素の複数の対を受け取るためマッチング・ユニットに結合された計算ユニット、および計算ユニットにより出力される結果を送出するための出力を備える。
【００２７】
態様は、以下の特徴のうちの１つまたは複数を含みうる。
モジュールは、受け取った一連のデータ要素を他のモジュールに送出するための出力を備える。
【００２８】
モジュールは、他のモジュールにより出力される結果を受け取るための入力を備える。
モジュールは、計算ユニットにより出力される結果と結果を受け取るための入力で受け取った結果とを組み合わせるマージ・ユニットを備える。
【００２９】
マージ・ユニットは、結果のそれぞれに関連付けられている第１の集合のデータ要素に応じて結果をマージするための回路を備える。
他の態様では、一般に、方法は、データ要素の第１の集合を受け取ることと、データ要素の第１の集合を処理モジュールの１つまたは複数の直列に相互接続された処理グループに配列されている処理モジュールのアレイの記憶装置に分配することと、データ要素の第２の集合を受け取ることと、データ要素を直列に相互接続された処理グループに通すこととを含む。
【００３０】
複数の処理モジュールのうちの少なくともいくつかのそれぞれにおいて、処理モジュールの記憶装置に格納される第１の集合からのデータ要素および処理グループを通過するデータ要素を伴う対毎の計算が実行され、対毎の計算の結果は、直列に相互接続されている処理グループに通される。この方法は、さらに、複数の処理グループのうちのそれぞれから渡された対毎の計算の結果を組合せ、組み合わせた結果を送ることを含む。
【００３１】
態様は、以下のうちの１つまたは複数を含む。
第１の集合および第２の集合のデータ要素は、多体シミュレーション・システム内の物体に関連付けられる。
【００３２】
対毎の計算は、物体の対の間の力に関連付けられる。
この方法は、さらに、複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、データ要素の全部ではなく一部を選択することを含み、データ要素は対毎の計算の実行に関して処理グループを通過する。
【００３３】
データ要素を選択することは、対毎の計算を実行するためにデータ要素の複数の対を選択することを含む。
データ要素の複数の対を選択することは、データ要素に関連付けられている空間的位置の間の距離間隔に応じて対を選択することを含む。
【００３４】
データ要素の第１の集合をアレイの記憶装置に分配することは、モジュールのそれぞれにおいて、データ要素を複数のマッチング・ユニットに分配し、それぞれのマッチング・ユニットはデータ要素の異なる部分集合を受け取ることを含む。
【００３５】
この方法は、さらに、マッチング・ユニットのそれぞれにおける複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、データ要素の全部ではなく一部を選択することを含み、データ要素は対毎の計算の実行に関して処理グループを通過する。
【００３６】
この方法は、さらに、複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、マッチング・ユニットの出力を組み合わせることと、この組み合わせた出力を計算ユニットに渡して対毎の計算を実行することとを含む。
【００３７】
他の態様では、一般に、ソフトウェア製品は、上記の方法のどれかのステップすべてを実行するように適合される。ソフトウェア製品は、コンピュータ可読媒体上に具現化されたステップを実行するための命令を備える。
【００３８】
他の態様および特徴は、以下の説明および請求項から明らかである。
【図面の簡単な説明】
【００３９】
【図１】さまざま分解方法の非対称的スケーリングの表。
【図２】Ｈａｌｆ−Ｓｈｅｌｌ（ＨＳ）法に対する領域の斜視図。
【図３】Ｎｅｕｔｒａｌ  Ｔｅｒｒｉｔｏｒｙ（ＮＴ）法に対する領域の斜視図。
【図４】Ｓｎｉｒ’ｓ  Ｈｙｂｒｉｄ（ＳＨ）法に対する領域の斜視図。
【図５】Ｈａｌｆ−Ｓｈｅｌｌ（ＨＳ）法の簡略化された２次元アナログの領域の図。
【図６】Ｎｅｕｔｒａｌ  Ｔｅｒｒｉｔｏｒｙ（ＮＴ）法の簡略化された２次元アナログの領域の図。
【図７】Ｓｎｉｒ’ｓ  Ｈｙｂｒｉｄ（ＳＨ）法と一部の特性を共有する２次元分解の領域の図。
【図８】２次元分解の領域の図。
【図９】２次元分解の領域の図。
【図１０】２次元分解の領域の図。
【図１１】２次元分解の領域の図。
【図１２】可換な相互作用に対するＨａｌｆ−Ｓｈｅｌｌ（ＨＳ）法の簡略化された２次元アナログの領域の図。
【図１３】可換な相互作用に対するＮｅｕｔｒａｌ  Ｔｅｒｒｉｔｏｒｙ（ＮＴ）法の簡略化された２次元アナログの領域の図。
【図１４】可換な相互作用に対するＳｎｉｒ’ｓ  Ｈｙｂｒｉｄ（ＳＨ）法と一部の特性を共有する２次元分解の領域の図。
【図１５】可換な相互作用に対する２次元分解の領域の図。
【図１６】丸めを使用する可換な相互作用に対するＨａｌｆ−Ｓｈｅｌｌ（ＨＳ）法の簡略化された２次元アナログの領域の図。
【図１７】丸めを使用する可換な相互作用に対するＳｎｉｒ’ｓ  Ｈｙｂｒｉｄ（ＳＨ）法と一部の特性を共有する２次元分解の領域の図。
【図１８】丸めを使用する（ＳＮＴ）法に対する領域の斜視図。
【図１９】「クラウド」法に対する領域の斜視図。
【図２０】「シティー」法に対する領域の斜視図。
【図２１】「フォーム」法に対する領域の斜視図。
【図２２】２次元マルチ・ゾーン法の領域の図。
【図２３】図２２に例示されている領域に対する計算スケジュール。
【図２４】図３に示されている分解のマルチ・ゾーン・バージョンに対する計算スケジュール。
【図２５】図２４の計算スケジュールに対応するアルゴリズム。
【図２６】計算寄与率対並列度のグラフ。
【図２７】「１／８シェル（ＥＳ）」法に対する領域の斜視図。
【図２８】図２７に示されている分解に対する計算スケジュール。
【図２９】インポート体積対並列度のグラフ。
【図３０】「スライス１／２シェル」法に対する領域の斜視図。
【図３１】図３０に示されている分解に対する計算スケジュール。
【図３２】丸めを使用する（ＳＮＴ）法に対する領域の斜視図。
【図３３】図３２に示されている分解に対する計算スケジュール。
【図３４】インポート体積対並列度のグラフ。
【図３５】インポート体積対並列度のグラフ。
【図３６】２次元擬似ランダム割り当て法の領域の図。
【図３７】並列実装のブロック図。
【図３８】流れ図。
【図３９】処理ノードの複数の要素を含むブロック図。
【図４０】処理反復におけるデータ・フローを例示する図。
【図４１】粒子間相互作用モジュール（ＰＰＩＭ）の機能ブロック図。
【図４２】ミッドレンジ・サブシステムのブロック図。
【図４３】ＰＰＩＭの一実装のブロック図。
【図４４】柔軟なサブシステムのブロック図。
【図４５】シリアル化実装のブロック図。
【発明を実施するための形態】
【００４０】
節の見出しは、読者の助けとなるように用意されており、説明を制限するものと解釈すべきでない。節の見出しの一覧を以下に示す。
１  概要
１．１  分子力学
１．２  分子力場
１．３  対毎の相互作用
１．４  メッシュ・ベースの計算
１．５  文書の編成
２  ＮＴ、ＳＨ、およびＨＳ法
２．１  ＨＳ法
２．２  ＮＴ法
２．３  ＳＨ法
３  一般化分解
３．１  畳み込み判定基準
３．２  割り当て規則
３．２．１  ＨＳ、ＮＴ、およびＳＨアナログ方式の割り当て規則
３．２．２  中間点割り当て規則
３．２．３  擬似ランダム割り当て規則
３．２．４  計算負荷分散
３．２．５  並進不変性
３．３  可換な相互作用
３．４  丸め判定基準
３．５  高次元での分解
４  共有通信
５  対リストおよび除外グループ
６  マルチ・ゾーン法
６．１  インポート体積の下限
６．２  最適化優先度
７  一般化分解の適用
７．１  １／８シェル法７．２  スライス１／２シェル法
７．３  マルチ・ゾーンＮＴおよびＳＮＴ法
７．４  泡法
７．５  通信帯域幅要件の比較
７．６  多粒子相互作用
８  シリアル化実装
９  クラスタ・アーキテクチャ
１０  並列実装
１１  応用
１２  代替え。
【００４１】
１  概要
多体相互作用（「Ｎ体」問題と呼ばれることが多い）のシミュレーションは、天体力学および計算化学を含む多くの問題領域において有用である。例えば、生体分子または静電気粒子相互作用のシミュレーションは、系内の粒子間の相互作用の非常に詳しい図を描くことにより実験を補完するものである。シミュレーションにおける重要な課題は、シミュレーション速度である。
【００４２】
１．１  分子力学
分子シミュレーションの１アプローチは、主に物理学に基づくものであり、分子系の物理学の数学モデルに基づいて構造を予測する。タンパク質は、原子レベルでモデル化され、個々の原子または原子の複数のグループはＮ体系内の点物体として表される。これらの方法のうちの１つは、それぞれの粒子に加わる力を計算し、ニュートンの法則の数値積分を用いて時間の経過とともに変わるそれぞれの原子の物理的軌道を予測する分子力学（ＭＤ）である。代替えの方法として、系のポテンシャル・エネルギー面の確率的サンプリングを行うモンテカルロ法の一種がある。物理学ベースの方法は、ホモロジー・モデルを精密化するために使用されるか、または単独で適用され、スクラッチからタンパク質構造を決定する。ＭＤは、さらに、タンパク質折り畳みの過程を調査するためにも使用される。
【００４３】
物理学ベースの方法をタンパク質構造予測および計算生化学における他の構造ベースの問題に適用する際に重要なのは、これらの問題が、単一分子または分子事象に関係せず、むしろ、非常に大きな分子群の統計的特性に関係することが多いということである。例えば、タンパク質構造を予測する場合、特定の１つのタンパク質分子が偶然折り畳まれて形成しうる構造に必ずしも関心があるわけではなく、むしろそのタンパク質の分子の最もありそうな構造、そのタンパク質の大きな分子群の間の基準となる構造に関心があるといえる。結合を研究する場合、問題になるのは、特定のタンパク質およびリガンドが特定の場合において結合するかどうかではなく、多数のタンパク質およびリガンドが寄せ集められたときの、定常状態における結合リガンドの濃度であると思われる。
【００４４】
これらの問題について計算するのに有用な量は、分子系の自由エネルギーである。自由エネルギーは、系の単一状態の特性ではなく、むしろ状態アンサンブルの特性である。非常に一般的な言い方をすると、状態アンサンブルの自由エネルギーが低ければ低いほど、
分子系が与えられた時刻においてそれらの状態のうちの１つの状態にある確率が高くなるということである。アンサンブルの自由エネルギーは、アンサンブル内のすべての状態にわたって確率の総和を求めることにより計算される。状態の確率は、系の温度に依存するポテンシャル・エネルギーの指数関数である（特に、計算ではボルツマン分布を使用する）。実際的な言い方では、このことは、タンパク質構造予測に関して、ＭＤシミュレーションを１回実行し、ある時点において停止し、終端立体構造を固有の状態とみなすだけでは不十分であることを意味する。最低でも、そのようなシミュレーションの終わり近くで多くの立体構造がサンプリングされるべきである。それどころか、複数の別々のシミュレーションを実行し、結果同士を比較する必要がある場合がある。
【００４５】
標的タンパク質の構造が−計算または実験のいずれかの方法を通して−得られた後、計算の方法を使用して、タンパク質とリガンドとの相互作用を予測することができるが、これは、「ドッキング問題」とおおまかに呼ばれる作業である。
【００４６】
理論的には、リガンドを活性についてスクリーニングすることは、物理学ベースの方法により実行することが可能である。そのアプローチは膨大な計算量を必要とするため、他の方法が開発された。一般に、タンパク質およびリガンドの異なる構成が生成され、発見的スコアリング機能に応じてそれぞれに関して計算される。検査されなければならない構成の数を減らすために、タンパク質が堅いままに保持されるか、またはわずかな柔軟性を許容し、リガンドは、タンパク質の近くのさまざまな点においてさまざまな姿勢および配向で検査される。さらに配置空間を縮小するために、タンパク質上の活性部位を知る必要がある（または、知ることは少なくとも非常に役立つ）。
【００４７】
この発見的スクリーニングでは、標的タンパク質に結合する可能性のあるリガンドを同定することができるが、その結合を定量化したり、特定の効果をもたらすために必要なリガンドの濃度などの、相互作用の他の特性を予測したりすることはできない。このために、相互作用の結合自由エネルギー、系の非束縛状態と束縛状態との自由エネルギー差が使用される。結合エネルギーが小さすぎると、薬物の必要用量が多くなり実用的と言い難くなり、エネルギーが高すぎると、毒性または他の副作用が発生しうる。結合自由エネルギーの正確な計算は、２つの分子が結合する可能性があるかどうかを単純に判定するのと比べてかなり多量の計算を必要とする作業であり、これらの相互作用の正確な構造的モデルに大きく依存する。
【００４８】
１．２  分子力場
構造ベースの問題に対する物理学ベースの方法では、これらの計算方法の「内側ループ」は、分子系が与えられた場合に、（ａ）系のポテンシャル・エネルギーを全体として計算するか、または（ｂ）系の残り部分との相互作用によるそれぞれの粒子に対する力を計算するという問題を解くように選択することが可能である。（（ｂ）の力は、単に、（ａ）の３次元ベクトル勾配であり、問題の２つのバリエーションは計算に関して類似のものとなる。）これらの力およびエネルギーは、一般に、分子力場と呼ばれる特定のタイプのモデルに従って計算される。
【００４９】
力場は、原子レベルで分子系をモデル化することができ、複数の原子または原子の複数のグループは典型的には点物体として表される。それぞれの点物体は、質量および電荷（より具体的には、原子結合により引き起こされる複雑な電子分布が点電荷でモデル化できるような部分電荷）などの関連するパラメータの集合を有する。これらのパラメータは、原子の種類に応じて初期化時に決定され、標準的な力場では、シミュレーション全体を通して一定のままである。原子の種類は、周期律表に載っている原子番号ほどは単純でなく、原子のパラメータは、どのような粒子がその原子に近いか、特に他のどのような原子がその原子に結合されるかに依存する。例えば、窒素原子（アミン）に結合された水素原子
は、酸素原子に結合されたものと異なる部分電荷を有する（アルコール）。炭素、水素、酸素、および窒素のそれぞれに複数の種類が容易に挙げられる。これらに使用される種類の原子およびパラメータの集合は、特定の力場を定義する特性のうちの１つである。
【００５０】
原子間の相互作用は、複数の成分に分けられる。結合項は、共有結合されている原子間の相互作用をモデル化する。このような項の１つは、調和振動子として２つの原子の間の結合を効果的にモデル化し、結合距離と呼ばれる、互いから一定の距離のところで２つの原子が安定する傾向を反映する。他の項は、２つの結合がある角度に向かって「曲がる」傾向を反映する。さらに他の項では、ねじれの効果、つまり２つの結合といずれかの側でなす相対的角度による結合の「ねじり」を考慮する。他のいくつかの種類の項も可能であり、それらの多く、つまり交差項も可能であり、基本的な種類の項の間の相互作用を考慮する。それぞれの項は、１つまたは複数のパラメータを含み、それぞれのパラメータは、原子の種類のそれぞれの組合せ（対、３つ組、４つ組など）に対する値を持っていなければならず、その結果、項および交差項のすべてから多数のパラメータが得られる。
【００５１】
力場内の非束縛項は、原子間のすべてとすべての相互作用をモデル化する。非束縛項の１つは、クーロンの法則による電荷の互いの引力と斥力の静電気相互作用を計算する。他の種類の非束縛項は、引力成分と斥力成分からなる短距離相互作用である、ファン・デル・ワールス相互作用をモデル化する。斥力成分は、数オングストローム（｛Ａ｝と略記する、１０−１０メートルに等しい）の非常に短い距離内で支配的である。おおまかに言うと、斥力は、原子が互いに重なり合う、または衝突するのを妨げるものとして考えられる。ファン・デル・ワールス・ポテンシャルをモデル化する方法はさまざまなものがある。引力成分は、通常は、２つの粒子の間の距離の６乗に逆比例して、つまり１／ｒ６に比例して減少するものとしてモデル化され、斥力成分は、類似のべき乗関数（通常は、汎用プロセッサでの計算に便利なように、１／ｒ１２）または指数関数によりモデル化される。このような力は、１／ｒに比例して比較的ゆっくりと減少する静電気ポテンシャルと比較される。
【００５２】
１．３  対毎の相互作用
多数の場におけるシミュレーションは、粒子の明示的な対毎の相互作用を計算することを必要とする。上述の生化学における分子力学およびモンテカルロ・シミュレーションに加えて、類似のシミュレーションを物質科学、宇宙物理学およびプラズマ物理学におけるＮ体シミュレーション、ならびに流体力学における状態シミュレーションの粒子ベースの流体力学および方程式に適用することが可能である。このようなシミュレーションの計算作業負荷を低減するために、粒子のすべての対の間の相互作用を計算する代わりに、１アプローチでは、ある相互作用半径Ｒ未満の距離だけ隔てられている対の間の相互作用のみを計算する。これらの相互作用は、「近距離相互作用」と呼ばれる。残りの相互作用（「遠距離相互作用」）は、無視されるか、または計算量の少ない方法で取り扱われる。相互作用半径を制限することに関連して無駄を省く場合であっても、近距離相互作用はそのまま計算コストに対し支配的である。この計算を並列処理および／または直列処理について分解する方法は、これらのシミュレーションに必要な総時間数および／またはこれらのシミュレーションに必要な計算または通信を低減するうえで有用と思われる。
【００５３】
従来の並列化方法は、非特許文献１を含む、多数のレビューにおいて説明されている。これらは、原子、力、および空間を分解する方法を含む。空間を分解する方法は、原子および力を分解する方法に勝る利点を有する可能性があるが、その理由は、空間の局所性を利用して、系内のすべての対ではなく、近くの粒子の対のみを考慮すればよいからである。その一方で、力を分解する方法は、それぞれのプロセッサにより必要とされる通信帯域幅がプロセッサ数の増大とともに減少するという点で空間および原子を分解する方法に勝る利点を有する可能性がある。
【００５４】
最近開発された２つの方法、非特許文献２で公開されているＳｎｉｒ’ｓ  Ｈｙｂｒｉｄ（ＳＨ、「ハイブリッド」）法およびデイヴィッドＥ．ショー（Ｄａｖｉｄ  Ｅ．  ｓｈａｗ）により「Ａ  Ｆａｓｔ，Ｓｃａｌａｂｌｅ  Ｍｅｔｈｏｄ  ｆｏｒ  ｔｈｅ  Ｐａｒａｌｌｅｌ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｄｉｓｔａｎｃｅ−Ｌｉｍｉｔｅｄ  Ｐａｉｒｗｉｓｅ  Ｐａｒｔｉｃｌｅ  Ｉｎｔｅｒａｃｔｉｏｎｓ」として公開される予定のショーのＮｅｕｔｒａｌ  Ｔｅｒｒｉｔｏｒｙ（ＮＴ）法では、空間の分解と力の分解とを組み合わせている。これらは、相互作用半径が減少するとともに必要な通信が減少するという特性を有する。また、これらは、プロセッサ数が増大するとともに１ノード当たりの必要な通信が減少するという特性も有する。図１を参照すると、ＳＨ法およびＮＴ法の非対称的スケーリング特性と従来方法とを比較することで、ＳＨ法およびＮＴ法は、同じスケーリング特性を有し、従来の方法に比べて著しく改善されていることがわかる。特に、これら２つの方法は両方とも、Ｏ（Ｒ３／２ｐ−１／２）の非対称的複雑度を持ち、力方法以外のすべてに比べてプロセッサ数ｐとともにゆっくりと増大し、これは空間の局所性を利用しない、したがって相互作用半径Ｒが減少しても改善しない。
【００５５】
ＳＨ法およびＮＴ法は両方とも、実用的なマシンおよびシミュレーション・サイズに関して従来の方法に勝る利点を有する可能性がある。例えば、ＮＴ法は、ＳＨ法に比べて常に通信をあまり必要としないと示すことができるがＳＨ法は、その差が小さくなるようにＮＴ法の特徴を使用して最適化できることがわかる。ＮＴ法の特徴を使用するＳＨ法の最適化されたバージョンは、以下ではＳＮＴ法と呼ばれる。
【００５６】
ＮＴ、ＳＮＴ、およびＳＨ法は、異なるインポート領域を伴う。つまり、それぞれのプロセッサによりインポートされる粒子の集合は、方法毎に異なるということである。しかし、これらの方法は、多くの特徴を共有する。ＮＴ法とＳＨ法の両方において、それぞれのプロセッサは、ある種の矩形のボックス内に入る粒子を格納する。両方の方法において、粒子の対の間の相互作用を計算するプロセッサは、典型的には、いずれかの粒子が置かれるプロセッサではなく、代わりに、対の粒子の両方をインポートする第３のプロセッサである。両方の方法において、それぞれのプロセッサは、２つの相互作用ゾーンから粒子をインポートし、１つの粒子が１つの相互作用ゾーン内にあり、他の粒子が他の相互作用ゾーン内にあるように粒子のすべての対を考慮する。
【００５７】
以下の説明では、従来の空間を分解する方法、ＳＨ法、ＮＴ法、およびＳＮＴ法を特別な場合として含む一般的なクラスの方法を取り上げる。一般的クラスのさまざまな特定のインスタンスの通信要件は、プロセッサ間通信ネットワークの待ち時間および帯域幅の両方を考慮して分析される。
【００５８】
特定の方法のパラメータを選択するための判定基準は、シミュレートすべき物理系の特性（例えば、システム次元、相互作用半径）とシミュレーションに利用可能なハードウェアの特性（例えば、ノード数、ネットワーク・トポロジ、およびノード間のキャッシュ構造および共有を含むメモリ構造）に依存する。ほとんどの実用的なパラメータ設定では、このような判定基準に従って最高の性能を発揮する方法は、一般的に、必ずしも上述の特定の方法のうちの１つではなく、むしろ、一般的なクラスの方法の異なるインスタンスである。
【００５９】
１．４  メッシュ・ベースの計算
上で導入されているように、粒子の間、例えば、最大相互作用半径よりも広く隔てられている粒子の間の遠距離相互作用は、計算量の少ない方法を使用して計算することができる。このようなアプローチの１つは、同時係属出願である米国出願第１１／１７１，６１９号、米国出願第１１／１７１，６３４号、国際出願第ＰＣＴ／ＵＳ２００５／０２３１
８４号において詳述されているようなＥｗａｌｄ法に基づく。
【００６０】
Ｅｗａｌｄ法の本質は、静電ポテンシャル場を２つの主要部に分割することにあり、そのうちの一方は、実空間内で効率よく計算することができ（対毎の相互作用を計算することにより）、また他方は、シミュレーション領域上の正則グリッドで計算を使用することによりフーリエ領域において効率よく取り扱える。（ただし、Ｅｗａｌｄにおけるすべてのバリエーションがフーリエ領域を使用するわけではないことに留意されたい。）
フーリエ領域の計算を伴う部分の実装は、３つのフェーズに分割できる。第１に、（無限および周期的）連続３次元空間ｒ上で定義されている離散型電荷分布
【００６１】
【数１】
2014170556.tif 000003
【００６２】
は、
【００６３】
【数２】
2014170556.tif 000004
【００６４】
に従って有限３次元メッシュ上で定義されている電荷分布ρＳ（ｒｍ）にマッピングされるが、ただし、Ｓは、電荷拡散関数であり、演算子
【００６５】
【数３】
2014170556.tif 000005
【００６６】
は空間畳み込みを表し、ｍは１次ボックス内にあるメッシュ点に対するインデックスであり、ベクトル
【００６７】
【数４】
2014170556.tif 000006
【００６８】
はメッシュ点ｍから粒子ｉの最も近いイメージまでのベクトルである。
第２のフェーズでは、ポテンシャル関数φ＊（ｒｍ）は、電荷分布ρＳ（ｒｍ）に対する畳み込み演算を使用してグリッド位置で計算される。この畳み込みは、高速フーリエ変換（ＦＦＴ）技術を使用して実装される。
【００６９】
第３のフェーズでは、粒子位置で定義されているエネルギーまたは力の量は、メッシュ・ベースのポテンシャル関数をそれらの位置にマッピングする畳み込みアプローチを使用することで見出される。特に、ｉ番目の粒子に加えられる力は、
【００７０】
【数５】
2014170556.tif 000007
【００７１】
として計算することができるが、ただし、
【００７２】
【数６】
2014170556.tif 000008
【００７３】
および
【００７４】
【数７】
2014170556.tif 000009
【００７５】
とする。第３のフェーズは、総和
【００７６】
【数８】
2014170556.tif 000010
【００７７】
として実装することができる。
計算上では、第１のフェーズおよび第３のフェーズは、位置の対を伴う総和を必要とし、それぞれの対の一方の位置は粒子（ｉ）位置であり、対の他方の位置はメッシュ点（ｍ）の位置である。
【００７８】
１．５  文書の編成
本明細書の残り部分は、以下のように編成される。第２節から第７節までは、粒子の間の範囲制限された対毎の相互作用を計算すること、またはより一般的には、空間内の点の対に関連付けられている範囲制限された計算を実行することに適用可能なアルゴリズムに関係するが、ただし、対は、Ｎ体問題における粒子の対に対応するか、または対は、例えば、電荷拡散または力補間法の一部として１つのグリッド点と１つの粒子点に対応しうる。
【００７９】
第８節から第１０節までは、ソフトウェアとハードウェアの技術に関係し、第２節から第７節に示されているアルゴリズムに、またはｎ体シミュレーションの実装全体に適用可能である。例えば第１０節で説明されているハードウェア技術は、ｎ体シミュレーションに比べてかなり広い範囲の応用に適用可能な態様を有することに留意されたい。
【００８０】
アルゴリズム、ソフトウェア技術、およびハードウェア技術の適用の可能性については、第１１節で簡単に説明されている。
２  ＮＴ、ＳＨ、およびＨＳ法
近年登場したＮＴ法およびＳＨ法は、従来の空間分解法の１例である、「１／２シェル
」またはＨＳ法とともに、以下の枠組み内で説明することができる。シミュレートされる粒子（物体）の系は、グローバル・セルと呼ばれる矩形のボックス内に入っていると仮定する。３つの方法すべてにおいて、このグローバル・セルを小さなボックスからなる正則な矩形３次元グリッドに分割する。これらの小さなボックスをホームボックスと呼ぶ。１並列実装では、ホームボックスとプロセッサとの間に１対１対応関係を割り当てるが、プロセッサとそのホームボックスは入れ換えて参照できる。これらの方法は、そのような実装の内容について以下で説明され、いくつかの代替え実装が、この説明の後に提示される。
【００８１】
また、粒子をインポートするホームボックスまたはプロセッサを参照する場合、これは、プロセッサが位置、物理的属性、識別など、粒子を特徴付ける情報を受け取ることを含むものとして理解されるべきである。それぞれのプロセッサは、任意の時点において、ホームボックス内にある粒子の位置を更新する役割を有する。便宜上、与えられたホームボックス（またはそのホームボックス内の任意の粒子）の基準座標は、そのホームボックスの下側座標のコーナーの座標として定義される。ホームボックスまたは粒子の論理座標は、ホームボックスの整数メッシュ座標である。それぞれのホームボックスの次元は、ｈｘ×ｈｙ×ｈｚである。
【００８２】
それぞれのホームボックスは、プロセッサが粒子をインポートしなければならない空間の領域からなるインポート領域に関連付けられている。それぞれのホームボックスは、ホームボックス内で相互作用されるべきそのホームボックス内にすでに存在してはいないすべての粒子をインポートする。ＮＴ、ＳＨ、およびＨＳ法は、それぞれ、異なるインポート領域を使用する。
【００８３】
ＮＴ、ＳＨ、およびＨＳ法はそれぞれ、空間の一方の体積内にあるすべての粒子と空間の他の体積内にあるすべての粒子とを相互作用させる。これらの体積を「相互作用ゾーン」または単に「ゾーン」と呼ぶ。これらの方法のそれぞれにおいて、２つのゾーンの共通部分がホームボックスである。
【００８４】
ここでは、それぞれのホームボックスに関連付けられているインポート領域の体積を、対毎の粒子相互作用の方法により必要とされる通信帯域幅（つまり、そのプロキシまたは推定）に対する単純なモデルとして使用する。このようなプロキシは、完全接続ネットワーク・トポロジに対し最も正確である。
【００８５】
２．１  ＨＳ法
従来の分解では、一般に、２つの粒子は、その一方が置かれているホームボックス内で相互作用する。特にＨＳ法では、粒子の対が相互作用する位置は、粒子は小さなｘ基準座標とホームボックス内で相互作用すること、２つの粒子が同じｘ基準座標を有する場合、粒子は、小さなｙ基準座標とホームボックス内で相互作用すること、これらは、同じｙ基準座標を有する場合、小さなｚ基準座標とホームボックス内で相互作用することという規則に従って相互作用する。また、これらは、同じｚ基準座標を有する場合、同じホームボックス内にあり、相互作用はそこで完了する。同じホームボックス上の粒子間の相互作用は、「局所的相互作用」と呼ばれるが、異なるホームボックス上の粒子間の相互作用は、「遠隔相互作用」と呼ばれる。
【００８６】
図２を参照すると、この規則の結果として、それぞれのホームボックスは、境界の距離Ｒの範囲内のホームボックスの外部にある点の半分からなるインポート領域を有する。インポート領域２２０内のすべての粒子は、ホームボックス２１０内のすべての粒子と相互作用する。インポート領域２１０内のすべての粒子は、さらに、ホームボックス２１０内の他のすべての粒子と相互作用する。それと同等であるが、２つの相互作用ゾーンは、ホ
ームボックス、およびホームボックスと１／２シェルとの和集合である。
【００８７】
従来のＨＳ法は、Ｒよりも短い距離だけ隔てられたすべての一意的な対を考慮するように保証される。この方法は、さらに、ホームボックスの体積が有限であることにより分離距離がＲを超えるいくつかの対を相互作用させることもありえる。これらの「過剰な相互作用」は、必要に応じて対レベルで排除（「フィルタ処理」）することができる。局所的相互作用は、さらに、局所的粒子間の相互作用を二重に数えるのを避けるためにフィルタ処理を必要とする。このようなフィルタ処理は、粒子の入れ子になった計算反復の内側ループ内での検査により実行される。
【００８８】
２．２  ＮＴ法
ＮＴ法では、２つの粒子は、１つの粒子に関連付けられているｘおよびｙ基準座標および他の粒子に関連付けられているｚ基準座標を有するホームボックス内で相互作用する。より具体的には、粒子同士が相互作用するホームボックスのｘおよびｙ基準座標は、より小さなｘ基準座標を持つ粒子の基準座標であるか、または両方の粒子が同じｘ基準座標を有する場合には、より小さなｙ基準座標を持つ粒子の基準座標である。粒子同士が相互作用するホームボックスのｚ基準座標は、他の粒子のｚ基準座標である。２つの粒子が同じｘおよびｙ基準座標を有する場合、それらの粒子は、低いｚ座標を持つ粒子のホームボックス上で相互作用する。
【００８９】
図３を参照すると、それぞれのホームボックスの結果として得られるインポート領域は、「外部タワー」３２０および「外部プレート」３３０の和集合である。外部タワーは、境界の距離Ｒの範囲内のホームボックス３１０の真上にあるか、または真下にあるすべての点からなる。外部プレート３３０は、境界の距離Ｒの範囲のｚ平面内にあるホームボックス３１０の外部にある点の半分を含む。相互作用ゾーンは、ホームボックス３１０と外部タワー３２０との和集合からなる「タワー」、およびホームボックス３１０と外部プレート３３０の和集合からなる「プレート」である。
【００９０】
タワー（３１０、３２０）とプレート（３１０、３３０）とを相互作用させることにより、すべての近距離相互作用は、少なくとも１回だけ計算されることを保証される。しかし、それぞれの近距離相互作用が１回だけ計算されるように保証するために、ＨＳ法では必要でないフィルタ処理判定基準が使用される。つまり、局所的（つまり、ホームボックス）プレート粒子は、外部タワーの上側半分（または下側半分、ただし両方ではなく）の中の局所的タワー粒子および遠隔（つまり、非ホームボックス）粒子とのみ相互作用すべきである。
【００９１】
ＮＴ法のインポート要件は、ホームボックスのアスペクト比を適切に選択することにより適宜緩和することができる。最適な結果は、ｈｘ＝ｈｙ＞ｈｚのときに得られる。つまり、ホームボックスが相互作用半径およびホームボックス体積に依存する量だけｚ次元方向に「扁平」にされたときに最適な結果が得られ、一般に、これは、等しい体積またはほぼ等しい体積を有する牽引相互作用ゾーンに対応する。
【００９２】
２．３  ＳＨ法
ＳＨ法では、辺長ｈの立方体ホームボックスを仮定する。ここで、
【００９３】
【数９】
2014170556.tif 000011
【００９４】
および
【００９５】
【数１０】
2014170556.tif 000012
【００９６】
を定義する。図４を参照すると、論理座標（ｉ，ｊ，ｋ）（ホームボックスを含む）を有するホームボックス４１０のインポート領域は、２つの相互作用ゾーンの和集合からなる。第１の相互作用ゾーンは、「ベース」４２０と呼ぶ隣接領域であり、ｕ∈［−ｒ，ｒ］および
【００９７】
【数１１】
2014170556.tif 000013
【００９８】
とする論理座標（ｉ＋ｕ，ｊ，ｋ−ｗ１）を持つホームボックスの集合からなる。第２の相互作用ゾーンは、「コーム」４３０と呼ぶ非隣接領域の集合である。これは、ｖ∈［−ｒ，ｒ］および
【００９９】
【数１２】
2014170556.tif 000014
【０１００】
とする論理座標
【０１０１】
【数１３】
2014170556.tif 000015
【０１０２】
を持つボックスの集合からなる。コーム４３０とベース４２０は両方ともホームボックス４１０を含むことに留意されたい。
コーム４３０とベース４２０を相互作用させることで、必ず、すべての近距離相互作用は、少なくとも１回計算される。ＨＳおよびＮＴ法に関して、必ずすべての近距離相互作用がちょうど１回だけ計算され、近距離相互作用のみが計算されるように、フィルタ処理が使用される。
【０１０３】
３  一般化分解
一般化クラスの方法では、それぞれのプロセッサは、２つの相互作用ゾーンから粒子をインポートし、一方のゾーンからの粒子と他方のゾーンからの粒子とを相互作用させる。ゾーンの対は、すべての近距離相互作用が必ず計算されるようにする方法の実装について選択される。囲まれた立方体内でそれぞれの粒子が他の粒子と相互作用する場合と、囲まれている球体内でそれぞれの粒子が他の粒子と相互作用する場合の両方について考察される。半径Ｒの球体領域は、辺長２Ｒの外接立方体の体積のおおよそ半分を有するため、「丸め」により、通信帯域幅要件を低減することができる。
【０１０４】
説明を分かりやすくするために、まず最初に、簡略化した問題を考える。
Ａ．粒子は、２次元ｘ−ｙ平面に制限される。
Ｂ．粒子の対は、ｘ次元方向にはＲ未満の距離だけ隔てられ、ｙ次元方向にはＲ未満の距離だけ隔てられている場合に、かつその場合に限り相互作用する（つまり、ユークリッド距離は、Ｒよりも大きくてもよい）。
Ｃ．ホームボックスは、辺長ｈの正方形であり、Ｒは、ｈの整数倍である。同様に、相互作用ゾーンは、完全なホームボックスのみからなる（「ボクセル化法」）。
Ｄ．相互作用は、非可換である。したがって、粒子ａとｂの対について、ここで、ａのｂに対する影響とｂのａに対する影響を別々に計算しなければならない。（２つの粒子の間の力は、通常、ニュートンの第三法則により可換な相互作用として取り扱われ、粒子ａに対する相互作用による力は、粒子ｂに対する力と等しく、反対の向きである。非可換な相互作用も、実用上興味深く、例えば、それぞれの粒子の、近くのメッシュ点に対する影響を計算したい場合がある。）
これらの単純化は、以下では、簡略化された問題の最初の説明の後、徐々に緩和される。
【０１０５】
ホームボックスの相互作用近傍は、任意の局所的粒子（つまり、ホームボックス内の任意の粒子）と相互作用が可能なすべての粒子を含むことを保証されている空間の最小の領域であると定義される。この簡略化された問題では、相互作用近傍は、正および負のｘ軸およびｙ軸方向にホームボックスを距離Ｒだけ超えて伸びる辺長２Ｒ＋ｈの正方形である。ホームボックス内の粒子は、相互作用近傍内の粒子に影響を及ぼし、またその逆もまた然りである。
【０１０６】
図５を参照すると、ＨＳ法の簡略化されたアナログ（上の非可換の仮定Ｄの観点から「１／２」シェルよりも「完全」シェル）はそれぞれのホームボックス５１０を伴い、相互作用近傍５３０内のすべての粒子のうちのそれぞれのホームボックス５１０内にある粒子に対する影響を計算する。この方法では、それぞれのホームボックスが、当然ホームボックス内にすでにある粒子を除いて、その相互作用近傍内のすべての粒子をインポートすることを必要とする。
【０１０７】
図６を参照すると、ＮＴ法の簡略化されたアナログは、それぞれのホームボックス６１０を伴い、水平方向に相互作用近傍の端から端まで広がる１行の近傍ボックス６２０内のすべての粒子が垂直方向に相互作用近傍の端から端まで広がる１列の近傍ボックス６３０内のすべての粒子に及ぼす影響を計算する。それぞれのホームボックスは、ボックス６２０の行内の遠隔粒子とボックス６２０の列内の遠隔粒子の両方をインポートする。この方法のインポート要件は、計算された相互作用の総数が同じであるとしても、ＨＳアナログのと比べて著しく低い。
【０１０８】
これらの方法の両方において、それぞれのホームボックスは、相互作用ゾーンがホームボックス５１０とボックス６２０からなる空間の１つの領域内にあるすべての粒子が、相互作用ゾーンが近傍５３０とボックス６３０からなる空間の他の領域内のすべての粒子に及ぼす影響を計算することに留意されたい。これらの実施例では、それぞれの方法の２つのゾーンは重なり合う。これらの共通部分が、ホームボックス５１０、６１０である。ゾーンは、それぞれのホームボックス５１０、６１０が２つの関連付けられているゾーンとの同じ相対的空間的関係を有するという点で並進不変性がある。
【０１０９】
これら２つの相互作用ゾーンに対し他の選択を行うと、別の分解が得られる。図７を参照すると、ＳＨ法といくつかの特性を共有する分解（以下では、「ＳＨアナログ」と呼ぶ）は、等しい間隔で並べた水平方向スラブ７２０の集合からなる１つのゾーンを有し、他のゾーンは、高さがスラブの空間的周期に等しい垂直配向ブロック７３０からなる。ここでもまた、それぞれのホームボックス７１０は、２つのゾーン（７２０、７３０）内の粒
子をインポートし、一方のゾーン７２０内の粒子が他方のゾーン７３０内の粒子に及ぼす影響を計算する。
【０１１０】
図８を参照すると、他の分解では、一方のゾーン８２０は、ホームボックス８１０の中心に置かれている正方形の領域である「レンガ」を含む。他のゾーン８３０は、それぞれの次元における周期がゾーン８２０の幅に等しくなるように位置決めされたホームボックスのサイズのボックスからなる「泡」状構造である。ホームボックス８１０は、ゾーン８３０内のそれぞれの粒子に対するゾーン８２０内のそれぞれの粒子の影響を計算する。
【０１１１】
３．１  畳み込み判定基準
それぞれのホームボックスに関連付けられている並進不変性ゾーンの対が与えられた場合、すべての必要な相互作用が計算されたことの検証は、畳み込みベースの判定基準を用いて実行される。ここでは、方法の受け入れ領域を、ホームボックスに影響を及ぼす空間の領域として定義する。特に、受け入れ領域は、対のレベルでさらにフィルタ処理が使用されない場合に局所的粒子に影響を及ぼすすべての遠隔粒子を含むことを保証されている空間の最小体積である。判定基準は、ホームボックスの受け入れ領域が、相互作用近傍全体を確実に含むようにすることに基づく。
【０１１２】
受け入れ領域を見つけるには、それぞれのホームボックスが関連付けられた２つの並進不変性タイプの相互作用ゾーン、つまり「青色」ゾーンと「赤色」ゾーンを有すると仮定する。ホームボックスは、青色ゾーン内のそれぞれの粒子に対する赤色ゾーン内のそれぞれの粒子の影響を計算する。まず、関連する青色ゾーンが指定されたホームボックスを含むホームボックスの集合を見つける。次いで、この集合内のすべてのホームボックスに対する赤色ゾーンの和集合を取り、指定ホームボックスの受け入れ領域を得る。
【０１１３】
図形を基に受け入れ領域を計算するために、まず最初に、青色ゾーンが指定ホームボックスを含むホームボックスの集合を示すように指定ホームボックスを中心とする青色ゾーンを鏡映する。２次元では、指定ホームボックスを中心とする鏡映は、指定ホームボックスを中心とする１８０°回転に相当する。次いで、指定ホームボックスに対し最初に有していた鏡映された青色ゾーン内のそれぞれのホームボックスとの同じ空間的関係を有するように赤色ゾーンを平行移動する。受け入れ領域は、これらの平行移動された赤色ゾーンの和集合である。
【０１１４】
この工程は、畳み込み演算に類似している。技術的には、受け入れ領域は、赤色ゾーン上の指標関数による鏡映青色ゾーン上の指標関数の離散化畳み込みの台（ｓｕｐｐｏｒｔ）である。このような理由から、受け入れ領域が相互作用領域全体を含むという判定基準を「畳み込み判定基準」と呼ぶ。図５から８に例示されている４つの分解について、ホームボックスの受け入れ領域は、その相互作用近傍と同一である。
【０１１５】
図９〜１１を参照すると、畳み込み判定基準も満たす他のいくつかの分解が示されている。図９に示されている分解は、図８のものと類似しているが、ここでは、特定のホームボックス９１０に関連付けられている２つの相互作用ゾーン９２０および９３０は、そのホームボックス９１０を中心としていない。ホームボックスを中心とするゾーンの対称性は必要ない。ゾーン９２０は、ホームボックス９１０の上、および右に広がっている。鏡映された場合、ゾーン９２０は、ホームボックスの下、および左に広がることに留意されたい。図９の分解は、さらに、ホームボックスの受け入れ領域がその相互作用近傍よりも広いという点で、またゾーン９３０の一部が相互作用近傍９５０（実線の輪郭の正方形により示されている）の外部にあるという点で図５〜８のとは異なる。相互作用近傍９５０の外部にあるゾーン９３０の一部を排除するとすれば、受け入れ領域は、もはや相互作用近傍全体を覆わなくなり、必要なすべての相互作用が計算されることが分解によりもはや
保証されなくなる。
【０１１６】
図１０および１１は、畳み込み判定基準も満たす他の２つの分解を示す。図１０では、ホームボックス１０１０に対してゾーン１０２０も１０３０も、隣接していない。同様に、図１０では、ホームボックス１１３０のゾーン１１２０と１１３０は隣接していない。
【０１１７】
３．２  割り当て規則
分解は、それぞれのホームボックスに関連付けられた相互作用ゾーンに関して記述できる。代替え記述は、割り当て規則の形を取り、一方の粒子の他方の粒子への影響をその位置の関数として、またはそれらの粒子が最初に置かれているプロセッサ上で、計算するプロセッサを指定する。このような記述は、すでに上で示されているＨＳおよびＮＴ法を含む、方法のいくつかを記述する際に無意識のうちに使用されている。
【０１１８】
粒子ａおよびｂは、それぞれの次元方向にＲ以下の距離だけ隔てられていると仮定する。粒子ａおよびｂの空間座標を（ｘａ，ｙａ）および（ｘｂ，ｙｂ）によりそれぞれ表し、粒子ａのホームボックス、粒子ｂのホームボックス、およびａのｂに対する影響を計算するホームボックスの論理座標を（ｉａ，ｊａ）、（ｉｂ，ｊｂ）、および（ｉａ→ｂ，ｊａ→ｂ）によりそれぞれ表す。割り当て規則は、粒子を含むホームボックス（ｉａ，ｊａ）および（ｉｂ，ｊｂ）に関して、または粒子の位置（ｘａ，ｙａ）および（ｘｂ，ｙｂ）に関して、（ｉａ→ｂ，ｊａ→ｂ）として指定することができる。
【０１１９】
３．２．１  ＨＳ、ＮＴ、およびＳＨアナログ方式の割り当て規則
図５に例示されている、ＨＳ法の簡略化されたアナログについては、割り当て規則は、（ｉａ→ｂ，ｊａ→ｂ）＝（ｉｂ，ｊｂ）として表すことができる。図６に例示されている、ＮＴ法の簡略化されたアナログについては、割り当て規則は、（ｉａ→ｂ，ｊａ→ｂ）＝（ｉａ，ｊｂ）として表すことができる。
【０１２０】
図７および８に例示されている分解方式に対する割り当て規則を指定するために、ここで、割り当て規則の指定で使用される、関数ｒおよびｇを、
【０１２１】
【数１４】
2014170556.tif 000016
【０１２２】
のように整数引数について定義する。
図７の分解方式、ＳＨアナログに対する割り当て規則は、（ｉａ→ｂ，ｊａ→ｂ）＝（ｉｂ，ｇ（ｊｂ，ｊａ））と表わされる。図８に例示されている、泡状方式に対する割り当て規則は、（ｉａ→ｂ，ｊａ→ｂ）＝（ｇ（ｉｂ，ｉａ），ｇ（ｊｂ，ｊａ））と表わされる。
【０１２３】
３．２．２  中間点割り当て規則
割り当て規則は、さらに、粒子ａおよびｂの位置に関しても指定される。例えば、ｍｉｄ（ａ，ｂ）がａおよびｂの座標の間の幾何学的中間点を表すために使用される場合（つまり、ｘｍｉｄ（ａ，ｂ）＝（ｘａ＋ｘｂ）／２）、割り当て規則は、（ｉａ→ｂ，ｊａ→ｂ）＝（ｉｍｉｄ（ａ，ｂ），ｊｍｉｄ（ａ，ｂ））として表わされる。さらに一般的
に、必ずしも点の幾何学的中間点ではない、粒子の座標から空間内の他の点（「中間位置」）への中間点マッピングｍ（ａ，ｂ）を使用することができ、中間点規則は、「中間点」の適当な定義により３つまたはそれ以上の点に適用される。例えば、点の集合の中間点は、すべての点を含む最小球体の中心として定義される。他の実施例としては、平均位置がある（例えば、集合内の点の座標を平均するそれぞれの座標方向について）。
【０１２４】
割り当て規則および相互作用半径Ｒが与えられた場合、規則を満たすのに必要なインポート領域は、規則に基づいて決定される。割り当て規則は、粒子位置の対から論理ホームボックス座標への多対１マッピングである。マッピングの範囲内のホームボックスについて、粒子位置の対の領域内の逆マッピングが正しく定義される。この逆マッピングは、逆マッピングにおける対のそれぞれの座標の領域の和集合を通じてホームボックスに対するインポート領域を定義する。逆マッピングは、粒子の座標に応じて、またはその論理（ホームボックス）座標に関して指定される。グローバル・セルにより粒子位置の対の領域全体において定義される割り当て規則の存在により、粒子のそれぞれの対がある種のプロセッサ上で相互作用し、畳み込み判定基準の適用がこの場合不要になることが保証される。
【０１２５】
上の幾何学的中間点ｍｉｄ（ａ，ｂ）を使用する中間点割り当て規則の場合、インポート領域は高々ホームボックスから距離Ｒ／２だけ伸びるが、その理由は、粒子の１つがホームボックスからＲ／２よりも遠く、粒子が高々Ｒだけ幾何学的に隔てられている場合に、中間点は必ずホームボックスの外部にあるからである。
【０１２６】
図３６を参照すると、２次元の実施例では、正方形のホームボックスのアレイを使用しており、それぞれ各辺においてｈ＝８｛Ａ｝である。ホームボックス３６１０は、代表的なホームボックスであり、実線はホームボックスであることを示している。この実施例では、相互作用半径は、Ｒ＝１０｛Ａ｝である。上で提示されているように、相互作用領域３６２０は、ホームボックス３６１０を中心としてＲ／２＝５｛Ａ｝だけ広がる。粒子の代表的な対、ａ  ３６３１およびｂ  ３６３２は、ホームボックス３６１０内に入る幾何学的中間点ｍ  ３６３３を有し、したがって、ａとｂとの相互作用の計算は、そのホームボックスに割り当てられたプロセッサにより計算される。
【０１２７】
中間点法では、さらに、３つまたはそれ以上の粒子の集合を伴う相互作用を取り扱うこともできる。半径Ｒ／２のある球体内に入るｍ個の粒子の全集合間の相互作用を計算したいと仮定する（ｍ＝２の場合、これは、Ｒ未満の距離だけ隔てられている粒子のすべての対の間の相互作用を計算したいという記載と同じである）。中間点法では、ｍ個の粒子の集合間の相互作用は、その中間点を含むプロセッサ上で計算され、例えば、ｍ個の粒子すべてを含む最小の球体の中心として定義される。ｍ粒子の場合の中間点法のインポート領域は、２粒子の場合のと同一である。
【０１２８】
３．２．３  擬似ランダム割り当て規則
それぞれのホームボックスについて定義されている特定のインポート領域では、相互作用に必要な粒子データは、複数のノードにインポートされるか、または複数のノード上ですでに利用可能であることがきわめて頻繁にある。例えば、ホームボックスのサイズがｈ＝８｛Ａ｝、相互作用半径がＲ＝１０｛Ａ｝である図３６に示されている実施例では、粒子ａ  ３６３１とｂ  ３６３２との間の相互作用に必要なデータは、インポート領域３６２２を有する、ホームボックス３６１２のある、プロセッサからも利用できる。一般に、この実施例では、粒子の対に対するデータは、最大９＝３２個のホームボックス（３次元バージョンでは、２７＝３３個のホームボックス）に関連付けられているノードから利用できる。この特定の場合の相互作用の大半について、相互作用を実行することが可能なノードが少なくとも２つあり、さらに多くがあることはきわめて頻繁なことである。
【０１２９】
計算を粒子の対に対するデータを有する、複数のノードのうちの１つのノードに割り当てるアプローチでは、必ずしも中間点ノードを使用しない。むしろ、このアプローチでは、計算は、少なくとも１つのノードおよび好ましくはただ１つのノードが計算を実行するように、考えられる複数のノードの集合から一般的に一様な擬似ランダムな方法で割り当てられる。例えば、これらの粒子に対するデータを有するそれぞれのプロセッサは、計算を実行すべきかどうかを決定するためにノード間の通信をあるとしても少しだけ使用して擬似ランダムな決定を下す。ただ１つのノードで相互作用を計算することが可能な場合に、この実施例では、そのノードは粒子位置の中間点を含む。
【０１３０】
擬似ランダムな決定を実行する具体的な方法は、どのノードがコピーを持つかを示すビットベクトルを含むホームボックスにより分配される粒子に対するデータを伴う。粒子の特定の対について、ビットベクトルの論理積を取ることで、両方の粒子に対するデータのコピーを有するノードを示す。粒子ａとｂの両方に対するデータを有するようなノードの個数は、ｎ＿ｃｃ（ａ，ｂ）と定義される。粒子のコピーを有するそれぞれのノードでは、同じ乱数発生器を使用して、０からｎ＿ｃｃ（ａ，ｂ）−１までの範囲内の同じ擬似乱数を発生する。この乱数は、論理積が実行されたビットベクトルに基づいて計算を実行するノードを識別するために使用される（例えば、ｎ＿ｃｃ番目のセットビットのビット位置を識別する）。擬似乱数発生器を実装する１方法では、特定の粒子に関連付けられている量をシードとして使用する。例えば、それぞれの粒子は、グローバル・インデックスｉｎｄｅｘａ、ｉｎｄｅｘｂをそれぞれ有しており、擬似乱数発生器は、ｓｙｍｍｅｔｒｉｃ＿ｈａｓｈ（ｉｎｄｅｘａ，ｉｎｄｅｘｂ）  ＭＯＤ  ｒａｎｋ（ａ，ｂ）として実装されるが、ただし、ｓｙｍｍｅｔｒｉｃ＿ｈａｓｈ（ｎ，ｍ）は、よく知られている多くの技術のどれかを使用して実装されたハッシュ関数としてよい。
【０１３１】
このアプリケーションの他の変更形態では、擬似ランダム関数は、必ずしも一様でない。例えば、目標が、必要なデータを有する利用可能なノード上に計算を展開することである場合、ランダム関数は、選択すべき粒子の対が比較的少数であるノードにバイアスされる。このタイプのバイアスは、共有負荷情報をそれらのノードに供給するか、またはデータが他のノードに送られる粒子の個数に関係する情報を送り側ノードから供給することにより組み込むことが可能である。
【０１３２】
３．２．４  計算負荷分散
上述の擬似ランダム割り当て規則に関係するアプローチでは、一般に対毎のそれぞれの計算を実行するために複数のノードが利用可能であるという事実が負荷分散に使用され、ノード同士は連携してそれぞれの計算が１回だけ実行されるように、また計算の望ましい負荷分散が行われるようにどの計算がどのノードで実行されるかを決定する。ここでは、あるクラスの方法を「中間点保証法」と呼び、それぞれのプロセッサは、上述の中間点法でインポートされるのと同じデータをインポートするが、プロセッサへの相互作用計算の割り当ては、計算負荷がプロセッサ間により均等に分けられるように調整される。
【０１３３】
説明を簡単にするために、まず最初に、それぞれの「ボックス」が単に長さｂの区間である１次元空間についてこの方法を説明する。さらに、Ｒはｂ以下であり、ｍ個の粒子の集合は、半径Ｒ／２の何らかの球体内にすべて入る場合に相互作用すると仮定する。プロセッサｉのホームボックスが左からｉ番目のボックスであるようにプロセッサに番号を振る。計算は、以下ように進行する。
【０１３４】
第１に、それぞれのプロセッサは、ホームボックスから距離Ｒ／２以内にあるすべての遠隔粒子をインポートする。
次いで、それぞれのプロセッサは、半径Ｒ／２の球体内に入る、そのプロセッサから利用可能なｍ個の粒子のすべての組合せからなる、局所的計算可能相互作用の集合を見つけ
る。それぞれのプロセッサｉは、局所的に計算可能な相互作用の集合を、左の隣接要素（プロセッサｉ−１）上でも計算可能な相互作用、右の隣接要素（プロセッサｉ＋１）上でも計算可能な相互作用、およびプロセッサｉ上でのみ計算可能な相互作用の、３つの重なり合わない部分集合に分割する。これらの部分集合をそれぞれＬｉ、Ｒｉ、およびＣｉと表し、そのサイズをｌｉ、ｒｉ、およびｃｉで表す。ＲｉおよびＬｉ＋１は、ちょうど同じ要素、つまり、ボックスｉとボックスｉ＋１との間の境界の距離Ｒ／２の範囲内にあるｍ個の粒子のすべての組合せを含み、したがって、ｒｉ＝ｌｉ＋１となる。
【０１３５】
次いで、それぞれのプロセッサｉは、ｃｉの値をその左および右の隣接要素に送る。これは、基本的な中間点法で必要な以上にこの並列化法により必要とされる唯一の通信である。それぞれのプロセッサｉは、現在、ｃｉ−１およびｃｉ＋１とともに、ｃｉ、ｌｉ、およびｒｉの値を持つ。
【０１３６】
次いで、それぞれのプロセッサｉは、Ｌｉにおけるどの相互作用、Ｒｉにおけるどの相互作用が計算されるのか、またこれらの相互作用のうちどの相互作用の計算が隣接要素に任されるのかを決定する。それぞれの相互作用が実際にどこかで計算されることを保証するために、隣接プロセッサは、プロセッサ間の作業量の分割に関する矛盾のない決定を下さなければならない。プロセッサｉおよびｉ＋１は、両方とも、ｃｉ、ｃｉ＋１、およびｒｉの値にアクセスする（ｒｉ＝ｌｉ＋１であるため）。プロセッサｉは、Ｒｉにおける第１のｋｉ個の相互作用を計算し、プロセッサｉ＋１は、最後のｒｉ−ｋｉ個の相互作用を計算するが、プロセッサｉおよびｉ＋１は、ｃｉ、ｃｉ＋１、およびｒｉに基づいてｋｉに対する同一の値を独立に計算する。相互作用の計算のミスまたは重複を避けるために、プロセッサｉおよびｉ＋１は、等価な集合ＲｉおよびＬｉ＋１において相互作用の順序について一致するようにし、そのような矛盾のない順序付けは、それぞれの相互作用に関わる粒子の位置に基づくことが可能であり、結合は電荷などの他の粒子特性により切られる。粒子の空間分布に関する事前統計情報がない場合、ｋｉを
【０１３７】
【数１５】
2014170556.tif 000017
【０１３８】
として計算する。つまり、ｃｉ＋１およびｃｉが同一である場合、プロセッサｉおよびｉ＋１は、比較可能な負荷を有すると仮定し、したがって、ここで、Ｒｉにおける相互作用をそれらのプロセッサに均等に分割する。ｃｉ＋１＞ｃｉの場合、Ｒｉにおける相互作用の半分を超える分をプロセッサｉに割り当て、負荷を分散させようと試みる。上記の式中のｍａｘ、ｍｉｎ、およびｒｏｕｎｄ演算は、ｋｉは０からｒｉまでの整数値のみを取りうるという事実から必要なものである。このような制限がなければ、すべてのｉについて式
【０１３９】
【数１６】
2014170556.tif 000018
【０１４０】
により相互作用を分散させると、ｃｉ−１およびｃｉ＋２が両方ともｃｉおよびｃｉ＋１の平均に等しければ同一の数の相互作用がプロセッサｉおよびｉ＋１に割り当てられる。
この平均は、プロセッサｉおよびｉ＋１の両方がアクセスできる情報に基づくｃｉ−１およびｃｉ＋２の妥当な推定値を表す。両方のプロセッサがｃｉ−１およびｃｉ＋２にアクセスできた場合、またはプロセッサが粒子分布に関する何らかの事前統計情報（例えば、平均粒子密度）を有していた場合に、負荷分散はうまくゆく可能性がある。
【０１４１】
この方法を高次元に一般化する方法は、いくつかの形態を取りうる。計算効率が高く、実装が容易な一般化は、インポート領域を、その外側境界がそれぞれの座標軸にそって正および負の方向に相互作用ボックスを超えて距離Ｒ／２だけ伸びている直方体となるように少し拡大すると利用可能になる。ここでは、この一般化を２次元の場合について説明するが、インポート領域の外側境界は、矩形である（相互作用ボックスが正方形であれば正方形）。相互作用ボックスの辺長はすべてインポート半径Ｒよりも大きいと仮定すると、個々の相互作用は、共通のコーナーを共有する４つのボックス上で、共通の辺を共有する２つのボックス上で、または単一のボックスでのみ、計算可能としてよい。ここでの戦略は、第１に、隣接する列内の２つまたは４つのボックスにより計算できるそれぞれの相互作用を一意的な１つの列に割り当て、次いで、隣接する行内のボックスにより計算できる相互作用を一意的な１つの行に割り当てることである。式１の中のｒｉ、ｃｉ、およびｃｉ＋１に適切な値を代入し、１次元の場合にＲｉを分割するために使用したのと同様の手順を反復適用することによりこれらの割り当てを実行する。
【０１４２】
より具体的には、プロセッサ（ｉ，ｊ）は、ｉ番目の行およびｊ番目の列にあると仮定する。粒子をインポート領域内にインポートした後、プロセッサ（ｉ，ｊ）は、局所的計算可能相互作用の集合を、他のどのプロセッサが計算可能であるかに基づいて、９つの部分集合に分割する。これらの部分集合を
【０１４３】
【数１７】
2014170556.tif 000019
【０１４４】
で表すが、ただし、ａおよびｂは、それぞれ、値−１、０、または１を取りうる。ａの値は、
【０１４５】
【数１８】
2014170556.tif 000020
【０１４６】
の中の相互作用が、プロセッサ（ｉ−１，ｊ）により計算できるか（この場合、ａ＝−１）、またはプロセッサ（ｉ＋１，ｊ）により計算できるか（この場合、ａ＝１）、またはいずれでも計算できないか（この場合、ａ＝０）を示す。ｂの値は、相互作用が、プロセッサ（ｉ，ｊ−１）により計算できるか（この場合、ｂ＝−１）、またはプロセッサ（ｉ，ｊ＋１）により計算できるか（この場合、ｂ＝１）、またはいずれでも計算できないか（この場合、ｂ＝０）を示す。インポート領域の形状は、両方のプロセッサ（ｉ，ｊ）および（ｉ＋１，ｊ＋１）において計算可能である場合、かつその場合に限り、相互作用が
【０１４７】
【数１９】
2014170556.tif 000021
【０１４８】
にあることを意味する（これは、インポート体積が中間点法のそれに制限されていた場合には当てはまらないであろう）。隣接するプロセッサは、共有要素の集合について一致し、例えば、
【０１４９】
【数２０】
2014170556.tif 000022
【０１５０】
は、
【０１５１】
【数２１】
2014170556.tif 000023
【０１５２】
と同じ要素を含む。ここでは、
【０１５３】
【数２２】
2014170556.tif 000024
【０１５４】
のサイズを
【０１５５】
【数２３】
2014170556.tif 000025
【０１５６】
で表す。
それぞれのプロセッサ（ｉ，ｊ）は、値
【０１５７】
【数２４】
2014170556.tif 000026
【０１５８】
をプロセッサ（ｉ，ｊ−１）および（ｉ，ｊ＋１）に送る。｛−１，０，１｝の中のそれぞれのａについて、
【０１５９】
【数２５】
2014170556.tif 000027
【０１６０】
内の最初の
【０１６１】
【数２６】
2014170556.tif 000028
【０１６２】
個の相互作用を列ｊ内のプロセッサに割り当て、最後の
【０１６３】
【数２７】
2014170556.tif 000029
【０１６４】
を列ｊ＋１内のプロセッサに割り当てる。ただし、
【０１６５】
【数２８】
2014170556.tif 000030
【０１６６】
は、式１においてｒｉに
【０１６７】
【数２９】
2014170556.tif 000031
【０１６８】
を代入し、ｃｉに
【０１６９】
【数３０】
2014170556.tif 000032
【０１７０】
を代入し、ｃｉ＋１に
【０１７１】
【数３１】
2014170556.tif 000033
【０１７２】
を代入して計算される。プロセッサ（ｉ，ｊ＋１）は、  
【０１７３】
【数３２】
2014170556.tif 000034
【０１７４】
のすべての相互作用に対し同一の列割り当てを独立に計算する。プロセッサ（ｉ＋１，ｊ）および（ｉ＋１，ｊ＋１）は、
【０１７５】
【数３３】
2014170556.tif 000035
【０１７６】
の相互作用に対する同一の列割り当てを独立に計算し、プロセッサ（ｉ−１，ｊ）および（ｉ−１，ｊ＋１）は、
【０１７７】
【数３４】
2014170556.tif 000036
【０１７８】
の相互作用に対する同一の列割り当てを独立に計算する。この時点で、すべての相互作用は、１つの列に一意に割り当てられている。次いで、１次元の場合についてすでに説明されているのと同じ手順を使用してそれぞれの列内のプロセッサ間に相互作用が分配される。
【０１７９】
相互作用をプロセッサに割り当てるさらに複雑なアルゴリズムと引き換えに、基本中間点法のインポート体積のみを必要とするであろう多次元中間点保証法の式をたてることが可能である。上で説明されている中間点保証法は、粒子の集合間の相互作用が中間点を含むボックス内、または隣接するボックス（つまり、少なくとも１つのコーナーを共有するボックス）内のいずれかで常に計算されることを必要とする場合にＲがボックスの辺長の１つまたは複数よりも大きい場合に直接的な方法で一般化される。この制限を撤廃する他の中間点保証法では、負荷分散をさらに改善することができる。
【０１８０】
３．２．５  並進不変性
これまで説明してきた分解方式は、並進不変である。つまり、それぞれのホームボックスは、関連付けられている相互作用ゾーンと同じ空間関係を有する。割り当て規則により、必ずしも並進不変でない分解を記述することができる。
【０１８１】
並進不変でない割り当て規則の１実施例として、ｉａ→ｂ＝ｉａであり、２進数表現ｊａ→ｂの最下位ビットがｊａの最下位ビットであり、ｊａ→ｂの他のビットがｊｂの最下位ビットと同一である割り当て規則を考える。この分解は、図７に例示されているＳＨアナログの分解と類似しているが、奇数ｊ座標を持つホームボックスのインポート領域は、偶数ｊ座標を持つホームボックスのインポート領域と異なる。
【０１８２】
このような非並進不変性割り当て規則を使用することで、並進不変性アプローチに制限するよりも、ツリー状ネットワークの性能を改善することができる。ツリー状ネットワー
クでは、隣接するホームボックスのいくつかの集合の間の通信は、隣接するホームボックスの他の複数の集合の間の通信に比べて費用がかからないか、またはより好ましい。並進不変性方式を使用すると、トロイダル・ネットワークおよび全対全相互接続方式を使用するネットワークを含む、並進不変性ネットワークの性能が最適化される可能性があるが、非並進不変性方式は、ネットワーク自体が並進不変ではない場合に好ましいと思われる。
【０１８３】
そこで、これらのアプローチの多くは非並進不変性分解に直接またはある程度修正して適用することができることを理解したうえで、並進不変な分解に主に注目する。
並進不変な方式の部分集合は、相互作用ホームボックスの論理ｘ座標が粒子の論理ｘ座標にのみ依存し、ｙ座標についても同様に依存するという意味で分離可能である。本明細書で説明されている方式の大半は、ここでもまた、アプローチの多くは、分離不可能な場合にも直接に、またはある程度修正して適用可能であるということを理解したうえで、分離可能である。
【０１８４】
３．３  可換な相互作用
上に示されている簡略化された問題における仮定の１つ（上でＤのラベルが付けられている）は、粒子ａとｂの対について、ａのｂに対する影響とｂのａに対する影響を別々に計算するというものであった。大半ではないとしても多くの応用において、これらの影響は対称性を有し、これにより、ただ１つの相互作用を計算すればよい。相互作用が可換でないとしても、計算には、粒子位置などの同じ入力が必要な場合がある。これを利用して、同じホームボックスで両方の非可換相互作用を計算することにより通信要件を低減することができる。
【０１８５】
受け入れ領域だけでなく、「伝送領域」をも含むように可換相互作用に対する畳み込み判定基準が修正される。方法の伝送領域は、ホームボックス内の粒子の影響を受けるすべての粒子を含むことが保証される空間の最小体積である。ここで、ホームボックスの受け入れ領域と伝送領域の和集合が、相互作用近傍全体を確実に含むようにすることが必要である。伝送領域および受け入れ領域は、密に関係している。受け入れ領域を決定するために使用されたのと類似の手順で伝送領域を決定することが可能であるが、ただし、「赤色」ゾーンと「青色」ゾーンの役割を反転する。その結果、伝送領域は、単なるホームボックスを中心として鏡映された受け入れ領域であることになる。２つの領域の和集合は、受け入れ領域が相互作用近傍の「対称的な半分」を含む場合かつその場合に限り相互作用近傍全体を含む。つまり、２つの領域は、受け入れ領域内に入らない相互作用近傍内の任意の点について、ホームボックスを中心とする鏡映より得られる点が受け入れ領域内に入る場合に、相互作用近傍全体を含む。
【０１８６】
分解方法を指定するために割り当て規則が使用される場合、割り当て規則を一般化して相互作用の対称性を利用するようにする１方法では、割り当て規則を適用する前に粒子対の順序付けを行う。つまり、新しい割り当て規則は、正規順序で２つの引数の順序を決める関数の結果に適用される元の割り当て規則として定義することが可能である。例えば、順序付けは、対の中の第１の粒子が結合がｙにより破られた最小ｘ座標を有するような順序付けとする。いくつかの割り当て規則（本明細書の後の方で説明される１／８シェル法の規則など）では、相互作用計算の可換な性質を利用するように順序付けを追加する必要はない。
【０１８７】
図１２および１５では、ＨＳのインポート領域に対する可換な相互作用および図５と８の泡状アナログのそれぞれを利用する修正形態を例示している。それぞれの場合において、２つの相互作用ゾーンのうちの一方をおおよそ半分に切り分けた。それぞれの方式に対する受け入れ領域は、それぞれ破線１２５０および１５５０内に囲まれている。それぞれの場合において、受け入れ領域は、相互作用近傍の少なくとも半分を含み、受け入れ領域
とホームボックスを中心とする受け入れ領域の鏡映との和集合は、相互作用近傍全体を覆う。これらの分解において、それぞれのゾーン内のすべての粒子を他のすべてのゾーン内のすべての粒子と単純に相互作用させる場合、いくつかの近距離相互作用が計算され、Ｒよりも大きいユークリッド距離だけ隔てられている対に対するいくつかの過剰な相互作用も計算される場合があることに留意されたい。対レベルのフィルタ処理メカニズムは、例えば、計算反復の内側ループに検査を導入することにより使用できるが、そのような検査を必ずしも必要とせずにこのような二重計算を避ける代替え方法が、以下の第６節において導入される。
【０１８８】
３．４  丸め判定基準
上で導入されたように、上記のアプローチは、相互作用半径である、Ｒよりも短いユークリッド距離だけ隔てられている粒子間の相互作用の計算に関係する。簡略化された２次元問題では、したがって、それぞれの粒子は、上の仮定Ｂで説明されているように、辺長２Ｒの正方形ではなく半径Ｒの円内に入る粒子と相互作用する。同様に、ホームボックスの相互作用近傍は、上で考察された正方形領域の部分領域であり（仮定Ｂの帰結として）、部分領域のコーナーは、少なくとも一部は相互作用近傍内に入るホームボックスの限界まで伸びるのではなく「丸め」られる。この丸めを通して体積を低減するそのような相互作用近傍の使用は、インポート領域のサイズを縮小し、それにより、相互作用すべき粒子に関する情報をインポートするために必要な通信の量を減らすために活かされる。インポート領域のサイズを縮小するこの技術は、「丸め」と呼ばれる。
【０１８９】
インポート領域の境界が丸められる程度を指定する基準は、相互作用ゾーンｖ内の点が、ｖと相互作用するゾーンの集合内の最も近い点からＲよりも遠く離れている場合にゾーンから捨てられるように、表現される。この節で説明されている２ゾーン法では、このことは、赤色ゾーン内の点は青色ゾーン内のすべての点からＲよりも遠く離れている場合に捨てられ、青色ゾーン内の点は赤色ゾーン内のすべての点からＲよりも遠く離れている場合に捨てられることを意味する。
【０１９０】
図１６〜１７のＨＳおよびＳＨアナログの丸めバージョンはそれぞれ、丸めを使用しない対応する図１２および１４と比較して、上で提示されている丸め判定基準に基づいて決定されるインポート領域が縮小していることを示している。図１６〜１７では、相互作用領域１６５０および１７５０は、それぞれ、波線により囲まれている。図１７では、丸められた受け入れ領域１７５０は、点線で囲まれている、相互作用近傍１７５５を超えて伸びていることに留意されたい。丸めはインポート体積を決して増やさないが、常に縮小させるわけでもない。例えば、図１５の泡状アナログまたは図１３のＮＴアナログの特定のインスタンスのインポート領域は、丸めにより体積が減少しない。
【０１９１】
丸め判定基準を使用することで、さらに、前の節の技術を任意のＲに一般化することができ（例えば、ホームボックスの辺長の整数倍でない）、任意のホームボックス・アスペクト比に適用可能である。このような場合、相互作用ゾーンは、分数ホームボックスを含むことができる。
【０１９２】
ボクセル化法では、相互作用ゾーンは、丸めを使用することなく、完全なホームボックスからなり（上の仮定Ｃ）、すべての局所的粒子は、その方法の受け入れ領域および伝送領域内の粒子の集合と突き合わせて近距離相互作用について検査される。相互作用近傍内のホームボックス全体がインポートされると仮定して、ゾーンが分数ホームボックスを含むように方法が丸められる場合、これはもはや正しくない。例えば、ホームボックスのコーナー近くの局所的粒子は、反対側コーナーにある局所的粒子と異なる粒子の集合と突き合わせて近距離相互作用について検査されることが可能である。インポート自体は、好ましくは、丸められた領域に制限され、このため、インポート領域内のホームボックスは、
丸められた部分領域内に配置されている粒子のみを、計算を実行するホームボックスに供給する。このようにして、計算を実行するホームボックスにより考慮される、Ｒよりも大きな距離だけ隔てられている粒子の対が少なく、相互作用するゾーンのいくつかの対については、Ｒよりも大きい距離だけ隔てられた粒子の対を考慮することを回避するために計算ループ内に検査を必要としない。
【０１９３】
３．５  高次元での分解
上述の簡略化された技術は、高次元の場合に一般化される（上記の仮定Ａを緩和する）。それぞれのホームボックスが一方の並進不変性相互作用ゾーン内の粒子を他方のゾーン内の粒子と相互作用させる方法が与えられた場合、畳み込み判定基準または割り当て規則を使用して、距離Ｒ内のすべての粒子対が相互作用するかどうかを決定し、次いで、丸め判定基準により相互作用ゾーンを丸めることができる。上述の３次元ＨＳ、ＳＨ、ＮＴ、およびＳＮＴ法は、この一般的なクラスの方式の具体的なインスタンスである。
【０１９４】
実用面で有用であることが判明した分解のクラスでは、並進不変性があり分離可能な分解を使用する。分解は、相互作用ホームボックスの論理ｘ座標が粒子の論理ｘ座標にのみ依存し、座標の他の次元についても同様に依存する場合に「分離可能」と呼ばれる。分離可能な分解は、次元毎に別々の分解を指定することにより記述することが可能である。このような分離可能な分解の１実施例として、それぞれの次元について２つの分解のうちのいずれかを使用することができる。
Ａ．一方のゾーンが単一のホームボックスのみを含み、他方のゾーンが相互作用近傍の端から端まで広がるホームボックスの１つの行を含む分解。これは、図１２に例示されているＨＳアナログと図１３に例示されているＮＴアナログの両方の次元、および図１４に例示されているＳＨアナログの水平方向次元についての場合である。
Ｂ．一方のゾーンが複数の隣接ホームボックスからなり、他方のゾーンは相互作用近傍の端から端まで規則正しい間隔で並ぶ個々の非隣接ホームボックスの集合からなる。これは、図１５に例示されている「泡」アナログの両方の次元、および図１４に例示されているＳＨアナログの垂直次元の場合である。
【０１９５】
上記の分解Ａは、分解Ｂの特別な場合とみなすことができるが、結果として得られる方法の特性に関しては、それらを別々に取り扱うのがよい。
それぞれの次元について以下の４つの選択肢のうちの１つを選択することによりそのような方法の１つのゾーンを構成することができる。
【０１９６】
・ａ．すべてのホームボックス、
・ａ’．単一のホームボックス、
・ｂ．その次元にわたって規則正しい間隔で並べられた個別のホームボックスの集合、
・ｂ’．複数の隣接ホームボックスからなるブロック。
【０１９７】
他のゾーンは、第１のゾーンに対して相補的であるという要件により一意に決定される。それぞれの次元において、ａとａ’とは相補的であり、ｂとｂ’ともそうである。
３つの次元では、この記述に適合する一意的な分解は２０ある。ただし、１つの次元にそって相互作用ゾーンのうちの１つを半分にすることにより相互作用の可換性を利用すると仮定する。
【０１９８】
一般性を失うことなく、「赤色」ゾーンが、第１の次元にそって半分にされることを要求する。これにより、赤色ゾーンの第１の次元に対するオプションをａおよびｂに制限する。赤色ゾーンの第２および第３の次元に対し４つの選択肢のうちのどれかを選択することができる。しかし、２つの次元には区別がないため、選択肢に関してａ＞ａ’ｂ＞ｂ’と順序付けを課し、第２のゾーンに対する選択が、第３のゾーンに対する選択よりも大き
くならないという条件を付す。こうして、第２および第３のゾーンに対する分解を４＋３＋２＋１＝１０通り選択することが可能であり、したがって、このクラスにおいては合計２×１０＝２０の分解がある。一意的な分解を数えるときに、ホームボックスに関してそれぞれのゾーンの正確な位置決めなどの詳細を無視したことに留意されたい。
【０１９９】
図２および３に例示されている、ＨＳおよびＮＴ法は、それぞれ、これらの一意的な分解のうちの２つである。ＳＮＴは、ホームボックス１８１０のゾーン１８２０と１８３０が丸められている図１８に例示されているように、もう１つの分解である。図１９〜２１は、このクラスの他の３つの方法を示している。図２０を参照すると、「クラウド」法は、丸め判定基準から結果として得られる半径が次々に小さくなってゆく一連の円形プレートからなるホームボックス１９１０の一方のゾーン１９２０およびホームボックスと連続している第２のゾーン１９３０を有する。図２０を参照すると、「シティー」法は、丸め判定基準により切り詰められる垂直タワーの集合からなるホームボックス２０１０（ビューから隠されている）の一方のゾーン２０２０およびホームボックス２０１０と連続している第２のゾーン２０３０を有する。図２１を参照すると、「泡」法は、３次元グリッド内に規則正しく配列され、丸め判定基準に従って切り詰められた部分ゾーンの集合からなる一方のゾーン２１２０およびホームボックス２１１０と連続している第２のゾーン２１３０を有する。
【０２００】
丸めは、図１８〜２１に例示されている方法とともに、異なる範囲において利用される。図３および１８に例示されている、ＮＴおよびＳＮＴ法は、それぞれ、２次元丸めを利用する。つまり、平面上に射影されたときにホームボックスから距離Ｒを超えるゾーンの部分を排除するために一方または両方の相互作用ゾーンを丸める。このような丸めにより、それぞれの粒子が半径Ｒおよび高さ２Ｒの円柱とほぼ同様の形状の囲む領域内にあるすべての粒子と突き合わせて検査されることが保証される。ホームボックスが、例えば、高い並列化限界において、Ｒに関して非常に小さい場合、２次元丸めにより、丸められたゾーンのサイズおよび受け入れ領域のサイズは、丸められていない場合に比べてπ／４に縮小される。図２および１９〜２１に例示されている、ＨＳ、クラウド、シティー、および泡法を含む他の分解では、それぞれ、３次元丸めを実行できる。つまり、これらにより、３次元空間内のホームボックスから距離Ｒを超える受け入れ領域の大半の部分を排除するために相互作用ゾーンの１つを縮小することができる。このような丸めにより、それぞれの粒子が、何らかのさらに大きな領域ではなく、囲む半径Ｒの球体とほぼ同様の形状の領域内にあるすべての粒子と相互作用することが保証される。丸められたゾーンおよび受け入れ領域のサイズは、丸められていない場合と比べてπ／６、２次元の丸めの場合と比べて２／３に縮小できる。ゾーンの３次元丸めは、３つの次元すべてにおいて分解ａまたはｂを使用したときに可能である。
【０２０１】
後に記載するように、インポート帯域幅要件を最小にするために、インポート・ゾーンの体積のバランスをとることが望ましい。これは、次元が偶数の系の場合の方が容易に遂行され、その際に同じ形状を持つ２つの相互作用ゾーンを選択できる（例えば、図６）。この場合でも、典型的には、対称性を考慮することで１つの次元にそって１つのゾーンを半分にし、これでゾーンの間に体積の差が生じるが、他の手段を介してバランスをとることが可能である。奇数の次元では、２つのゾーンの間に固有の非対称性が入り込む。それでも、例えば、以下の２つの方法のうちの１つでその体積のバランスをとることができる。
【０２０２】
・非立方体ホームボックスを使用し、ゾーンの一方を他の方法の場合よりも大きくし、他方を小さくする。これは、ＮＴ法により使用される技術である。
・一方または両方のゾーンが複数の非隣接断片（例えば、上記の分解ｂ）を伴う方法では、断片の間の間隔を適宜選択する。これは、ＳＨ法により使用される技術である。
【０２０３】
これらの最適化戦略は組み合わせることが可能である。後で最適化の話題に戻る。
４  共有通信
上記の中間点法は、計算の複数の異なる成分で同じ通信される粒子データを利用し、これによりそれぞれの成分が別々に並列化される場合と比べて必要な総通信量が低減されるため、分子力学シミュレーションの並列化に特に適している。一般に、最大４個までの粒子の相互作用とともに、対毎の静電気およびファン・デル・ワールス項を伴う、結合力項の評価を並列化するために使用することが可能である。さらに、これにより、結合力項の評価を含む、ＭＤ計算の複数の成分は、隣接原子の対の間の静電気およびファン・デル・ワールス力の評価のため伝達される同じデータに頼ることができる。
【０２０４】
大半の生体分子力場内の粒子に加えられる力の合計は、分子の共有結合構造に依存する結合力項と、系内の粒子のすべての対の間の静電気およびファン・デル・ワールス相互作用からなる非結合力項との総和として表現される。結合力項は、結合により接続された２つの粒子を伴う結合長項、３つの粒子を伴い、そのうち２つの粒子は第３の粒子に結合されている結合角項、および３つの結合により接続された４つの粒子を伴う二面角項を含む。任意の結合項に関わる粒子を囲むために必要な球体の最大半径をｒ１で表す。通常の生体分子力場では、ｒ１は、４｛Ａ｝以下である。
【０２０５】
他方、非結合力項は、系内の粒子のすべての対を伴い、したがって、計算の負担がかなり大きなものとなる。ファン・デル・ワールス力は、あるカットオフ半径ｒ２よりも大きい、典型的には９から１２｛Ａ｝の間で選択された距離だけ隔てられた粒子の対について典型的には無視できる距離とともに十分速やかに減少する。増える一方の一連の証拠から、カットオフを超える静電相互作用を無視することは、明確に解決するシミュレーションには不適切であることが分かっており、したがって、静電気力は、典型的には、粒子のすべての対の明示的相互作用を必要とせずに遠距離相互作用を考慮する複数の効率のよい近似法の１つにより計算される。これらの方法の実施例は、高速フーリエ変換（ＦＦＴ）またはマルチグリッド・ソルバーを使用して、メッシュ上の静電ポテンシャルを、そのメッシュ上で電荷分布が与えられた場合について計算する、粒子−粒子・粒子メッシュ（ＰＰＰＭ）、粒子メッシュＥｗａｌｄ（ＰＭＥ）、格子ガウス・マルチグリッド（ＬＧＭ）、およびガウス分割Ｅｗａｌｄ（ＧＳＥ）などのメッシュ・ベースのＥｗａｌｄ法を含む。これらの方法では、修正された静電相互作用はあるカットオフ半径内で明示的に計算される必要があり、ここでは、このカットオフ半径は、ファン・デル・ワールス・カットオフ半径ｒ２と同じになるように選択されると仮定するが、典型的にはそうである。これらの方法では、さらに、フーリエ領域またはマルチグリッド計算の前に電荷が粒子から隣接メッシュ点にマッピングされること、およびその後、粒子に加えられる力が隣接メッシュ点のところのポテンシャルから計算されることが必要である。電荷拡散の計算では、それぞれのメッシュ点上の電荷は、複数の隣接粒子にわたる総和として決定されるが、力拡散の計算では、それぞれの粒子に加えられる力は、複数の隣接メッシュ点にわたる総和として計算される。電荷拡散または力拡散のいずれかにおいて、粒子とその粒子と「相互作用する」メッシュ点との間の最大距離をｒ３で表す。ｒ３の値は、使用される長距離静電気力法のパラメータに依存するが、典型的には５｛Ａ｝程度である。
【０２０６】
中間点法を使用して明示的な対毎の静電気およびファン・デル・ワールス相互作用の計算を並列化する場合、それぞれのプロセッサは、そのホームボックスの境界からｒ２／２の距離内にある粒子についてデータをインポートしなければならない。それぞれのプロセッサは、そのインポート領域内の粒子に力を加える相互作用を計算し、対毎の相互作用の計算が完了したら、それらの粒子のそれぞれに対する力をそれぞれの粒子のホームボックスにエクスポートしなければならない。
【０２０７】
ｒ３＜ｒ２／２の場合、電荷拡散および力拡散をサポートするために、追加の通信を必要としない。明示的な非結合力の計算のインポート要件により、それぞれのプロセッサは、ホームボックス内にある任意のメッシュ点からの距離ｒ２／２の範囲内のすべての遠隔粒子を必ずインポートする。同様に、このエクスポート要件により、それぞれのプロセッサは力を遠隔粒子のこの集合に必ずエクスポートするようになる（遠隔粒子は、相互作用ボックス上にない粒子である）。ホームボックス内のメッシュ点によるそれぞれの遠隔粒子に対する力の寄与分を、チップ間通信の前の力のそれぞれに組み合わせることができる。共通の生体分子力場を使用するＭＤ試行において、ｒ３は、通常、ｒ２／２にほぼ等しい。使用されるメッシュ・ベースのＥｗａｌｄ法のパラメータは、ｒ３＜ｒ２／２となることを保証するように調整することが可能であり、それとは別に、インポート領域は、ホームボックスの境界から距離ｒ３の範囲内にあるすべての粒子を含むように拡大することができる。
【０２０８】
同様に、ｒ１＜ｒ２／２−典型的には、通常の生体分子力場を使用するＭＤシミュレーションの場合と同様−の場合、結合項の計算をサポートするのに、追加の通信を必要としない。この計算は、さらに、それぞれの結合項を、その項に含まれる粒子の中間点を含むプロセッサにより計算される中間点法を使用して並列化することも可能である。明示的非結合力計算のインポート要件では、それぞれの粒子に対するデータが結合力項を計算するためにその粒子を必要とするプロセッサ上で利用可能であることを保証するが、エクスポート要件では、力の寄与分がその粒子が置かれるプロセッサにエクスポートされて戻されることを保証する。
【０２０９】
空間分解を介して並列化されたＭＤシミュレーションでは、粒子は移動の際に、一方のホームボックスから他方のホームボックスへ移行する。１時間ステップで粒子が移動する最大距離ｒ４−典型的には０．１｛Ａ｝未満−がｒ２／２未満である限り、粒子の移動に付加的な通信を必要とせず、その新しい位置は、明示的な非結合相互作用に関して中間点法により必要とされるインポート・データの一部として伝達される（いくつかの場合において、データは、粒子移動が別々に実行された場合よりも多くのボックスからインポートされる必要があるが、それは、インポートされるべきデータは、相互作用ボックスから距離ｒ２／２の範囲内にある点を含むボックス上のみではなく、相互作用ボックスからｒ２／２＋ｒ４の距離の範囲内にある点を含む任意のボックス上に置かれる場合があるからである。）これは、一般的に、ＮＴ、ＨＳ、またはＥＳ法の場合に当てはまらず、その場合粒子が相互作用ボックスに近接していても、粒子がその相互作用ボックスによりインポートされることが保証されないことに留意されたい。
【０２１０】
辺の測定長が６４｛Ａ｝であり、５１２個のプロセッサを備えるシステム上で実行され、８×８×８ボックスのメッシュに分割される、立方体グローバル・セルによる分子力学シミュレーションを考察する。ここでは、明示的な対毎の非結合相互作用について相互作用半径ｒ２＝１２｛Ａ｝を使用すると想定する。中間点法を使用してこれらの相互作用を並列化する場合、インポート体積は５９２３｛Ａ｝３となり、結合力の計算も、中間点法を使用して並列化されるとすれば、電荷拡散、力拡散、粒子移動、または結合力の計算には、追加の通信は必要ない。他方では、ＨＳ法を使用して、明示的な対毎の非結合相互作用を並列化するには、１１３５２｛Ａ｝３のインポート体積を必要とする。しかし、このインポート体積では、特定のホームボックス上のメッシュ点の近くのすべての遠隔粒子がそのホームボックス上にインポートされることは保証されない。ｒ３＝４．５｛Ａ｝の場合、電荷拡散は、２１６４｛Ａ｝３の追加のインポート体積を必要とし、力拡散は、追加の相当する量のデータ・エクスポートを必要とする。それぞれの項が、固定プロセッサまたは特定の粒子を含むプロセッサのいずれかで計算される、結合力に関する従来の並列化戦略は、粒子が移動する際に、追加の通信を必要とする。
【０２１１】
ここで、中間点法のインポート領域を使用するすべての方法において、通信が同じように共有されることが予想される。また、メッシュ・ベースのＥｗａｌｄ法が上に提示されているが、中間点法では、さらに、他の長距離静電気力法の計算の成分間の通信共有が可能になる。本質的に、これらの方法（高速多重極法および関係する関係するツリー・コード法を含む）すべてにおいて、隣接する粒子の間のいくつかの対毎の粒子相互作用が明示的に計算されることが要求され、少なくとも、この計算に必要な通信は、結合相互作用に必要な通信と共有される。
【０２１２】
５  対リストおよび除外グループ
相互作用する粒子の対を識別することを伴うアプローチでは、粒子の複数の対が識別された時点で相互作用の計算が実行されるように計算を分配される。それとは別に、ＮＴ法などのアプローチが、相互作用する粒子の対を識別するために使用されるが、対が識別されるときに計算を実行するのではなく、対のリストが生成される。次いで、必要な計算を反復するためにリストが使用される。例えば、対毎の計算が開始する前に対のリストが完全に計算されるか、または他のソフトウェアまたはさらに多くの対が計算されている間にハードウェア・モジュールがリストを受け取り、相互作用を計算するパイプライン化アプローチが使用される。いくつかのハードウェア・アーキテクチャでは、対毎の計算から対リストの生成を分離すると、例えば、より単純なハードウェアまたはより効率的にコーディングされた内側ソフトウェア・ループを使用して対毎の相互作用を計算できるようにすることにより、計算効率を高めることができる。
【０２１３】
対毎の粒子相互作用の計算の他の態様は、対の識別に対リストを使用することが適していようと、計算を実行することが適していようと、指定された相互作用半径内のいくつかの粒子対が計算から実際に除外されなければならないということである。例えば、分子力学シミュレーションでは、カットオフ半径Ｒの範囲内にあり、共有結合されていないファン・デル・ワールスおよび近距離静電相互作用（非結合相互作用）の計算が実行される。カットオフ半径を持つ粒子の対が共有結合されている場合、近距離静電気力項は含まれない。半径Ｒ内にあるが、非結合相互作用を有していない粒子の対は、除外対と呼ばれる。
【０２１４】
粒子の結合対を伴う計算の除外を取り扱うアプローチは、（１）相互作用半径の範囲内にある粒子のすべての対の静電気力の寄与分を含め、後から共有結合されている対の力の寄与分を差し引くこと（つまり、「補正」）、および（２）第１の場所に静電気力の項を導入することを回避するため相互作用半径を持つ粒子の対を識別する際に除外対を識別することを含む。
【０２１５】
上述のＮｅｕｔｒａｌ  Ｔｅｒｒｉｔｏｒｙ法では、Ｒの範囲内にあるすべての対の間の相互作用を見つけて、例えば、並列マシン上に効率よく分散させることができる。しかし、この計算のときに除外を効率よく考慮するために、粒子の対が除外されるかどうかを素早く検出するための手段は、計算の効率を高めることが可能である。
【０２１６】
１つの解決策は、対が除外されているかどうかを示すエントリを持つ粒子によりインデックス付けされたブール値行列を作成する（概念的には、ｉｓ＿ｅｘｃｌｕｄｅｄ（ｉ，ｊ））。しかし、穏当な数の粒子の場合でも、この行列の直接的記憶域（または行列が転置対称行列なので行列の半分）は、ひどく大きなものとなる可能性がある。除外の数は、通常、粒子の個数に比例して増大するので、行列は疎行列であり、圧縮形式で格納することが可能である。
【０２１７】
除外グループは、除外対の集合を指定するための代替え手段となる。それぞれの粒子は、粒子が割り当てられる除外グループを示す関連付けられた値を有する。２つの粒子が同じに除外グループに属している場合、それらの粒子は、除外対とみなされ、Ｎｅｕｔｒａ
ｌ  Ｔｅｒｒｉｔｏｒｙ法のマッチメーキング工程において破棄される。
【０２１８】
この検査は、効率的であり、Ｎｅｕｔｒａｌ  Ｔｅｒｒｉｔｏｒｙ法実装と範囲制限された対毎の相互作用を伴う多くの問題の物理的特性の両方にうまくマッピングされる。例えば、ここでもまた、分子力学では、同じ水分子に属している粒子の間のすべての非結合相互作用は、例えば、一般に除外される。それぞれの水分子に対応する除外グループがある場合、水除外の追加の処理は必要ない。
【０２１９】
その使用法と割り当てについて説明するために、１２個の粒子によるシミュレーションについて考察する。これら１２個の粒子は、メタン分子（粒子０、１、３、６、９）、２個の水分子（粒子２、４、５、および７、８、１０）、およびナトリウム・イオン（粒子１１）を表す。同じ分子に属す粒子間のすべての対毎の非結合相互作用は、除外される。
【０２２０】
粒子０、１、３、６、および９は、除外グループ２に割り当てることが可能であり、粒子２、４、および５は、除外グループ５に割り当てることが可能であり、粒子７、８、１０は、除外グループ０に割り当てることが可能であり、粒子１１は、除外グループ１に割り当てることが可能である。この説明から、さらに、粒子および除外グループの割り当ては、特別な順序付けを必要としないことがわかる。
【０２２１】
６  マルチ・ゾーン法
一般に、上で考察した方法では、２つの重なり合うゾーンが相互作用する−ホームボックス／シェル、タワー／プレート、ベース／コーム、レンガ／泡、または一般的に、青色／赤色。この節では、複数のゾーンを伴う方法を考察し、その対は、使用される特定の方法に応じて相互作用するように選択することができる。そのようマルチ・ゾーン法では、インポート領域およびホームボックスは、複数の潜在的に重なり合うゾーンの集合の和集合として取り扱われる。１つのゾーン内の粒子は、他のゾーンの部分集合内のすべての粒子と相互作用する。
【０２２２】
単純な２次元の場合のマルチ・ゾーン法を説明するために、図２２に示されているインポート領域を考察する。ホームボックス２２１０は、＋ｘ方向にＲだけ伸ばしたホームボックスに隣接する矩形２２２０、＋ｙ方向にＲだけ伸ばしたホームボックス２２１０に隣接する矩形２２３０、および矩形２２２０と２２３０の両方に隣接する半径Ｒの円２２４０の１／４をインポートする。ホームボックス２２１０は、異なるゾーンとして取り扱われる。ホームボックス２２１０粒子は、他の３つのゾーン（２２２０、２２３０、および２２４０）のそれぞれの中の粒子と相互作用し、垂直矩形２２３０内の粒子は、水平矩形２２２０内の粒子と相互作用する。指定条件を満たすうえで、粒子の対は、相互作用半径Ｒによりフィルタ処理され、局所的相互作用（ホームボックス−ホームボックス・ゾーン相互作用において排他的に生じる）は、二重計算を避けるためにフィルタ処理されるべきである。
【０２２３】
フィルタ演算は、さまざまな方法で実装できることに留意されたい。ホームボックスがホームボックス毎に高々ただ１つの粒子があるように粒子の周りの除外体積よりも小さい場合、考慮すべき局所的相互作用は全くない。多数の局所的相互作用がある場合、粒子ＩＤまたは他の手段によりフィルタ処理することが可能である。それとは別に、特別なケース構文により取り扱うことが可能である。他のゾーンのようにホームボックスを取り扱うことが望ましく、ホームボックス１つ当たりの粒子の個数が適度であれば、フィックスアップ・ループが実行され、冗長な相互作用を差し引くことが可能である。ある種の近距離相互作用に対しては、さらに、ホームボックス−ホームボックス・ゾーン相互作用を正則ゾーン−ゾーン相互作用のように処理するが、結果を半分にスケーリングすることも可能である。
【０２２４】
この方法のインポート体積は、図１６に例示されている、ＨＳアナログのインポート体積よりも常に小さい。Ｒがホームボックスの辺長に関して小さい場合、インポート体積は、さらに、図１３に例示されている、ＮＴアナログのインポート体積よりも小さい。
【０２２５】
マルチ・ゾーン法の有効性は、割り当て規則を決定するか、または畳み込み判定基準を適用することによりチェックすることができる。畳み込み判定基準は、以下のように幾何学的考慮事項を用いて複数のゾーンに一般化されうる。それぞれのゾーン−ゾーン相互作用は、受け入れおよび伝送領域を生成する。すべてのゾーン−ゾーン受け入れ領域および伝送領域の和集合は、ホームボックスの相互作用近傍を覆わなければならない。
【０２２６】
図２２に例示されているこの方法は、割り当て規則
（ｉａ←→ｂ，ｊａ←→ｂ）＝（ｍｉｎ（ｉａ，ｉｂ），ｍｉｎ（ｊａ，ｊｂ））
に対応する。
【０２２７】
それとは別に、畳み込み判定基準を適用できる。ホームボックス２２１０と他のゾーン２２２０、２２３０、および２２４０との間の相互作用の受け入れ領域および伝送領域は、相互作用近傍の２つの１／４円部分以外の全部を覆う。矩形ゾーン２２２０と２２３０の相互作用は、残り部分を覆う。
【０２２８】
特定のマルチ・ゾーン法について、粒子相互作用が考慮されるゾーンの組合せ（対）の集合は、例えば、二重計算を回避するように選択されることに留意されたい。ゾーンの組合せを考慮する際の順序またはスケジュールも指定することが可能であり、例えば、計算または通信の考慮に基づいて選択される。ゾーンの組合せを考慮する順序は、選択されたすべての組合せが考慮される限り、すべての近距離相互作用が必ず計算されるようにするために重要というわけではない。しかし、スケジュールは、通信を計算と重ね合わせるように選択することが可能である。
【０２２９】
可換な相互作用では、スケジュールの指定は、サイズが方法におけるゾーンの数である三角行列とみなされうる。この行列内のエントリは、非負整数であり、ゾーン−ゾーン相互作用が計算される順序を指定する。ゼロのエントリは、ゾーン−ゾーン相互作用が全く計算されないことを示す。
【０２３０】
図２２の方法のスケジュールは、図２３に示されている。マルチ・ゾーン法は、ゾーンの定義、ゾーン相互作用のスケジュール、および追加の冗長性フィルタ処理メカニズムに基づいて指定される。
【０２３１】
最適なスケジュールは、この方法が実装されるネットワークおよびプロセッサの特性の影響を受ける。１アプローチとして、スケジュールを決定するが、この説明で一般に使用されるアプローチは、スケジュール行列を行について書き込み、次いで列について書き込むことを伴う。この順序により、計算の進行とともにすでに受け取られているゾーンで最大数のゾーン−ゾーン相互作用が実行される。行列の行および列に対する順序を選択した後、残りの自由度は、ゾーンの順序付けである。最適な順序の選択は、ハードウェア依存であってよいが、図２３に示されているスケジュールにおいて、さらに多くのゾーン−ゾーン相互作用に関わるインポート・ゾーンは、少ないゾーン−ゾーン相互作用に関わるインポート・ゾーンの前にスケジューリングされる。
【０２３２】
計算および通信の最大の重なり合いを可能にする相互作用の順序は、利用可能な計算ハードウェアの詳細に依存する。スケジュールを決定する手順は、以下の通りである。まず最初に、ゾーンがインポートされる順序を決定するが、ただし、ゾーンｕがゾーンｖより
も多いゾーン−ゾーン相互作用に関わる場合にゾーンｖの前にインポートされる必要がある。次いで、インポートされる順序に応じてゾーンに番号を振り、ゾーン１は相互作用ボックスを表し、ゾーン２はインポートされる第１のゾーンを表し、ゾーン３はインポートされる第２のゾーンを表し、というように続けて行く。そこで、相互作用すべきでないゾーンの対に対応するスケジュール・エントリをゼロに設定する。次いで、列を主とした順序で残りのエントリに番号を振る、つまり、行ｉ１と列ｊ１における相互作用は、ｊ１＜ｊ２の場合、またはｊ１＝ｊ２で、ｉ１＜ｉ２の場合に、行ｉ２と列ｊ２における相互作用の前に計算される。これにより、すでにインポートされているゾーンの対の間の相互作用の計算は、まだインポートされていないゾーンを伴う相互作用の計算を決して待たなくてよいことになる。
【０２３３】
マルチ・ゾーン法には、多くの実用上の利点がある。第１に、すでに知られている方法に比べて帯域幅要件を低減することが可能である。ゾーンの数を増やすことで、与えられたインポート体積についてさらに多くの近距離相互作用を計算することができるが、それは、１つのゾーン内ではなく、ゾーンとゾーンとの間の相互作用が計算されるからである。ゾーンの数を増やすことで、与えられたインポート体積についてさらに多くのポテンシャル対を考慮することができるが、それは、与えられた粒子を２つよりも多いゾーンからの粒子と突き合わせて検査することが可能だからである。付加的な効果として、マルチ・ゾーン法で追加の丸める機会を顕在化できる点が挙げられる。
【０２３４】
第２に、マルチ・ゾーン法を使用することで、冗長な計算および／または二重計算を回避するために必要なフィルタ処理基準の多くを簡素化するか、あるいはなくすことさえ可能である。例えば、図３に例示されている、２ゾーンＮＴ法では、冗長性フィルタ処理なしで、ｘおよびｙの基準座標が同じである粒子間の相互作用（つまり、ホームボックス３１０とゾーン３２０からなるタワー内の）は２回計算される。しかし、ＮＴ法は、この検査の必要性をなくす形のマルチ・ゾーン法として定式化をやり直すことができる。この再定式化は以下に示されている。
【０２３５】
第３に、さらに多くのゾーンを使用すると、時間的に前の方のゾーン組合せを実行しながら時間的に後の方にスケジューリングされているゾーン組合せについて通信を同時実行する機会を増やすことができ、これにより計算による通信遅延を「隠す」ことが可能になる。例えば、ゾーンは、そのプロセッサからデータをインポートする待ち時間に基づきスケジュールで割り当てることが可能である。次いで、ゾーン−ゾーン相互作用が実行される順序を用い、より遠くにあるゾーンをインポートしながらいくつかの相互作用を時間的に前の方で実行することが可能になる。
【０２３６】
３次元の方法でのこれらの利点を説明するために、４つのゾーンを使用して定式化された元のＮＴ法を考察する。ゾーンは、ホームボックス（Ｈ）３１０、ゾーン３２０の一部を形成する下側タワー（Ｌ）、ゾーン３２０の他の部分を形成する上側タワー（Ｕ）、および外側プレート（Ｐ）３３０として表されている。ゾーン相互作用スケジュールは、図２４に示されている。このスケジュールにより、ホームボックス−タワー相互作用の冗長性がなくなり、特に、ホームボックスは、下側タワーとは相互作用しない。その結果、下側タワーに適用される丸め判定基準は、外側プレートから最も遠い位置にあるコーナーをトリムできる、つまり通信帯域幅を下げることが可能であることを示す。
【０２３７】
下側タワーは、半径Ｒの２つの垂直な円柱の共通部分によりトリムされ、帯域幅に対する影響は、大きなＲについては小さいが、小さなＲについては著しいことに留意されたい。
【０２３８】
さらに、相互作用フィルタ処理は、ホームボックス内の粒子と下側タワー内の粒子との
間の相互作用をフィルタ処理する必要がもはやないため、簡略化される。図２５を参照すると、通信および図２４のスケジュールに対応する通信を実装するためのアルゴリズムが示されており、これにより、力の計算のためＭＰＩスタイルの共同メッセージ受け渡しシステムに適したスケジュールに基づき通信シーケンスが決まる。このアルゴリズムは、粒子インポートと力エクスポートの両方を部分的に重ね合わせている。計算サイクルの始めに（シミュレーションの１時間ステップ）、粒子を特徴付けるデータがホームボックスから、ホームボックスでの計算にそのデータを必要とする他のホームボックスに送られる（ステップ２５０１）。他のホームボックスも、同様に、そのデータを送る動作を開始し、そのホームボックスは、ゾーンＰ、Ｕ、およびＬのデータを受け取る動作を開始する（ステップ２５０２）。他のホームボックスは、ホームボックス内の粒子に加える力を計算すると、計算された力をホームボックスに送る動作を開始し、そのホームボックスは受け取る動作を開始する（ステップ２５０３）。ホームボックスは、すでに、ホームボックス内の粒子に関するデータすべてを持っており、そのため、進行中の通信のどれの完了を待たずにホームボックス−ホームボックス相互作用を実行することが可能である（ステップ２５０４）。ホームボックスがステップ２５０２で開始されたプレート（Ｐ）内の粒子に対するデータを受け取るステップを終了した後（ステップ２５０５）、ホームボックスは、ホームボックス・プレート（Ｈ−Ｐ）相互作用を計算する（ステップ２５０６）。ホームボックスがステップ２５０２で開始された上側タワー（Ｕ）内の粒子に対するデータを受け取るステップを終了した後（ステップ２５０７）、ホームボックスは、ホームボックス−上側タワー（Ｈ−Ｕ）相互作用を計算し（ステップ２５０８）、プレート−上側タワー（Ｐ−Ｕ）相互作用を計算する（ステップ２５０９）。この時点で、ホームボックスは、上側タワー（Ｕ）内の粒子について計算された力をそれぞれのホームボックスに送る動作を開始する（ステップ２５１０）。ホームボックスがステップ２５０２で開始された下側プレート（Ｐ）内の粒子に対するデータを受け取るステップを終了した後（ステップ２５１１）、ホームボックスは、プレート−下側プレート（Ｐ−Ｌ）相互作用を計算する（ステップ２５１２）。この時点で、ホームボックスは、プレートおよび下側タワー内の粒子について計算された力をそれぞれのホームボックスに送る動作を開始する（ステップ２５１３）。最後に、ホームボックスは、他のホームボックスからの粒子について計算された力を受け取る動作を終了する（ステップ２５１４）。
【０２３９】
マルチ・ゾーン・スケジュール・アプローチを使用できる他の方法では、上述のいろいろな種類の相互作用ゾーンのそれぞれを一様なボクセルのコレクションに分解する。ボクセルは、ホームボックスと同じ形状を有していてもよいが、これは必要というわけではない。次いで、ボクセルのどの対が相互作用されるべきかに応じてスケジュールが指定され、より大きな相互作用ゾーン上で定義されたスケジュールと同じ結果が得られ、粒子のいくつかの対が相互作用半径の範囲内にありうるボクセルの対をスケジューリングするだけで適切な丸めが得られるという利点がさらにある。
【０２４０】
６．１  インポート体積の下限
計算する必要のある対毎の相互作用の数を考慮することによりマルチ・ゾーン法のインポート体積（Ｖｉｍｐｏｒｔ）に下限を設けている。この下限は、
【０２４１】
【数３５】
2014170556.tif 000037
【０２４２】
という形式をとる。
上記に関して、Ｎｚｒは、遠隔粒子をインポートするゾーンの数であり、Ｖｈは、ホームボックスの体積である。Ｖｉｒ，ｒｅｍｏｔｅは、ランダムに選択された粒子について他のプロセッサに置かれている相互作用領域の部分の予想される体積である。Ｖｉｒ，ｒｅｍｏｔｅは、Ｒ、Ｖｈ、およびホームボックス・アスペクト比に依存する。下限は、ゾーンの数が増えるか、Ｖｈが増大するか、またはＲが減少するとともに減少する。
【０２４３】
方法のインポート体積に対する限度の条件は、遠隔インポート・ゾーンが体積に関して平衡状態にあれば満たされ、相互作用スケジュールは、すべてのゾーンが他のすべてのゾーンと相互作用するという意味で密であり、方法は、考慮されるすべての対が非冗長遠距離相互作用であるという意味で効率的である。幾何学的には、これは、多くの場合実現可能でなく、特に相互作用半径がホームボックス次元に比較して小さいときには実現可能でない。付録では、上限におけるＶｉｒ，ｒｅｍｏｔｅをホームボックス相互作用近傍の遠隔部分の体積で置き換えることにより有限なホームボックス・サイズ効果を近似することが可能であることが示されている。球体相互作用については、この体積（Ｖｉｒ，ｒｅｍｏｔｅ，ｅｆｆ）は、
【０２４４】
【数３６】
2014170556.tif 000038
【０２４５】
と表すことができる。
上の説明では、正規化されたホームボックス・アスペクト比αｘ＝ｈｘ／Ｖｈ１／３、αｙ＝ｈｙ／Ｖｈ１／３、αｚ＝ｈｚ／Ｖｈ１／３および並列化パラメータａＲ＝Ｒ／Ｖｈ１／３が使用されている。この有効相互作用領域体積は、任意のＮｚｒについて大きなαＲの限界において、また任意のαＲについて限界Ｎｚｒ＝１において正確である。
【０２４６】
６．２  最適化優先度
対称性により、有効長距離相互作用領域の体積は、立方体ホームボックスに関して最小化される（αｘ＝αｙ＝αｚ＝１）。これにより、ホームボックス・アスペクト比とは無関係の緊密度の低い下限が
【０２４７】
【数３７】
2014170556.tif 000039
【０２４８】
のように得られる。
この下限は、立方体ホームボックスが最適であることを示しておらず、単に、ホームボックス・アスペクト比と無関係の下限である。下限にはαＲを伴う３つの項がある。これらの項は、幾何学的に、相互作用近傍の８つのコーナー（３次項）、１２辺（２次項）、および６面（１次項）に由来する。
【０２４９】
図２６を参照すると、３つの項の大きさは、αＲの関数として例示されている。３つの
項の大きさは、コーナーの項の大きさが１．０となるように正規化される。低い並列度限界では、面の項がインポート体積を決め、次いで、辺の項、そしてコーナーの項と続く。この限界において、方法により、相互作用近傍の面を覆うのに必要なインポートの体積を最小にしなければならず、その後、辺のインポートが続く。しかし、並列化パラメータが大きくなると、これらの優先度は変化する。第１の遷移点は、αＲ＞２／π〜０．６４のところで生じる。この遷移の後、優先度は、辺、面、コーナーの順になる。次の遷移は、αＲ＞（９／（２π））１／２〜１．２０のところで生じ、次いで、優先度は、辺、コーナー、面の順になる。最終遷移は、優先度が、コーナー、辺、面の順になったときにαＲ＞２．２５で生じる。
【０２５０】
これらの最適な優先度は、近似的であり、方法を設計する際の指針として使用されることが意図されている。正確なホームボックス・アスペクト比および方法を実行するシステムの詳細に応じて、さまざまな方法の間の正確な遷移点は異なりうる。
【０２５１】
７  一般化分解の適用
この節では、一般化アプローチの特定のインスタンスが提示される。ほとんどの方法は、特定の意味で最適であることが実証されていないが、多くの場合において、これらの方法は、意図された形態に対する帯域幅に関して最適であるか、または最適に非常に近いと考えられる。説明されているほとんどの方法において、適用される必要のある唯一の相互作用フィルタ処理は、相互作用半径および局所的相互作用フィルタ処理である。つまり、フィルタ処理は、一般的には、同じホームボックスから出る粒子の対の場合以外、系内で粒子の対を複数考慮することを避ける必要はない。
【０２５２】
７．１  １／８シェル法
ＨＳ法のインポート領域は、４つのコーナー・インポート部分領域、６つの辺インポート部分領域、および３つ面インポート部分領域からなる。面部分領域は、１つの次元で異なるホームボックス、２つの次元で異なる辺部分領域、および３つの次元すべてで異なるコーナー部分領域を含む。直観的には、１／２シェル法は、低い並列度限界（αＲ＜０．６４）で実現可能な最良のものと思われる。しかし、この場合はそうではない。
【０２５３】
１／８シェル（ＥＳ）法は、図２２に例示されている２次元の方法の３次元への一般化である。ＥＳ法のインポート領域は、ホームボックスＨ２７１０の７つの遠隔ゾーンからなる、つまり、３つの面ゾーン（ＦＸ２７２０と表される＋ｘインポート部分領域、およびｙ（ＦＹは図２２では隠されている）およびｚ、ＦＺ２７２２についても同様）、３つの辺ゾーン（ＥＸ２７３０と表される＋ｙ＋ｚインポート部分領域、ＥＹ２７３１と表される＋ｘ＋ｚ領域、ＥＺ２７３２と表される＋ｘ＋ｙ領域）、および１つのコーナー・ゾーン（Ｃ２７４０と表される＋ｘ＋ｙ＋ｚインポート部分領域）からなる。図２３を参照すると、相互作用スケジュールは、図２２に例示されている領域に対応していることがわかる。１／８シェル法は、漸近的に、インポート領域がホームボックスを囲む完全なシェルの１／８からなるためそのように呼ばれる。
【０２５４】
ＥＳインポート領域は、ＨＳインポートよりも辺３つおよびコーナー３つ分だけ小さい。辺−面相互作用（相互作用９、１１、および１３）は、コーナーを３つ取り除いたホームボックスの相互作用によりＨＳ法で処理される相互作用を覆う。同様に、面−面相互作用（相互作用４、６、および７）は、ホームボックスと３つの取り除かれた辺との間の相互作用により処理された相互作用を覆う。２次元の対応する方法と同様に、この方法も、割り当て規則
（ｉａ←→ｂ，ｊａ←→ｂ，ｋａ←→ｂ）＝（ｍｉｎ（ｉａ，ｉｂ），ｍｉｎ（ｊａ，ｊｂ），ｍｉｎ（ｋａ，ｋｂ））
により記述される。全インポート体積は、
【０２５５】
【数３８】
2014170556.tif 000040
【０２５６】
となる。
この方法は、低い並列度限界では最適な帯域幅法となりうる。また、高い対称性を有し、さまざまなネットワーク・トポロジに関してメリットとなりうる。図２９を参照すると、多くの方法の帯域幅は、１／２シェル（ＨＳ）法２９１０の標準と比較される。１／８シェル２９１４法は、立方体ホームボックスを使用した場合に、いくつかの他の方法および近似的な下限と比較される。１／８シェル法は、面領域、辺領域、およびコーナー領域を最小にするという低並列度最適化優先度に従う。最適化優先度は、異なる幾何学的カテゴリに関するインポート体積に対する寄与分の原点を並列度に応じて示す。例えば、並列度が低い場合、面インポートはインポート領域を支配し、したがって、さらなる最適化を行うため優先的に扱うために好ましい。
【０２５７】
７．２  スライス１／２シェル法
範囲０．６４＜αＲ＜１．２０に対するあるクラスの方法は、最適化優先度によく合う場合がある。図３０を参照すると、スライス１／２シェル（ＳＨＳ）は、スライスされた半球配列の４つのコーナー・インポート部分領域３０１０（単一ゾーンＣ４として表される）と５つの面インポート３０２０（５つのゾーンＮ、Ｓ、Ｅ、Ｗ、Ｌとして表される）からなる。ＳおよびＷ面インポートは、ホームボックス３０３０と相互作用しないのでＮおよびＥ面よりも遠くで丸めることが可能であることに留意されたい。図３０に対応するスケジュールは、図３１に示されている。
【０２５８】
７．３  マルチ・ゾーンＮＴおよびＳＮＴ法
マルチ・ゾーンＮＴ法のスケジュールは、上で説明され、図２４に示されている。図３２を参照すると、図１８に例示されている２ゾーンＳＮＴ法のマルチ・ゾーンは、ホームボックス３２１０の下にある、拡張ベース３２２０からなる。コーム３２３０およびホームボックスと同じ高さのベースの部分３２４０は、４つのインポート領域を形成する。コーム３２５０の残り部分は、残りのインポート領域を形成する。マルチ・ゾーンＳＮＴ法は、図３３に示されている比較的複雑なスケジュールを有する。
【０２５９】
ＮＴ法に関して、ＳＮＴ法のマルチ・ゾーン・バージョンでは、冗長な相互作用がなくなっており、いくつかの追加の丸めの機会に対応できる。マルチ・ゾーンでは、ＳＮＴ法は、さらに、コームのバーの間に間隔がない方法を含むように一般化され、次いで、拡張ベースが消え、＋ｘインポート部分領域は、拡張ベースとしか相互作用しないので不要になる。インポート部分領域の残りの集合は、ちょうどＮＴ法に対応する。ＳＮＴ法でバー間の間隔に加えてホームボックスのアスペクト比を自由に最適化できれば、ＳＮＴ法は、ＮＴ法にすることにより最適化されることがわかる。
【０２６０】
ホームボックスのアスペクト比が固定されている場合に十分に高い並列化パラメータであれば、十分に考えて選択された周期性を持つＳＮＴ法は、ＮＴ法に比べて帯域幅の面で優れている。これは、最適化優先度を考慮することにより理解できる。より高い並列化形態に適しているが、方法は両方とも、コーナー部分領域をインポートしない。さらに、両方とも、辺状の領域を同じ数だけインポートする。しかし、固定されたアスペクト比では、ＮＴ法は、外側タワーと外側プレートとの間の体積のバランスと引き換えに面インポートの数を最適化する。ＳＮＴでは、面インポートの数と引き換えに拡張ベースと部分コー
ムとの間の体積のバランスを最適化する。漸近的に、面インポートは、インポート体積に対する無視できる寄与分であり、固定されたアスペクト比では、ＳＮＴ法で得られるインポート帯域幅はＮＴ法に比べて低い。最適化優先度に基づく、ＮＴ法は、１．２０＜αＲ＜２．２５の並列化形態では最も実現性が高いと予想されるが、ＳＮＴ法は、αＲ＞２．２５を超えたところで実現可能になると予想される。したがって、クロスバーは、図３４に示されているように、立方体ホームボックスに対しαＲ〜２．７のところにある。
【０２６１】
７．４  泡法
泡法は、図１５に例示されている方法の３次元への一般化である。泡法のこのような変更形態は、多くの丸めの機会を有し、頂部がホームボックスの頂部と同じ高さであるホームボックス上のｘおよびｙ方向に中心を置くｓ×ｓ×ｓ次元のホームボックスのレンガをインポートする。ホームボックスは、さらに、ｓ×ｓ×ｓの周期性を持つホームボックスの泡もインポートする。泡の底部は、ホームボックスの底部と同じ高さであり、泡はこのレンガに当てて丸められ、半球構造を形成する。（低並列度限界では、レンガも丸めることが可能であるが、この方法は、その限界については競合しない。）漸近的には、この方法のインポート体積は、
【０２６２】
【数３９】
2014170556.tif 000041
【０２６３】
となる。
インポート体積が最小になるように周期性を最適化すると、
【０２６４】
【数４０】
2014170556.tif 000042
【０２６５】
となる。
したがって、最適な泡法の漸近的インポート体積は、
【０２６６】
【数４１】
2014170556.tif 000043
【０２６７】
となる。
泡法では、２つの遠隔ゾーンを使用する方法に対し正確な下限を漸近的に達成する。実際には、この方法は、並列化パラメータが大きい状況に最もよく適合する。図３４に示されているように、泡は、〜１４を超える並列化パラメータでしか競合しない。これは、プロセッサの個数が増えるとともに、インポート体積に対する泡面と泡コーナーのオーバーヘッドの相対的寄与率が非常にゆっくりとしか下がらないという事実の帰結である。
【０２６８】
泡法の実装は、ホームボックス毎のレベルでゾーン・スケジューリングと結合し、より遠く離れているホームボックスからのインポート待ち時間を「隠す」ことができる。イン
ポートされるホームボックスの数は、泡が実用的である場合に大きいため、ゾーン相互作用スケジュールは、簡単のため省かれる。概念的には、スケジュールの重要な要素は、ホームボックスは泡およびレンガの両方と相互作用するが、泡およびレンガは、互いに相互作用する。
【０２６９】
７．５  通信帯域幅要件の比較
図３４および３５は、並列化パラメータの範囲にわたって上述の多くの方法のインポート体積をまとめたものである。立方体ホームボックスについては、ＥＳ法はαＲ＜０．８の場合にこれらの方法のうちで最もよい。ＮＴ法は、０．８＜αＲ＜２．７の範囲内で最良である。ＳＮＴ法は、２．７＜αＲ＜〜１４の範囲内で最良である。それを超えると、泡法は次第に競合するようになる。これらの遷移は、並列化に使用されるプロセッサの数に関係しうる。例えば、Ｎ＝２５，０００個の原子およびＲ＝１２｛Ａ｝とした分子力学シミュレーションを考える。生体系は、おおよそＤ＝０．１／｛Ａ｝３の原子密度を有する。立方体ホームボックスが使用されており、それぞれの原子は、単一の粒子により表されると仮定すると、並列化パラメータは、これらのパラメータで
【０２７０】
【数４２】
2014170556.tif 000044
【０２７１】
と書くことが可能である。
図３４のグラフは、〜７５個未満のプロセッサを使用した場合に、１／８シェル法により通信帯域幅が最小になることを示している（適度なサイズのクラスタ）。プロセッサ数が〜７５から〜２，８００までの範囲（大規模クラスタ）であれば、ＮＴ法が最良である。２，８００個を超えるプロセッサがある場合（例えば、ＢｌｕｅＧｅｎｅまたはＱＣＤＯＣなどでの超並列ハードウェアの範囲内）、間隔が２のＳＮＴ法で始まる、より巧妙な方法が好ましい。泡法は、極端な５０万プロセッサ・レベルにおいて好ましいものとなり始める。
【０２７２】
さまざまな方法の相対的インポート体積は、ホームボックスのアスペクト比が浮動状態になることが許されていれば、異なる。図３５は、固定グローバル・セル体積およびプロセッサの個数を仮定した場合に、それぞれの方法でホームボックスのアスペクト比を最適化することが許されるときの相対的インポート体積を示している。この場合、１／８シェルは、それでも、αＲ＜〜０．８で最適であり、その後、ＮＴ法、極端な並列化レベルでの泡法と続く。浮動状態のホームボックスのアスペクト比は、完全に相互接続されたネットワークの場合に、超並列度限界において特に重要である。実際、グローバル・セルのアスペクト比は、通常、シミュレートされている現象により固定される。次いで、利用可能なホームボックスの潜在的なアスペクト比の集合は、ネットワーク・トポロジおよび／またはグローバル・セルを分割して複数のプロセッサに分ける方法の数により設定される。しかし、完全相互接続されたネットワークのトポロジは、特定のホームボックス・メッシュに有利な形でバイアスしない。同様に、シミュレーションに多数のプロセッサが利用可能である場合、特に使用されるプロセッサの正確な個数が固定されていない場合に、メッシュを非常に柔軟に分割できる。その結果、そのようなハードウェア上で、方法毎にホームボックスのアスペクト比を最適化することにより通信方式を改善することが可能である。
【０２７３】
７．６  多粒子相互作用
上の説明では、対毎の相互作用を計算するという背景状況において、さまざまなアプローチが説明されている。これらのアプローチは、さらに、２つよりも多い粒子からなる集合の間の相互作用を計算することに適用することが可能である。例えば、分子中の原子間の力は、これらのアプローチを使用して構成される。マルチ・ゾーン・アプローチでは、例えば、ＥＳ法を使用することで、２つよりも多いゾーンの特定の組合せをスケジューリングして、そのような複数の粒子相互作用を構成することができる。
【０２７４】
３つまたはそれ以上の粒子を伴う相互作用に対する中間点法では、粒子を含む最小球体の中心を計算するのは、ｍ≧３のときに計算に関して自明なことではない。この計算を回避するオプションの１つは、中間点の計算を必要としない中間点保証法を使用することである。他のオプションとして、中間点に対し効率的近似を使用する方法がある。２つのこのような近似は、以下の通りである。
１．座標次元のそれぞれについて、中間点の座標を粒子の座標の算術平均として近似する。
２．座標次元のそれぞれについて、中間点の座標を粒子の座標の算術平均として近似する。
【０２７５】
いずれかの近似を使用する場合、インポート領域を少し拡大して、相互作用する粒子の集合の近似的中間点を含むボックスがその集合内のすべての遠隔粒子をインポートするようにする必要がある。粒子の空間分布に対する制限がない場合、近似１を使用するには、インポート領域が相互作用ボックス境界から距離
【０２７６】
【数４３】
2014170556.tif 000045
【０２７７】
内にあるすべての粒子を含む必要があるが、これは、インポート体積の実質的増大を意味する（ｍ−１個の粒子が境界から距離
【０２７８】
【数４４】
2014170556.tif 000046
【０２７９】
のところの相互作用ボックスの内側に集められ、ｍ番目の点が境界から
【０２８０】
【数４５】
2014170556.tif 000047
【０２８１】
のすぐ下の距離のところの相互作用ボックスの外側に配置される場合に、中間点は境界内に入る）。しかし、ふつうの生体分子力場を使用するＭＤシミュレーションでは、インポ
ート体積が少し増えるだけで十分であるが、それは、結合項に関わる粒子の空間的配列は、任意ではなく、例えば、原子の対は通常の条件の下で互いからある最小距離を保たなければならないからである。
【０２８２】
近似２を使用するのに十分なインポート体積は、それぞれの座標軸にそって正および負の方向に相互作用ボックスを超えて距離Ｒ／２だけ伸びる直方体により囲まれている体積である。いくぶん小さな体積で十分であることを示すことができ、これは、それぞれの次元において相互作用ボックスを超えて距離Ｒ／４だけ伸びる直方体内のすべての遠隔粒子およびその直方体から距離Ｒ／４内にあるすべての粒子を含む。３またはそれよりも少ない次元で、ｍ≧３について、このインポート体積は、粒子の空間分布に対する制限がない場合に近似１で必要とされる体積よりも常に小さい。
【０２８３】
８  シリアル化実装
上述のアルゴリズム技術のうちの１つまたは複数を含む、粒子相互作用を計算する１アプローチでは、シリアル化されたソフトウェア実装を使用する。このような実装では、処理ノードは、シリアル化の方法でホームボックスに対する計算を実行する。例えば、それぞれのホームボックスについて、ゾーンのそれぞれの対に含まれる粒子の対の間の相互作用がプロセッサにより計算されるマルチ・ゾーン法が実装される。このようなシリアル化実装の一バージョンでは、単一の処理ノードがシリアル化の方法ですべてのホームボックスに対するすべての計算を実行する。他のバージョンでは、複数の処理ノードの集合のうちの単一の処理ノードが、例えば、空間の１領域（例えば、立方体）を一緒に定義するホームボックスの集合に関わる。処理ノードは、少なくとも一部の共通メモリを共有する多数のプロセッサを備えていてもよい。例えば、１つのノードにある複数のプロセッサのそれぞれが、プライベート・キャッシュ・メモリを備え、全体としてノードのローカルにある共有メモリにアクセスすることができる。例えば、処理ノード間で共有される他のレベルのメモリもありえるが、それは以下の説明には直接的に重要であるわけではない。
【０２８４】
図４５を参照すると、シリアル化された実装の一バージョンにおいて、プロセッサ４５４０は、ローカル・メモリ４５５０を使用している。例えば、ローカル・メモリ４５５０は、プロセッサ４５４０に関連付けられ、データのローカル・コピーをグローバル・メモリ４５６０内に置く、高速なキャッシュ・メモリである。グローバル・メモリ４５６０は、システムによりシミュレートされるグローバル・セル全体に対する粒子データ４５６２を保持する。
【０２８５】
ローカルまたはキャッシュ・メモリの１態様は、典型的にはさらに大きなメモリよりも高速であるが、サイズの面で制限されている。計算反復のある配列では、他の配列に比べて、グローバル・メモリ４５６０へのメモリ・アクセスの回数が比較的増える可能性がある。グローバル・メモリ・アクセスの回数が計算全体に要する総時間を決定する重要な要因である範囲において、反復のそのような配列に要する総計算時間が比較的長くなる可能性がある。
【０２８６】
そのデータが複数回使用されうる場合、ローカル・メモリ４５５０で計算に必要なデータの全部または大半を保持することは速度面で有利である。これにより、データの初期フェッチが比較的遅い場合があるが、データのキャッシュされているコピーを使用できるデータへのその後のアクセスは比較的高速であるという点で、メモリの総待ち時間が短縮される。
【０２８７】
限られたサイズのキャッシュを有効に使用する１方法では、近距離相互作用を「キャッシュ・ブロック」する。「キャッシュ・ブロック」という用語は、行列同士の演算を高速化するために使用されるキャッシュ・ブロック技術のアナロジーとして使用される。大規
模な行列乗算の固有の実装は、行列全体の乗算がキャッシュ・メモリ内に収まりきらないときにメイン・メモリ（帯域幅）との間で転送されるＯ（Ｎ３）のデータを必要とする。一般に、これは、計算が続く間、行列内のエントリが繰り返しフラッシュされ、次いで、キャッシュ内にロードされる結果として生じる。しかし、それぞれの行列を「キャッシュ・ブロック」のコレクションに分けて、適切なスケジュールを決定することにより、キャッシュ・ブロックがロードされ、処理され、格納され、行列同士の乗算は、Ｏ（Ｎ２）の帯域幅を持つように構造化される。
【０２８８】
対毎の相互作用の計算では、最悪の場合、ローカル・メモリの使用、粒子の対の間のすべての相互作用の計算では、複数の粒子のうちの少なくとも１つの微粒子についてグローバル・メモリ４５６０にアクセスする必要がある。例えば、これは、粒子と相互作用する順序がその位置に関して機能しないか、または１／２シェル法などの方法が使用されるが、データの１／２シェル全体に対する粒子データがキャッシュに収まらない場合に生じる。このような最悪の場合の状況では、そのようなグローバル．メモリ・アクセスの回数はＯ（（ＤＶ）（ＤＲ３））＝Ｏ（Ｄ２ＶＲ３）であり、Ｖはシミュレートされる体積であり、Ｄは粒子の密度であり、Ｒは相互作用半径である。つまり、ＤＶは、粒子の総数であり、粒子の相互作用の半径内にある粒子の平均個数は、ＤＲ３に比例する。平均すると、キャッシュ内に入る粒子のすべてのロード・データについて、本質的には単一の対毎の計算のみが実行される。
【０２８９】
対毎の相互作用の計算のキャッシュ・ブロック配列において、グローバル・メモリ・アクセスの回数は、Ｏ（ＤＶ１／２Ｒ３／２Ｎｖ１／２）まで減らすことが可能である。ただし、Ｎｖは、使用される「ボクセル」の個数である。特に、シミュレートされる体積Ｖは、Ｎｖ個のボクセルに分割され、一般に、それぞれ同じ形状をとる。一般に、それぞれのボクセルは、上述の分解アプローチにおいてホームボックスに類似している。
【０２９０】
図４５を参照すると、対毎の相互作用の計算を配列することに対する一般的なアプローチは、インポート領域４５７０およびその関連するホームボックス（つまり、ホームボックスに関連付けられている相互作用ゾーン）に対する粒子データをローカル・メモリ４５５０の相互作用領域データ部分４５５２にロードすることを伴う。インポート領域のサイズは、ボクセルの体積および幾何学的形状に依存しており、相互作用領域内の粒子に関するデータがローカル・メモリ４５５０内に入りきるように選択される。このデータがローカル・メモリ内にロードされた後、相互作用領域内の粒子間の相互作用の対は、必ずしもグローバル・メモリにアクセスすることなく計算される。
【０２９１】
グローバル・メモリへのアクセスを節約することについては、一般的に、それぞれの粒子に対するデータが対毎の計算に使用される回数から理解することができる。２相互作用ゾーンの場合、ローカル・メモリが２Ｍ個（Ｍは等しい体積の相互作用ゾーンのそれぞれから得られる）の粒子の粒子データを保持できる十分な大きさであれば、最大Ｍ２までの相互作用を計算することができる。つまり、キャッシュにロードされる粒子毎に、Ｍ／２回の対毎の計算があり、その結果、素朴な最悪の場合の方法を使用してメモリ・アクセス時間に関してＭ／２倍の高速化が得られる。
【０２９２】
相互作用領域の一種の１例として、２．２節で説明され、図３に例示されているようなＮＴ法が使用される。相互作用領域４５７０は、複数のボクセルに分割される（ボクセル４５６４は、代表的なボクセルとして示されている）。ローカル・メモリ４５５０は、さらに、相互作用すべきボクセルの対を識別するスケジュールも含む。例えば、相互作用領域４５７０のタワー部分に入っているそれぞれのボクセルは、プレート部分内のそれぞれのボクセルと相互作用する。相互作用するボクセルの対毎に、それぞれのボクセルから１つの粒子が取られた、粒子のすべての対を考慮することができる。
【０２９３】
他の実施例では、ホームボックスに関連付けられたインポート領域全体は、ローカル・メモリに必ずしも収まらない。しかし、インポート領域が、複数のゾーンの複数の対がローカル・メモリ内に収まるように複数のゾーンに分割される場合、これらは、データがローカル・メモリ内に残っている間に、マルチ・ゾーン・スケジュールおよび相互作用する粒子のすべての対に応じて、ローカル・メモリ内にロードすることが可能である。他の実施例では、ゾーンの複数の部分集合は、ローカル・メモリ内にロードされ、ロードされたゾーンの対のすべてのスケジューリングされた組合せが相互作用し、その一方で、それらのゾーンに対するデータはローカル・メモリ内に残る。これらの実施例では、一般に、Ｍ／２の高速化も、２Ｍ個の粒子がロードされ、Ｍ２個の相互作用が計算される限り達成される。
【０２９４】
ボクセルの高さの最適な選択を行うために（つまり、断面が正方形のタワーおよび比較的薄いプレート）、インポート領域の体積は、立方体ボクセルの場合と同様に、Ｏ（Ｒ２）ではなく、Ｏ（Ｒ３／２）である。ＮＴ法では、ボクセルの幾何学的形状は、帯域幅が粒子総数×相互作用領域内の粒子の予想される数の平方根に合わせてスケーリングするようにボクセルの高さ（プレートの厚さ）を最適化することにより選択することができる。多くの場合、相互作用領域内に２００〜４００個の粒子が予想されるため、この平方根による低減は有意なものとなる可能性がある。
【０２９５】
ローカル・メモリのさまざまなアーキテクチャを、これらのアプローチとともに使用される。１実施例では、ローカル・メモリは、グローバル・メモリと同じアドレス空間を使用するキャッシュ・メモリであり、キャッシュ・コントローラは、グローバル・メモリからの一番最近にアクセスされたデータのコピーをキャッシュに保持する。他の実施例では、ローカル・メモリがグローバル・メモリと異なるアドレス空間を使用する一様でないメモリ・アーキテクチャを使用することが可能であり、プロセッサは、明示的に、粒子データを必要に応じてグローバル・メモリからローカル・メモリにコピーする。
【０２９６】
このアプローチは、さらに多くのデータ、例えば、ホームボックスのインポート領域全体を保持する第２のレベルのキャッシュから読み込まれる、２つの部分ゾーンを保持するための領域を第１のレベルのキャッシュに取ることができる多重レベル・キャッシュ構造に拡張することが可能である。
【０２９７】
データをローカル・メモリにロードする際に、専用メモリ・コントローラにより補助することが可能である。例えば、データを１つのボクセルからロードするときに、プロセッサの外部のハードウェア（例えば、専用ＦＰＧＡ）を使用して実行される正則な一般的に比較的大きなメモリ構造を使用することができる。
【０２９８】
それぞれのプロセッサがそれ専用のローカル・メモリを備え、すべてのローカル・メモリが共有グローバル・メモリに結合されている多重プロセッサ実装も、使用可能である。次いで、ボクセル対が相互作用するスケジュールは、一様なすべての相互作用が実行されるようにプロセッサ間に分割される。
【０２９９】
相互作用の間に、粒子データは、データが配置されるボクセルに再度割り当てられる（前の反復で計算された力により引き起こされる粒子の運動の結果として）。データのこの分割は、効率のよいＯ（Ｎ）アルゴリズムを使用して実行されるが、ただし、Ｎは、粒子の個数である。分割工程では、１つのボクセルにそって隣接ボクセルのストリップに効率よくアクセスできるようにするデータ構造（アレイ）が構築されるか、または相互作用ゾーンをローカル・メモリにロードするときに直交軸が必要である。
【０３００】
処理されるボクセルの順序は、低減されたメモリ帯域幅に加えて、１つのボクセルに対する相互作用ゾーンのキャッシュ・ブロックにロードされた粒子が、次のボクセルの相互作用ゾーンに対する粒子と実質的に重なり合うように選択される。このため、さらに、ハードウェア・キャッシュの時間的局所性を高めることにより演算が高速化される。
【０３０１】
上で説明されているように、計算は、スケジュール・ベースのループ内でローカル・メモリにロードされた粒子の対の間の相互作用を計算することを伴う。代替えとして、このループ内の相互作用の計算を遅延させ、むしろ、相互作用すべき粒子のインデックスの対のリストを計算する。次いで、このリストは第２のループ内で処理され、相互作用を実際に計算する。この第２のループは、専用ハードウェアを使用することで高速化される。対のリストはすでに計算されているため、そのような専用ハードウェアは、比較的単純なものでよい。
【０３０２】
非可換の（例えば、グリッド−粒子間）相互作用は、複数のプロセッサが同じ出力アレイにコンフリクトを生じることなく書き込むことができるようなゾーンとボクセルの順序付けとなるように編成される。例えば、出力が電荷密度アレイとなる計算では、これにより、プロセッサ１つに１つの電荷アレイを使用する必要性も、これらの部分的電荷アレイを単一の出力アレイにまとめる必要性もなくすことが可能である。
【０３０３】
高い最適化が行われたキャッシュ・ブロッキング法の特定のインスタンスは、上述のＮＴ法の双対（ｄｕａｌ）であり、４つのキャッシュ・ブロック・ゾーンを有する。第１のゾーンは、単一のホームボックス・ボクセルである。次のゾーンは、複数のボクセルからなる「タワー」である。これは、ホームボックス・ボクセル上で始まり、ホームボックス・ボクセル内の最も近い点からＲの範囲内にある少なくとも１つの点を含む軸に揃えられたボクセルの射線にそったすべての非ホームボックス・ボクセルからなる。最後の２つのゾーンは、半径Ｒのおおよそ円形のプレートを形成する。これらの２つのゾーンは、ホームボックス・ボクセルを含むタワーに垂直な平面内でホームボックス・ボクセル内の最も近い点からＲの範囲内にある少なくとも１つの点を含むすべての非ホームボックス・ボクセルからなる。これら２つのゾーンは、「ｙｉｎ」ゾーンと「ｙａｎｇ」ゾーンに均等に分割される。これらは、プレートを最も都合よく分割するとｙｉｎ−ｙａｎｇの記号のように組み合わさる対称的なゾーンが得られるため、このように名付けられている。
【０３０４】
キャッシュ・ブロック・ゾーンは、ホームボックス−ホームボックス、ホームボックス−タワー、ホームボックス−ｙｉｎ、タワー−ｙｉｎ、タワー−ｙａｎｇのように相互作用する。内側ループでは、キャッシュ・ブロックの充填を利用して、これらの相互作用を２つの複合相互作用、ホームボックス−（ホームボックス、タワー、ｙｉｎ）およびタワー−（ｙｉｎ、ｙａｎｇ）にマージする。さらに、ホームボックス−ホームボックス相互作用からの冗長な対が考慮されないように内側ループを設定する。必要な唯一のマッチメーキング基準は、距離のチェックである。
【０３０５】
ゾーンは、インポート領域を符号化するために使用されるボクセル・ストリップが２つのプレート・ゾーンの長さ方向に平行に走るように配向される。その結果、インポート領域を符号化するために必要なストリップ非常に少なくて済む。外側ループは、それぞれの外側ループ・ボクセルに必要なプレートが、前および次の外側ループ・ボクセルに必要なプレートと重なり合い、時間的局所性を改善するようにホームボックス・ボクセルを横断する形に配列される。
【０３０６】
上述のシリアル化された計算は、例えば、それぞれのノードでプロセッサとともにキャッシュ・ブロッキング技術を使用する、並列アーキテクチャと組み合わせることが可能であり、その一方で、異なるノードで計算を並列実行し、計算が完了した後、ノード間で結
果を伝達することができる。
【０３０７】
９  クラスタ・アーキテクチャ
上述のアルゴリズム技術のうちの１つまたは複数を含む、粒子相互作用を計算する他のアプローチでは、クラスタ・アーキテクチャを使用する。このアーキテクチャでは、多数のコンピュータが、通信ネットワーク、例えば、１つまたは複数のＧｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ（登録商標）セグメントにより結合される。それぞれのコンピュータは、例えば、オペレーティング・システム（例えば、Ｌｉｎｕｘ）を実行する汎用コンピュータとすることが可能である。
【０３０８】
１実施例では、クラスタ内のそれぞれのコンピュータは、シミュレーション領域のホームボックスの特定の集合を割り当てられ、例えば、コンピュータを一対一方式でホームボックスに割り当てる。それぞれのコンピュータは、ホームボックスに関連付けられている粒子に対するデータ用の記憶装置を備える。それぞれの反復の開始時に、コンピュータは、例えば、範囲制限のある相互作用を計算するための中間点法を実行するのに十分な、粒子データをやり取りする。他のコンピュータも、このやり取りされたデータを使用して、例えば、第４節で説明されている通信共有アプローチを使用して、実行される。いくつかの計算は、複数のコンピュータにまたがって分散方式により実行される。例えば、ＧＳＥ法の一部であるＦＦＴ計算を、分散方式で実行することが可能である。
【０３０９】
１０  並列実装
上述のアルゴリズム技術のうちの１つまたは複数を含むことができる、粒子相互作用を計算する他のアプローチでは、粒子相互作用を計算するために必要なさまざまな計算に特に適している専用ハードウェアを使用する。専用ハードウェアは、複数の処理ノードを含む並列アーキテクチャで配列され、それぞれの処理ノードは１つのホームボックスに関連付けられている計算を受け持つ。このアーキテクチャでは、ノード間通信が可能である。ノードを一配列は、３次元アレイであり、それぞれのノードは３本の直交軸にそってその６つの隣接要素と直接通信し、粒子データの通信は、複数のノードを通してデータを受け渡し宛先に届くようにすることを伴うことができる。
【０３１０】
図３７を参照すると、計算ノード３７２０の代表的な３次元アレイは、それぞれのノードが対応するホームボックス３７１０の計算を実行するように配列されている。ノードは、直交軸にそって通信経路３７３０によりリンクされ、任意選択で対角通信経路３７３５によりリンクされる。それぞれの処理ノード３７２０は、粒子相互作用に関連付けられている数値計算を実行する、プロセッサ３７２０、およびノードをその隣接ノードにリンクする通信リンク３７３０、３７３５上で粒子データを送り、受け取る役割を受け持つ、通信インターフェイス３７５０を備える。
【０３１１】
ハードウェア実装の詳細を説明する前に、ハードウェアにより実行される計算は、図３８を参照することで理解することが可能である。この計算は、シミュレーションのそれぞれの時間ステップで実行されるループを伴い、それぞれの時間ステップは１または２フェムト秒（ｆｓと略記する、１０−１５秒に等しい）などのシミュレート時間を表す。一般に、それぞれの反復は、３つの基本ステップを伴う。速度積分３８１０では、それぞれの粒子に対する計算された力を使用して、その粒子の速度を更新する。位置積分３８２０は、更新された速度を使用して、粒子の更新された位置を計算する。力計算３８３０では、粒子の新しい位置を使用して、粒子に対する力を計算し、それにより反復を繰り返させることができる。
【０３１２】
力計算は、異なる空間スケールの計算を伴う。これらの計算は、独立に実行される。これらの計算は、結合力計算３８３２、ミッドレンジ力計算３８３４、および遠隔力計算３
８３６を含む。これらの計算のそれぞれの一部として、力累算３８３８で、それぞれの粒子に対する力の合計を決定し、特定の粒子に対する力は潜在的に空間スケールのそれぞれにおける計算により決定される成分を含む。それぞれの時間ステップで空間スケールのそれぞれにおいて力計算を実行する必要はない。遠隔力計算は、結合力計算に比べてそれほど頻繁には実行されないミッドレンジ計算に比べてそれほど頻繁には実行されないが、例えば、ＭＴＳ（Ｍｕｌｔｉｐｌｅ  Ｔｉｍｅ  Ｓｃａｌｅ）および／またはＲＥＳＰＡ（ＲＥｆｅｒｅｎｃｅ  Ｓｙｓｔｅｍ  Ｐｒｏｐａｇａｔｏｒ  Ａｌｇｏｒｉｔｈｍ）アプローチを使用する。
【０３１３】
並列実装の他の態様は、異なるハードウェア要素をさまざまな種類または空間的スケールの計算専用とすることを伴う。例えば、ハードウェア要素は、ミッドレンジ計算ステップ３８３４の一部である対毎の粒子相互作用を伴う計算（または遠隔力計算３８３６の一部をなす粒子−グリッド計算）、および結合力計算３８３２の一部であるような近距離相互作用の計算専用に割り当てられる。それに加えて、力累算ステップ３８３８は、数値累算機能を組み込んだメモリ・システムを使用する。上で導入された多重ノード・アーキテクチャでは、それぞれのノードは、さまざまな種類の計算用のそのような専用ハードウェア要素を備える。
【０３１４】
図３９を参照すると、それぞれの計算ノード３７２０は、多数の計算および通信要素を備えている。柔軟なサブシステム３９１２は、１つまたは複数のプログラム可能なプロセッサを備える。ミッドレンジ・システム３９１４は、例えば、粒子の対の間の対毎の計算を実行するように適合された専用回路を備える。ＦＦＴ（高速フーリエ変換）サブシステム３９２４は、遠隔力計算に関係する計算を実行するためにいくつかの実施形態において使用される。さらに他の実施形態は、追加の、またはより少ない専用もしくは汎用計算要素を備えることが可能である。
【０３１５】
１つの処理ノード内の通信では、通信リンク３９２２により結合された多数のリング・ステーション３９２０を備えるリング通信アーキテクチャを使用する。システムのこのバージョンでは、ノード１つにつき８つのリング・ステーションがあり、リンクは、高速シリアル通信リンクである。それぞれのリング・ステーションは追加のリンクを有する。例えば、リンク３９２４は、リング・ステーションをノードの計算要素に結合する。他のリンク３７３０は、このノード用のリング・ステーションをプロセッサのトロイダル・メッシュの６つの隣接処理ノード３７２０のリング・ステーション３９３０に結合する。他のリンクは、リング・ステーションを、メモリ３９５４にアクセスするためのメモリ・コントローラ３９５０、および例えば、計算要素上で実行すべきロード・プログラムなどの管理機能に使用されるホスト・インターフェイス３９４０に結合する。
【０３１６】
それぞれのノード上の相互接続された通信リングで構成される通信アーキテクチャは、大域的アドレス指定アプローチをサポートしており、これにより、リング・ステーションに結合されたそれぞれの計算または通信要素は、システム内の他の要素をデータ・パケットのアドレス指定先とすることが可能であり、またこれらの要素は、同じノード上にあってもよいし、他のノード上にあってもよい。さらに、以下で詳しく説明するように、通信アーキテクチャは、送信元から送られてきたデータ・パケットを、必ずしもシステム内のすべてのノードにパケットをブロードキャストすることも、送信元ノードからデータ・パケットの複数のコピーを送信することも行わずに、複数の送信先に分配することができるいくつかの形態の制限付きマルチキャストをサポートする。
【０３１７】
一般に、図３９に例示されているノード・アーキテクチャを使用した図３８の流れ図に例示されている反復の実行は、複数のノードへのタスクの分割、およびそれぞれのノードの複数の計算要素への処理ステップの分割を伴う。さらに、サブシステムのそれぞれは、
内部的な並列を利用する。全体として、この実装は、計算の並列処理およびパイプライン化をアーキテクチャの複数のレベルで実現する。
【０３１８】
図４０を参照すると、２つのノードに対する計算要素が例示されており、計算反復における要素間のデータ・フローの一部が示されている。ノード内、およびノード間の通信リンクは、例示されていない。例示されているデータ・フローは、速度および位置の積分ステップ（図３８の３８１０、３８２０）とともにミッドレンジ力計算３８３４の実行に関係する。例えば、遠隔力および結合力に関係する他のデータ・フローは、この図に例示されていない。
【０３１９】
一般に、反復時間ステップの一時点において、それぞれのノード上の柔軟なサブシステム３９１２は、それ専用のメモリ３９５４からそれが受け持つ粒子に対する粒子力データを取り出す。力データを使用することで、新しい粒子位置を決定するために必要な積分ステップを実行する。この粒子位置データは、メモリ３９５４に返す必要はない。むしろ、それぞれの柔軟なサブシステム３９１２が、その位置データをマルチキャストし、この位置データは、それらのミッドレンジ・システム３９１４に渡され、ミッドレンジ・システムはそのデータを使用し、例えば、上述のＮＴ法を使って、対毎の粒子相互作用を計算する。特に、マルチキャスト・アプローチでは、それぞれのノードのミッドレンジ・サブシステムが、使用される分解アプローチに必要なインポート領域全体に対する粒子データを受け取ることが保証される。さらに、データは、必ずしもデータに対する要求または確認応答なしで、データの消費者に「プッシュ」されるため、そのような通信に関連する通信負荷および遅延が低減される。
【０３２０】
パイプライン化方式では、ミッドレンジ・サブシステム３９１４は、必要な粒子データを受け取ると、対毎の相互作用の計算を開始する。例えば、１つのノードのミッドレンジ・サブシステム３９１４は、ノード上通信経路上で比較的迅速にそのノードのホームボックス内の粒子に対する粒子位置データを受け取り、次いで、隣接ノードから位置データを受け取ることを開始する。
【０３２１】
ミッドレンジ・システム３９１４が、粒子に対する力の寄与を計算するときに、それらの寄与項をそれらの粒子を受け持つノードのメモリ３９５４に分配する。メモリは、それぞれの粒子に対する力の寄与分の総和を、その粒子に対する力の寄与分がさまざまなノードから届くときにメモリ側で計算できる累算機能を備える。メモリの累算機能を使用すると、異なるプロセッサが、総和（例えば、力）の成分を計算し、それをメモリに送り、そこで成分の累計が実行されるようにすることが可能である。成分の伝達には、メモリから、それらの成分を出力したプロセッサへの確認応答を必要としないため、効率的な累算が実現される。メモリは、順序に依存しないように、総和されるべき成分がメモリに届く順序に関係なく同一の結果が得られるように累算を実装する。
【０３２２】
図４０には、距離力計算の類似のパイプライン化並列手順が図４０には例示されていないが、これは、ノード間のデータの複数のやり取りを使用する高速フーリエ変換（ＦＦＴ）技術を利用するグリッド・ベースの計算を伴い、またいくつかの実施形態では、ＦＦＴ計算を実装するために専用ＦＦＴサブシステム３９１６を利用する。
【０３２３】
再び図３９を参照すると、通信システムは、同じまたは異なるノード上の要素の間のパケット・ベースのメッセージ交換をサポートしている。パケットは、演算を指定するパケット・ヘッダおよび演算数（例えば、書き込みへの値）を格納するパケット本体を持つ読み出し、書き込み、累算、および読み出し−修正−書き込みを含む演算を表すことが可能である。大域的アドレス空間は、ノード内のレジスタ、メモリ・ロケーションなどに使用され、４８ビット・アドレス空間はノード番号用に１６ビットを予約し、それぞれのノー
ドの４Ｇのアドレス・ロケーション（例えば、バイト）に残り３２ビットを予約する。ノードの異なるアドレス範囲は、リング・ステーション内に格納されている経路選択情報に基づいてノード上の異なるリング・ステーションにマッピングされ、それぞれのリング・ステーションでは、異なるアドレス範囲が、リング・ステーションに結合された異なるサブシステムにマッピングされる。パケットは可変長であり、１ユニット（つまり、ヘッドのみ）から９ユニット（ヘッダと８ユニットのデータ）までの長さを持ち、それぞれのユニットは、例えば、２５６ビットである。
【０３２４】
それぞれのリング・ステーションは、経路選択に関してプログラム可能であり、シミュレーション反復が開始される前に特定の経路選択パターンについて構成される。それぞれのリング・ステーションは、処理が開始する前にロードされる構成テーブルを備える。いくつかの実施例では、このテーブルにより、それぞれの着信データ・パケットに適用される生成規則の集合が指定される。一般に、それぞれのリング・ステーション内のテーブルでは、そのリング・ステーションに届いたパケットをどのように処理すべきかを指定する。入ってくるそれぞれのパケットは、送信元または送信先アドレスに基づいて、また適宜、パケットの種類に基づいて、テーブルに従って他のポート（データを他のノードの送出することができる、または同じノード上のモジュールへの途中にある）の１つ（または複数）に受け渡される。構成テーブルでは、さらに、転送される前にデータに対し実行すべきアドレス変換機能を指定することも可能である。この実施形態におけるすべてのリング・ステーションは、リング上での通信用の２つのポート、例えば、他のノードにあるリング・ステーションに接続するため、またはそのノードの計算要素に接続するための２つのクライアント・ポートを備える。
【０３２５】
典型的には、クライアントからクライアントへ送られるメッセージは、確認応答が行われない。しかし、ある種の通信では、確認応答は、送信先要素によって生成され、同期を目的として使用されうる。この実施形態では、通信エラーがあった場合に例えば再送によりエラー訂正を実行しない。むしろ、計算は、すでにチェックポイントを通っている時間ステップから再開される。チェックポイントは、定期的に、例えば、実時間の約１秒から１分までの範囲の期間で、生成される。
【０３２６】
マルチキャスト・メカニズムを使用した場合、さまざまな種類のデータをデータの種類に応じてノードに分配する。例えば、粒子データのインポート領域に応じて、１つのプロセッサから粒子データのコピーを必要とするプロセッサは、インポート領域の幾何学的形状により決定される。通信システムのリング・ステーションは、粒子データの送信元プロセッサが、粒子データを通らなければならない、またはデータのコピーが作成されるべき通信相互接続を監視していなくても済むように構成される。むしろ、送信元プロセッサは、タグとして、データの種類に対応するグループｉｄをデータに付加し、通信システムは、そのデータを、通信システムの構成に応じてデータをインポートする必要のあるすべてのプロセッサに分配する。
【０３２７】
例えば、上述のＮＴ法の実装において、位置データを分配するためのマルチキャスト・メカニズムが実現される。マルチキャストは、マルチキャスト・グループｉｄと呼ばれる、それぞれ異なるクラスのマルチキャスト通信に対応する、限られた範囲の送信先アドレスを使用して実装される。パケットのヘッダ内の他の場所にあるフラグは、メッセージが、ユニキャスト・パケットではなく、マルチキャスト・パケットであることを示している。マルチキャスト・パケットがリング・ステーションで受信されると、マルチキャスト・グループｉｄおよび送信元ノード・アドレスは、ヘッダ内にあるが、調べられ、それらの値および受け取り側ノードのアドレスに基づいて、パケットが複製され、リング・ステーションの経路選択テーブルに従ってリング・ステーションの１つまたは複数の出力ポート上で送られるようにすることが可能である。したがって、異なるマルチキャスト・グルー
プｉｄ毎に異なるパターンのマルチキャストを構成することができる。確認応答は不要であることに留意されたい。マルチキャスト・パターンの構成は、リング・ステーション間に分配され、それぞれ経路選択パターン全体のうちの限られた部分しか見えない。
【０３２８】
それぞれのクライアント・モジュール（例えば、計算サブシステム）の内部では、インターフェイス・ハードウェアが、リング・ステーションからの「書き込み」を監視し、事前に指定された書き込みに基づいて、例えば、生成された信号のポーリングの結果として、クライアント内で適切な計算を開始することができる信号（例えば、フラグ、イベント・コード）を生成する。
【０３２９】
トロイダル・メッシュ相互接続ネットワークに加えて、システムは、適宜、異なるパターンの通信用の他の相互接続トポロジをさらに備えることが可能である。例えば、システムの温度または圧力などのいくつかの大域的量は、計算の必要がある場合がある。大域的通信パターンも、ノードを同期させるために必要になることがある。追加のトポロジのオプションとしては、低遅延性であるが、必ずしも高帯域でないツリー構造がある。本発明の実装では、経路選択プロトコルは、メッシュ相互接続の上に層として配置され、異なる通信パターンに対する必要な種類の仮想トポロジを形成する。
【０３３０】
１つのノードのところのそれぞれのサブシステムは、一般に、メモリ３９５４から分離された、それ専用の内部メモリを備える。メモリ・コントローラ３９５０は、多くのシミュレーション・シナリオに関して、ノードにより処理されるすべての粒子に対するデータを保持できる十分な大きさのキャッシュ（例えば、高速なスタティックＲＡＭを使用する）を備える。メモリ３９５４は、さらに大容量の記憶空間を備え、これは、ＤＲＡＭであってもよく、それぞれのノードがさらに多くの粒子を受け持つさらに大きな問題に使用することができる。ＳＲＡＭキャッシュとＤＲＡＭとの間のデータのやり取りは、バッファリング構成をとることで調整され、一方のバッファ内にあるデータは、ＳＲＡＭの他のバッファ内にあるデータが計算に使用されているときに転送される。
【０３３１】
シミュレートされるシステムの多く（例えば、おおよそ１２８｛Ａ｝立方以下の寸法のシステム）に関して、メモリ・コントローラ３９５０により管理されるメモリ３９５４は、必ずしも使用されないことが予想される。これらの場合、メモリ・コントローラの主な目的は、力データを累算することである。メモリ・コントローラのキャッシュは、ミッドレンジ・サブシステム内のミッドレンジまたは長距離相互作用により生成される力データおよび柔軟なサブシステムにより生成される結合項および補正の高帯域幅累算用に設計されている。特定のノードのメモリ・サブシステムは、そのノードの所有する粒子に対する力データを累算することを受け持つ。
【０３３２】
大規模システムでは、メモリ３９５４は、それぞれのノードで１から２ＧＢのＤＲＡＭを含む。このＤＲＡＭを使用するモードでは、システムは、分割することができ、システムは部分分割され−それぞれのボックスは部分ボックスに分割され−上述のアルゴリズムは、部分ボックス毎に実装され、必要な部分ボックスは必要に応じてＤＲＡＭから引き出されメモリ・コントローラ・キャッシュに送られる。また、このような部分ボックス・モードは、実際には、データがメモリ・コントローラ・キャッシュの容量を超える前に、より小さなシステム上で使用することができ、またこれにより性能上有利になる場合もあることに留意されたい。
【０３３３】
上で説明され、図３９に示されているサブシステムは、力場の評価で連携し、そのパラメータは、シミュレーション実行の開始時に指定される。シミュレーションの開始時に、力場のパラメータは、システム−関わる粒子（例えば、原子）、その接続性（例えば、共有結合）、空間内のその位置、および現在の速度−の記述とともに、よく知られており、
システムのノード間に適宜分割される。特に、粒子データ（位置および速度）は、粒子のホームボックスの柔軟なサブシステム内にある。それに加えて、それぞれの結合項は、その計算を受け持つ「所有者」ノードを有する。
【０３３４】
柔軟なサブシステム３９１２は、それぞれのシミュレーション時間ステップの「コレオグラファー」である。残りのサブシステムの大半は、力場の計算を受け持つが、柔軟なサブシステムは、力による加速度を計算し、時間ステップから時間ステップまで漸次速度および位置を増分する積分アルゴリズムを実装する。特定の種類のシミュレーションについて実装されている積分器は、ただ単純なだけではない積分を必要とすることがある。例えば、一定温度のシミュレーションを実装する−一般に、シミュレーション全体を通して温度の定期的計算を必要とする。これは、次いで、速度データから運動エネルギーを計算し、このデータから大域的スカラーである温度を合成する必要がある。このような特定の計算、および同様の他の計算（例えば、圧力制御）は、これらの特定のタスクのため柔軟なサブシステムをプログラムすることにより実装され、この特定の実施例では、すべてのノードの柔軟なサブシステムは、連携して、大域的な簡約の計算を実行し、この大域的スカラーを計算しなければならない。
【０３３５】
全体的な計算時間ステップ、または柔軟なサブシステムのアーキテクチャについて詳細な説明を続ける前に、ミッドレンジ・サブシステム３９１４の機能および実装を考えることは有益である。
【０３３６】
ミッドレンジ・サブシステム３９１４は、かなり広い範囲のアルゴリズムおよび分解をサポートするＮＴ法の一般的実装と考えられる。サブシステムは、指定されたカットオフ半径内に局所的にある、粒子であろうと、グリッド点であろうと、点物体間のすべての対毎の相互作用を効率よく計算するように設計されている。その主なタスクは、完全な対毎の総和を通してミッドレンジ非結合相互作用を計算することである。また、電荷拡散および力補間のため、遠隔力計算の実空間成分においても使用される
図４１を参照し、単一の粒子−粒子相互作用モジュール（ＰＰＩＭ）４１００を考えることにより、ミッドレンジ・サブシステムの動作を理解することができる。一般に、粒子間の相互作用を計算するため、反復毎に、反復の始めに、粒子の１つの集合に対する粒子データを最初にＰＰＩＭ内のメモリにロードする。次いで、他の集合内の粒子はＰＰＩＭを超えてストリーミングされ、ストリーミングされる粒子に力の寄与分をもたらす。反復の終わりに、ＰＰＩＭに入っていた粒子に対する力の寄与分がストリーミング出力される。
【０３３７】
ＰＰＩＭにより実行される計算のいくつかの実施例では、ＰＰＩＭは３つのフェーズで動作する。第１のフェーズ（図の中で丸で囲んだ番号１により示される）では、ＮＴ法の「タワー」領域内の粒子などの点の第１の集合に対するデータは、入力４１１０を介して受信され、ＰＰＩＭのメモリ４１３０内に格納される。第２のフェーズでは、ＮＴ法の「プレート」領域内の粒子などの点の第２の集合に対するデータは、入力４１１０を介して受信され、計算要素４１４０に渡される。受け取った粒子毎に、計算要素は、第１のフェーズでロードされた、格納されているすべての粒子から粒子に加わる力全体（または対毎の計算量の他の累算）を計算する。この累算された力は、出力４１２２に渡される。この第２のフェーズでは、入力４１１０で受け取ったそれぞれの粒子について出力４１２２上に１回の力の送信があり、順序付けは温存される。第２のフェーズでは、メモリ４１３０内に格納されている粒子に対する力も、累算される。第３のフェーズでは、これらの力は、出力４１２２上で送られ、第１のフェーズにおいて入力４１１０で受け取ったそれぞれの粒子について１つの力が送られる。
【０３３８】
ＰＰＩＭは、多数の、例えば、３つの異なる計算用に記憶域を備える。このようにして
、異なる計算は、データをリロードすることなく、ＰＰＩＭにより実行可能であり、例えば、第２の計算の第１のフェーズ（データ・ロード）フェーズを第１の計算の第３のフェーズ（結果アンロード）フェーズにおいて実行される。
【０３３９】
図４２を参照すると、ミッドレンジ・サブシステムは、図４１に例示されているＰＰＩＭ  ４１００を複製することにより一定の並列度を実現しており、それぞれのＰＰＩＭが必要な一群の計算の一部のみを実行する。一般に、第１のフェーズでは、それぞれのＰＰＩＭは、粒子データの第１の集合の一部のみを受け取り、第２のフェーズでは、第２の集合内のすべてのデータを受け取る。次いで、すべてのＰＰＩＭの出力をマージし、逐次動作する単一のＰＰＩＭの場合に得られたのと同じ結果を得るようにする。
【０３４０】
ミッドレンジ・サブシステムは、アレイＰＰＩＭ  ４１００とともに、アレイの入力４２３０および出力４２３５上にメモリを備える。ＰＰＩＭは、複数の行に配列され、それぞれの行に複数のＰＰＩＭが入っている。本発明の実装では、それぞれの行に８つのＰＰＩＭがあり、４つの行があるが、他の配列も使用可能である。
【０３４１】
ＰＰＩＭの第１の１つの行を考えて、それぞれのＰＰＩＭは入力４１１０（図４１を参照）上でデータを修正することなく出力４１１２に渡し、計算の第２のフェーズで、１行の中のそれぞれのＰＰＩＭが粒子の同じ集合に対するデータを受け取るようにする。第１のフェーズで、第１の集合内の粒子に対するデータは、さらに、ＰＰＩＭからＰＰＩＭに渡されるが、それぞれのＰＰＩＭは、データの別の部分のみを格納する。第２のフェーズで、それぞれのＰＰＩＭの出力４１２２は、入力４１１０で入力されたそれぞれの粒子に対する１つの累算された力を含む。それぞれのＰＰＩＭ（最初の後、一番左）、ＰＰＩＭは、入力４２２０でそれぞれの粒子に対する部分的に累算された力を受け取り、その粒子に対する入力の寄与分を計算要素により計算される寄与分とともに内部的に総和し、これにより出力４１２２は再び入力４１１０上で粒子毎に１つの力を有する。したがって、ＰＰＩＭのそれぞれの行は、単一のＰＰＩＭとして機能するが、さらに多くの計算を並列に実行し、したがって、より高いスループットが得られる。
【０３４２】
第３のフェーズでは、それぞれのＰＰＩＭは、そのＰＰＩＭにロードされた第１の集合内のそれぞれの点に対する累算された力をストリーミング出力し、行内の「下流」ＰＰＩＭは修正なしでその力データを受け渡し、その行で生成された全体的な順序は第１のフェーズでＰＰＩＭ行に粒子がロードされた順序と一致する。
【０３４３】
ＰＰＩＭの複数の行を考えた場合、粒子の第１の集合に対するデータは、それぞれの行が第１の集合の別の部分を有するように読み込み時に分割される。データは、分配ユニット４２１０の集合に通され、この分割が行われる。その結果、それぞれのＰＰＩＭがメモリ４１３０内に点の第１の集合の異なる部分を保持することになり、それらのＰＰＩＭはすべての点を一緒に保持する。
【０３４４】
第２のフェーズで、分配ユニット４２１０は、粒子の同じシーケンスがＰＰＩＭのそれぞれの行に送られ、したがってその行内のそれぞれのＰＰＩＭにも送られるように、粒子データを複製する。この結果、ＰＰＩＭのそれぞれの行は、第２の集合内のそれぞれの粒子に対する力を生成し、これらの力は、それらの行にわたって累算されなければならない。この累算は、累算ユニット４２２０により実行される。
【０３４５】
第３のフェーズで、累算ユニット４２２０は、第１の集合内の粒子に対する力データを連接し、これにより、最後の累算ユニット４２２０の出力において、第１の集合内の粒子に対する力は、第１のフェーズで粒子データがアレイに渡されたとの同じ順序で出る。
【０３４６】
ミッドレンジ・サブシステムは、フロントエンド・メモリ４３２０を備え、これは、柔軟なサブシステムからマルチキャストされた粒子データを受け取っている。コントローラ（図に示されていない）は、このメモリへの書き込みを監視し、必要なデータが利用可能になったときにアレイへのデータの受け渡しを調整する。サブシステムは、計算された力（または他のデータ）を提示するために使用される、バックエンド・メモリ４２３５を備える。このデータは、処理の完了を待つことなく、メモリ・サブシステムに送られ、これにより一部の力はメモリに送られ、他の力はまだ計算されていないことに留意されたい。
【０３４７】
図４３を参照すると、それぞれのＰＰＩＭは、他のレベルの並列性を実装している。それぞれのＰＰＩＭは、複数のマッチメーキング・ユニット（ＭＵ）４３５０を含む。本発明の実装では、それぞれのＰＰＩＭは、８つのＭＵを備える。上でメモリ４１３０に格納されていると説明されている（図４１を参照）、第１のフェーズでＰＰＩＭに分配された粒子データは、実際には、ＭＵ内のメモリ４３３２に分配される。つまり、第１の集合内の粒子は、ＭＵ間に分割される。第２のフェーズでは、ＰＰＩＭが受け取ったすべての粒子は、それぞれのマッチメーキング・ユニットを流れ過ぎ去る。第２の集合内の受け取ったそれぞれの粒子について、ＭＵの計算要素４３４２は、主に粒子間の距離に基づき（ただし排他的ではなく）、相互作用が計算される場合にどの点がそのＭＵのメモリ４３３２内に格納されているかを判定する。計算要素４３４２は、コンセントレータ４３６０に選択された対を渡すが、計算要素はそのような選択された対をＭＵのそれぞれから受け取り、本質的に、選択された対を逐次的に粒子−粒子相互作用パイプライン（ＰＰＩＰ）４３４４に受け渡すアービトレータとして機能する。次いで、ＰＰＩＰは、他の粒子、または対からのポテンシャル・エネルギーの寄与によりそれぞれの粒子に加わる力を計算する。ＰＰＩＰは、識別および粒子間距離に基づき、表引きおよび補間により計算される粒子のかなり一般的な関数を計算するように構成されうる。例えば、ＰＰＩＰは、多数の異なる関数形式をサポートするように実装または事前構成され、ＰＰＩＰにロードされるデータによりその関数形式内の特定の関数が決定される。ＰＰＩＰは、格納されている粒子のうちの異なる粒子について第２の集合内のそれぞれの粒子に対する力を累算し、累算された力を出力４１２２に渡し、その一方で、格納されている粒子に加えられる力をメモリ４３３４に格納する。第３のフェーズでは、メモリ４３３４に格納されているこれらの力は、出力４１２２にストリーミング出力される。
【０３４８】
ＰＰＩＰのいくつかの実装では、ＰＰＩＰにより計算することが可能な関数は、区分的解析関数として表される。つまり、引数値の範囲の集合のそれぞれの中で、引数の関数を決定するためにパラメータ付き解析関数が使用される。データ構造体に、引数値の対応する異なる範囲に対する解析関数のパラメータを格納する。引数値の範囲の異なるサイズが解析関数の異なるパラメータに対応しうるように、可変精度アプローチが使用され、例えば、引数値のある範囲の方が、他の範囲よりも、高い精度または正確さが得られる。係数の選択は、２つの段階に分けて実行される。第１に、引数範囲は、Ｎ個の粗範囲に分けられ、それぞれ異なるサイズを取ることができる。それぞれの粗範囲は、同じ数ｎ個の部分範囲に分けられ、それぞれの粗範囲内で、部分範囲は同じサイズを持つ。特定の入力引数について、まず最初に、粗範囲が決定され、次いで、解析関数の適切なパラメータを調べるためにその粗範囲内の部分範囲が決定される。したがって、係数の集合はＮ×ｎ個ある。使用可能な係数の集合が限定された個数だけあるとすると、理想関数に対する関数の正確さは、引数範囲に従って選択されうる。  このような理想関数の１実施例は、ｅｒｃｆ（１／Ｒ）であり、解析関数の１実施例は、２次関数である。
【０３４９】
ミッドレンジ・サブシステムのＰＰＩＭアレイは、さらに、本明細書の前の方で説明されているＧＳＥ法の電荷拡散および力補間計算にも使用されている。電荷拡散および力補間の両方について（遠隔計算の最初の１／３部分と最後の１／３部分）、第１のフェーズにおいて、粒子がＰＰＩＭに分配され、第２のフェーズにおいて、グリッド位置がＰＰＩ
Ｍを超えてストリーミングされる。隣接するノードのホームボックスに対するグリッド位置がストリーミングされるだけでなく、現在のノードのホームボックスのグリッド位置もストリーミングされることに留意されたい。ＮＴ方を使用するこの計算では、粒子相互作用に対する順序付けがあり、２つの等しいが向きが反対の力は一度に計算されないため、「フルプレート」が必要であることに留意されたい。電荷拡散では、データが、第３のフェーズでＰＰＩＭにより累算されること、ストリーミング出力されることを必要としないが、力の補間では、ＰＰＩＭは、第２のフェーズにおいて、出力を行う必要はなく、補間された力は第２のフェーズで累算され、第３のフェーズでＰＰＩＭからストリーミング出力される。
【０３５０】
柔軟なサブシステム３９１２は、さらに、サブシステム内に並列性を実装する。図４４を参照すると、計算要素４４１０のグループは、比較的独立して並列に機能する。それぞれの粒子がシステム内の特定のノードに割り当てられるだけでなく（つまり、粒子を保持しているホームボックスに関連付けられたノード）、それぞれの粒子がそのノードの柔軟なサブシステム内の特定のグループ４４１０に割り当てられる。本発明の実装では、計算要素４４１０のグループは４つある。
【０３５１】
それぞれのグループ４４１０は、プロセッサ４４１４を備える。それぞれのプロセッサは、通信リング上でアクセスされるメモリ・システムが裏で働いているデータおよび命令キャッシュ（３２ＫＢ）４４１２を備える。多くのアプリケーションにおいて、キャッシュ４４１２は、反復に必要なすべてのデータを保持することができる十分な大きさである。それぞれのプロセッサは、データをメモリから通信リング上でプロセッサ４４１４によりアクセス可能なメモリ４４１６に転送するための直接メモリ・アクセス（ＤＭＡ）機能を含む機能を実装する、リモート・アクセス・ユニット（ＲＡＵ）４４１８を備える。プロセッサが受け持つ粒子データは、メモリ４４１６内に保持され、ＲＡＵ  ４４１８は、プロセッサ４４１４にロードすることなくＤＭＡアプローチを使用してメモリ・サブシステムからそれらの粒子に対する力データを取り出す。ＲＡＵは、通信インターフェイスを通じてリング・ステーションに結合されており、出力を集めて、柔軟なサブシステムへの入力を適切な要素に分配する（例えば、受信されたパケットのアドレスに基づく）。
【０３５２】
それぞれのプロセッサは、以下で「ジオメトリ・コア」（ＧＣ）と呼ぶ多数のスレーブ専用コプロセッサ４４２０を備える。本発明の実装では、２つのＧＣがプロセッサ毎にある。それぞれのＧＣは、４方向ＳＩＭＤアーキテクチャのＤｕａｌ  Ｉｓｓｕｅ  ＶＬＩＷパイプライン化ＡＬＵを備え、内（「ドット」）積の計算を含む「幾何学的」プリミティブを含む。それぞれのＧＣは、レジスタがインターリーブ方式でｎ個のベクトル・レジスタとして、または４ｎ個のスカラー・レジスタとしてアドレス指定可能なベクトル／スカラー・レジスタ・アーキテクチャを使用しており、スカラーの結果は、後の計算に必要な場合のためにレジスタの一部に直接入れることができる。ＧＣ用にプロセッサから供給される受け入れキューがあり、ＧＣからの出力は、プロセッサによる処理がなくてもメモリ・システムにフィードバックすることが可能である。
【０３５３】
ＧＣは、結合力項を計算するために使用される。それぞれの結合は、特定のＧＣに割り当てられ、プロセッサは粒子位置データをやり取りし、それぞれのプロセッサは、ＧＣに結合力寄与分の計算をさせるために必要とされるデータを持つ。結合力の寄与分を計算するプロセッサは、その結合された対の粒子のどれをも受け持たなくてもよいことに留意されたい。通信要件を緩和できる最適化として、周期的に（例えば、２０００時間ステップ毎に）、プロセッサおよびＧＣへの結合の再割り当てが実行される。
【０３５４】
計算反復において、粒子位置データは、システム全体のノードの柔軟なサブシステムのプロセッサのメモリ４４１６間に分散される。そこから、粒子位置は、対毎の相互作用の
計算のためミッドレンジ・サブシステムに送られ、結合項の計算のため他のプロセッサに送られる。
【０３５５】
柔軟なサブシステム３９１２は、さらに、ＧＣにより計算された値に補正項を加えるために使用される補正プロセッサ４４３０を備える。補正プロセッサは、一般的な計算アプローチの１例を実装する。一般形式では、データ集合の大部分Ａに対し１つの計算が実行され、データ集合の小さな部分ｂに対し第２の計算が実行され、Ａとｂが完全なデータ集合の１パーティションを形成し、計算の結果がそのデータ集合にわたって累算（またはより一般的に簡約）される場合、データ集合全体にわたって第１の計算を実行して累算し、次いで、小さな部分ｂについて、第１の計算の結果を再計算して減算し、第１の計算の結果を計算して加算すると効率的である可能性がある。例えば、部分ｂでデータ集合の要素を除外しなくてよいようにすることにより、第１の計算は、規則正しい（つまり、条件または例外のない）反復により効率的なものとすることができる。粒子相互作用の背景状況において、データ集合全体（つまり、Ａとｂ）は、相互作用半径以内にある粒子の対の集合に対応する可能性があり、第１の計算は、例えば、ＰＰＩＭアレイで計算されるような非結合相互作用とすることができ、第２の計算は、ＧＣで計算されるような結合相互作用とすることができる。したがって、ＰＰＩＭアレイにおける力計算から相互作用半径以内にある粒子の結合対を除外しなくても、粒子間の結合相互作用がＧＣで計算される場合、補正プロセッサ４４３０は、粒子のその対についてＰＰＩＭで計算される非結合項の負を計算し、それを結合項に加算してから、メモリに送り、累算する。いくつかの実装では、補正プロセッサは、ＰＰＩＰ  ４３４４と同じ計算構造を備え、さらに、全く同じ非結合項が、合計からの減算について必ず計算されるようにする。
【０３５６】
一般に、柔軟なサブシステム内にホストされる主要な計算が３つあり、結合力項、制約項、および積分（制約条件なしで実行される）、および制約条件を考慮した最終的に更新される位置である。遠隔力の計算では、プロセッサおよびＧＣは、さらに、専用ＦＦＴサブシステムを備えないシステムのバージョンでＦＦＴ計算を実行する。
【０３５７】
柔軟なサブシステムを使用してＦＦＴ計算を実行するシステムのバージョンでは、遠隔力は、ミッドレンジ・システムを使用して最初に電荷をグリッド位置に分配することにより計算される。これらの分配された電荷は、シミュレーション体積全体にわたるグリッドについて分散ＦＦＴ計算を実行する柔軟なサブシステムに戻される。ＦＦＴは、プロセッサ（および関連するＧＣ）間に分配され、ノード間で中間結果をやり取りする複数のフェーズを必要とする。ＦＦＴ反復の終わりに、グリッド位置のポテンシャルを表す変換されたデータは、ミッドレンジ・サブシステムに戻され、そこで、そのデータは粒子に対する補間された力を計算するために使用される。次いで、これらの補間された力は、遠隔力項がそれぞれの粒子について計算された他の力項と組み合わされようとされまいと、メモリ・サブシステムに送られる。
【０３５８】
本発明のシステムでは、それぞれのノードは、メモリ３９５４およびリモート・リング・ステーション３９３０を除き、図３９に示されているすべての計算および通信サブシステムを含む特定用途向け集積回路（ＡＳＩＣ）を使用して実装される。バックプレーンを通して相互接続されている複数の回路基板のそれぞれに複数のＡＳＩＣが配列される。したがって、ノード間通信リンク３７３０は、回路基板のローカルにあるか、またはバックプレーンを通じて引き回される。
【０３５９】
１１  応用
上述のアルゴリズム技術、またはハードウェアもしくはソフトウェア技術は、さまざまな用途に適用可能であり、そのうち一部は、生体分子シミュレーションに関係し、他はそうではない。応用例としては、例えば以下のものがある。
【０３６０】
分子力学、モンテカルロ・シミュレーション、または他のサンプリング技術を使用することに関係する生体分子シミュレーションの応用は、限定することなく、最初に、タンパク質構造予測、タンパク質構造のホモロジー・モデルの精密化、タンパク質折り畳み速度論のモデル化、タンパク質−リガンド結合自由エネルギーの計算、タンパク質の対が相互作用するかどうかの判定、結合部位および結合自由エネルギーの判定、毒性研究、水和自由エネルギーの計算、タンパク質設計、アロステリック変化およびタンパク質機能のモデル化、膜タンパク質のシミュレーション、核酸のシミュレーション、炭水化物類のシミュレーション、上記とそれらの間の相互作用の組合せのシミュレーション、血液脳関門透過を含む、膜透過の予測、分子力場発生、および結晶構造のシミュレーションを含むことができる。
【０３６１】
応用は、さらに、材料科学応用、天気シミュレーション、流体力学的シミュレーション、状態方程式シミュレーション、宇宙物理学シミュレーションなどの他の分野も伴うかもしれない。
【０３６２】
１２  代替え
代替えとして、分散処理のさまざまな配列形態が上述の計算分解とともに使用される。
処理ノードとホームボックスとの間に一対一対応関係がある必要もない。例えば、それぞれのノードは、ｎ×ｎ×ｎの立方体のホームボックスなどの、ホームボックスの集合に関与しうる。ホームボックスのそのようなより細かな定義の用途の１つは、マルチ・ゾーン・スケジュール・アプローチであり、ゾーン間相互作用のスケジュールを使用することで重複計算の検査の必要をなくしたり、改善された丸めを通じて通信量を低減したりすることが可能である。そのようなより細かなホームボックスの他の用途は、相互作用ゾーンのそれぞれの対に関わる計算をシリアル化し、処理ノードのそれぞれにおける、ローカル・キャッシュ・メモリなどのローカル・メモリを有効に利用することである。メモリ利用の態様は、直列実装に関して以下で詳細に記載される、
並列実装の代替えバージョンでは、それぞれのノードは、ホームボックス内に配置されたものよりも多い粒子に対するデータを保持する。「クローン・バッファ」アプローチは、中間点割り当て規則アプローチとともに使用される。特に、それぞれのノードは、ホームボックスの境界を超えて距離Ｒ／２だけ伸びる領域から粒子データを格納する。それぞれの計算フェーズの後、拡張された領域内のすべての粒子に対する力がそのノードに送られ、これにより、粒子の新しい位置を冗長に計算することが可能になる。計算フェーズでは、例えば、中間点割り当て規則または擬似ランダム割り当て規則を使用して、粒子データをさらにインポートすることは必要ないが、その理由は、拡張領域が必要なすべての粒子を含むからである。
【０３６３】
上記のアプローチは、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアとの組合せを使用して実装することが可能である。例えば、システムの代替えバージョンは、ソフトウェア、ファームウェア、デジタル電子回路、コンピュータ・ハードウェア、他の実装様式、またはそのような様式の組合せで実装することが可能である。システムは、プログラム可能なプロセッサまたは複数のプログラム可能なプロセッサを備えるシステムにより実行する、磁気もしくは光ディスクまたは半導体メモリなどの機械可読記憶装置デバイスで明確に具現化されたコンピュータ・プログラム製品を含むことができる。プログラム可能なプロセッサは、汎用プロセッサであるか、または例えば、上述の種類の計算用に設計された専用プロセッサであってよい。並列実装では、例えば、専用相互接続ネットワークを使用することができるか、またはより汎用のデータ・ネットワーキング・アプローチを使用することができる。方法ステップは、入力データを操作し、出力を生成することにより命令からなるプログラムを実行して機能を実行するプログラム可能なプロセッサにより実行することが可能である。システムは、データ記憶装置システム、少なくと
も１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受け取り、データ記憶装置システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスにデータおよび命令を送るように結合された少なくとも１つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能である１つまたは複数のコンピュータ・プログラムで実装されうる。それぞれのコンピュータ・プログラムは、高水準手続きプログラミング言語、オブジェクト指向プログラミング言語、または必要ならばアセンブリもしくは機械言語で実装することができる。そのような言語は、コンパイラ言語またはインタプリタ言語としてよい。好適なプロセッサは、例えば、汎用マイクロプロセッサおよび専用マイクロプロセッサのいずれか（または両方）を含む。一般に、プロセッサは、読み取り専用メモリおよび／またはランダム・アクセス・メモリから命令およびデータを受け取る。一般に、コンピュータは、データ・ファイルを格納するための１つまたは複数の大容量記憶装置デバイスを備える。そのようなデバイスは、内蔵ハードディスクおよびリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、または光ディスクを含む。コンピュータ・プログラムの命令およびデータを明確に具現化するのに好適な記憶装置デバイスは、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュ・メモリ・デバイスなどの半導体メモリ・デバイス、内蔵ハードディスクおよびリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、およびＣＤ−ＲＯＭディスクを含む、あらゆる形態の不揮発性メモリを含む。前記は、いずれも、特定用途向け集積回路（ＡＳＩＣ）などの特定用途向けハードウェアに組み込まれるか、または補足されることが可能である。
【０３６４】
他の実施形態も、付属の請求項の範囲内にある。
尚、国際出願の英文明細書中にＪＩＳコードで表記できない箇所があったため、この翻訳文では代替表記を使用した、具体的には、
｛Ａ｝は、
【０３６５】
【数４６】
2014170556.tif 000048
【０３６６】
のように、国際出願の明細書ではオングストロームを意味する記号で表現されていたが、便宜上、翻訳文では｛Ａ｝と表現した。
【図１】
2014170556.tif 000049
【図２】
2014170556.tif 000050
【図３】
2014170556.tif 000051
【図４】
2014170556.tif 000052
【図５】
2014170556.tif 000053
【図６】
2014170556.tif 000054
【図７】
2014170556.tif 000055
【図８】
2014170556.tif 000056
【図９】
2014170556.tif 000057
【図１０】
2014170556.tif 000058
【図１１】
2014170556.tif 000059
【図１２】
2014170556.tif 000060
【図１３】
2014170556.tif 000061
【図１４】
2014170556.tif 000062
【図１５】
2014170556.tif 000063
【図１６】
2014170556.tif 000064
【図１７】
2014170556.tif 000065
【図１８】
2014170556.tif 000066
【図１９】
2014170556.tif 000067
【図２０】
2014170556.tif 000068
【図２１】
2014170556.tif 000069
【図２２】
2014170556.tif 000070
【図２３】
2014170556.tif 000071
【図２４】
2014170556.tif 000072
【図２５】
2014170556.tif 000073
【図２６】
2014170556.tif 000074
【図２７】
2014170556.tif 000075
【図２８】
2014170556.tif 000076
【図２９】
2014170556.tif 000077
【図３０】
2014170556.tif 000078
【図３１】
2014170556.tif 000079
【図３２】
2014170556.tif 000080
【図３３】
2014170556.tif 000081
【図３４】
2014170556.tif 000082
【図３５】
2014170556.tif 000083
【図３６】
2014170556.tif 000084
【図３７】
2014170556.tif 000085
【図３８】
2014170556.tif 000086
【図３９】
2014170556.tif 000087
【図４０】
2014170556.tif 000088
【図４１】
2014170556.tif 000089
【図４２】
2014170556.tif 000090
【図４３】
2014170556.tif 000091
【図４４】
2014170556.tif 000092
【図４５】
2014170556.tif 000093