JP2008538441A - 距離制限のある対毎の粒子相互作用を評価するための拡張性の高い方法 - Google Patents

距離制限のある対毎の粒子相互作用を評価するための拡張性の高い方法 Download PDF

Info

Publication number
JP2008538441A
JP2008538441A JP2008507847A JP2008507847A JP2008538441A JP 2008538441 A JP2008538441 A JP 2008538441A JP 2008507847 A JP2008507847 A JP 2008507847A JP 2008507847 A JP2008507847 A JP 2008507847A JP 2008538441 A JP2008538441 A JP 2008538441A
Authority
JP
Japan
Prior art keywords
calculations
objects
calculation
group
data
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.)
Granted
Application number
JP2008507847A
Other languages
English (en)
Other versions
JP5271699B2 (ja
Inventor
ジェイ. ボワーズ、ケビン
ドロール、ロン
イー. ショー、デイビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
DEShaw Research LLC
Original Assignee
DEShaw Research LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DEShaw Research LLC filed Critical DEShaw Research LLC
Publication of JP2008538441A publication Critical patent/JP2008538441A/ja
Application granted granted Critical
Publication of JP5271699B2 publication Critical patent/JP5271699B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/25Design optimisation, verification or simulation using particle-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B15/00ICT specially adapted for analysing two-dimensional or three-dimensional molecular structures, e.g. structural or functional relations or structure alignment
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C10/00Computational theoretical chemistry, i.e. ICT specially adapted for theoretical aspects of quantum chemistry, molecular mechanics, molecular dynamics or the like

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Biotechnology (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Biophysics (AREA)
  • Chemical & Material Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

粒子相互作用に対する一般化されたアプローチには、通信帯域幅、待ち時間、およびメモリ・アクセス特性のうちの1つまたは複数に関してすでに説明されている方法に勝る利点を持つ可能性がある。これらの一般化は、少なくとも空間分解、インポート領域丸め、およびマルチ・ゾーン通信スケジューリングのうちの1つまたは複数を伴う。並列実装では、一般化されたアプローチは、アプローチのいくつかのインスタンスにより要求される通信帯域幅が通信帯域幅に対する近似的下限に近いか、または達成されるという利点を有する。順次処理実装では、効果的なキャッシュ利用により、処理時のメモリ待ち時間が実質的に短縮される。

Description

本明細書は、粒子反応の計算に適用可能なアルゴリズムならびにハードウェアおよびソフトウェア技術を含む、粒子反応の計算に関する。
関連出願の相互引用
本出願は、すべて本願明細書に援用する、2005年4月19日に出願した米国仮出願第60/672,717号、2005年8月18日に出願した米国仮出願第60/709,184号、および2006年1月4日に出願した米国仮出願第60/756,448号の利益を主張するものである。
本出願も、すべて本願明細書に援用する、2005年6月30日に出願した米国出願第11/171,619号、2005年6月30日に出願した米国出願第11/171,634号、および2005年6月30日に出願した、指定国を米国とし、WO2006/004877A2として2006年1月12日に公開された国際出願第PCT/US2005/023184号の利益を主張するものである。
多体相互作用(「N体」問題と呼ばれることが多い)のシミュレーションは、天体力学および計算化学を含む多くの問題領域において有用である。生体分子または静電気粒子相互作用のシミュレーションは、系内の粒子間の相互作用の非常に詳しい図を描くことにより実験を補完するものである。シミュレーションにおける重要な問題点は、シミュレーション速度である。
対を列挙することにより系内の物体のすべての対の間の相互作用を決定する作業は、多量の計算を必要とし、そのため、反対称相互作用法が使用されることが多い。例えば、特定の粒子の定義済み半径内にあるすべての粒子は、遠く離れている粒子は無視しつつ、その粒子と相互作用する。シミュレーションに要する総計算時間を短縮するために、専用ハードウェアも用いられている。
1態様では、一般に、計算領域内に配置された物体に関連する計算を実行する方法は、複数の一群の計算の一部のうちのそれぞれの部分集合において計算を実行することを伴う。部分集合内で計算を実行することは、一群の計算の一部に関連付けられている複数のインポート領域のそれぞれに配置された物体のデータを受け取ることを含む。インポート領域は、計算領域の一部である。複数のインポート領域の組合せの所定の集合のそれぞれの組合せについて、物体の集合に関連付けられている計算が実行される。物体のこれらの集合のそれぞれについて、その集合の少なくとも1つの物体は、この組合せのそれぞれのインポート領域内に配置される。
態様は、以下の特徴のうちの1つまたは複数を含む。
複数のインポート領域の組合せの少なくとも一部は、それぞれ、インポート領域の対からなる。
一群の計算の一部のそれぞれは、マルチ・ノード計算システムの異なるノード上で実行される。
インポート領域から物体のデータを受け取ることは、計算システムのノードのうちの少なくとも2つを結合する通信媒体からデータを受け取ることを含む。
一群の計算の一部のそれぞれは、計算システム上で順番に実行される。
一群の計算の一部は、計算システムのメモリ制限に従って選択される。
この方法は、一群の計算の一部のそれぞれを計算フェーズの反復シーケンスにおける反復に関連付けることを含む。
インポート領域から物体のデータを受け取ることは、反復に対する計算を実行するプロセッサに関連付けられているローカル・メモリ内にデータをロードすることを含む。
一群の計算の一部のそれぞれは、計算領域の別の部分領域と関連付けられる。
一群の計算の一部のそれぞれについて、インポート領域は、部分集合が関連付けられている計算領域の別の部分領域から分離している。
複数の一群の計算の一部に関連付けられている部分領域は、計算領域のパーティションを形成する。例えば、これらの部分領域は、計算領域の正則パーティションおよび/または計算領域の直線パーティションを形成する。
一群の計算のそれぞれの一部に含まれる計算を実行することは、さらに、物体の集合に関連付けられている計算を実行することを含む。これらの集合のそれぞれについて、その集合のそれぞれの物体は、一群の計算の一部に関連付けられている部分領域内に配置される。この方法は、さらに、物体の集合に関連付けられている計算を実行することを含む。これらの集合のそれぞれについて、一群の計算の一部に関連付けられている部分領域内に1つの物体が配置され、その集合の他の1つまたは複数の物体は、一群の計算の一部に関連付けられているインポート領域内に配置される。
物体の集合のそれぞれの物体が一群の計算の一部に関連付けられている部分領域内に配置されている物体の集合に関連付けられている計算の実行は、インポート領域からの物体に対するデータを受け取りながら遂行される。
一群の計算のそれぞれの一部に含まれる計算を実行することは、さらに、物体の集合に関連付けられている計算を実行することを含む。これらの集合のそれぞれについて、その集合のそれぞれの物体が、一群の計算の一部に関連付けられているインポート領域の1つに配置され、その集合のどの物体も、一群の計算の一部に関連付けられている部分領域内に配置されることはない。
一群の計算のそれぞれの一部に含まれる計算を実行することは、インポート領域に応じて指定された計算のスケジュールを適用することを含む。
一群の計算に含まれる計算のそれぞれは、その計算に関連付けられている物体の集合の相互作用を特徴付けるデータの計算を含む。
一群の計算に含まれる計算のそれぞれは、その計算に関連付けられている物体の集合の識別をデータ構造体に記録することを含む。
この方法は、さらに、データ構造体に記録された物体の複数の集合のそれぞれの相互作用を特徴付けるデータの計算を実行することを含む。
一群計算のすべての一部における計算を実行する際に、物体のどの集合についても、物体のその集合に対する計算は、それらの部分集合の高々1つにおいて実行される。
複数のインポート領域の組合せの選択された集合の少なくとも一部では、複数のインポート領域のそれぞれにおいて1つの物体のすべての組合せについて計算が実行される。
一群の計算のすべて一部における計算を実行する際に、物体のどの集合についても、物体のその集合に対する計算は、それらの部分集合の高々1つにおいて実行される。
これらのステップは、一連の時間ステップ毎に反復され、それぞれの時間ステップで実行される計算は後続の時間ステップで使用する計算領域内の物体の位置を更新するために使用される。
他の態様では、方法は、一般に、計算領域内に配置されている物体に関連付けられている一群の計算を実行するための方法である。一群の計算に含まれる計算のそれぞれが、物体の対に関連付けられる。この方法は、近傍内に配置されている物体のデータを受け取ることを含む。近傍は、複数のゾーンの集合を含む。物体の対に関連付けられている計算は、それぞれの対の物体が異なるゾーン内に配置されるように実行される。これらのゾーンの少なくとも1つのゾーンの空間的な広がりは、これらのゾーンのうちの他のゾーン内のすべての点から最小の距離よりも遠く離れているゾーンのうちの1つのゾーン内の少なくとも一部の点を排除するように決定される。
態様は、以下の特徴のうちの1つまたは複数を含む。
空間的な広がりは、計算が実行される物体の対の間の距離閾値に基づいて決定される。
複数のゾーンのうちの1つのゾーンの空間境界は、ゾーンの集合の他のゾーン内の点までの最小の距離に従って決定される。
ゾーンの集合の少なくとも1つのゾーンは、非平面境界を含む。
計算領域は、正則領域に分割され、ゾーンの集合の少なくとも1つのゾーンは、正則領域のうちの1つの領域の全部ではないとしても一部を含む。
計算領域は、複数の正則領域に分割され、それぞれの領域は、一群の計算の一部に関連付けられる。
近傍は、正則領域のうちの1つに対応する。
他の態様では、一般に、方法は、計算領域内に配置されている物体に関連付けられている一群の計算を実行するための方法である。計算領域は、複数の正則領域に分割され、一群の計算に含まれる計算のそれぞれは、物体の集合に関連付けられる。この方法は、正則領域の少なくとも一部について、正則領域の近傍内に配置された物体に対するデータを受け取ることを含むが、ただし、近傍は複数のゾーンの集合を含む。ゾーンの集合は、ゾーンの各部と隣接しない少なくとも1つのゾーンを含み、その各部は計算領域の少なくとも2つの次元に分散される。
一群の計算に含まれるそれぞれの計算は、物体の対に関連付けられる。
近傍は、2つのゾーンからなり、物体の対毎に、対の一方の物体が、この2つのゾーンのうちの異なる1つのゾーン内に配置される。
ゾーンの集合は、少なくとも1つの隣接ゾーンを含む。
隣接ゾーンは、正則領域と隣接する。
これらのゾーンのうちの少なくとも2つのゾーンは、計算領域の1つの次元方向に伸長される。
これらのゾーンのうちの少なくとも1つのゾーンは、計算領域の少なくとも1つの他の次元方向に広がる。
他の態様では、方法は、一般に、計算領域内に配置されている物体に関連付けられている計算を実行するための方法である。この方法では、ローカル・メモリに結合されたプロセッサを使用する。この方法は、複数の一群の計算の一部を反復実行することを含む。反復毎に、複数の一群の計算の一部のうちの一部が実行される。一群の計算の一部を実行することは、一群の計算の一部に関連付けられているインポート領域の集合それぞれの領域に配置された物体のデータをローカル・メモリ内にロードすることを含む。インポート領域は、計算領域の一部である。プロセッサ上で、物体の対に関連付けられている計算が実行される。対毎に、その対の一方の物体が、インポート領域の第1の部分に配置され、その対の他方の物体が、インポート領域の第2の部分に配置される。
態様は、以下の特徴のうちの1つまたは複数を含む。
物体の対に関連付けられている計算の実行は、インポート領域の第1の部分と第2の部分の組合せの所定の集合に含まれるそれぞれの組合せについて行われる。
物体の対に関連付けられている計算を実行することは、対の一方の物体がインポート領域の第1の部分に配置され、対の他方の物体がインポート領域の第2の部分に配置されている物体の実質的にすべての対に関連付けられている計算を実行することを含む。
他の態様では、一般に、計算領域内に配置されている物体に関連付けられている計算を実行する方法は、計算領域の複数の部分領域のそれぞれについて、対応する別々の記憶領域内にその部分領域内の物体に対するデータを保持することを含む。部分領域は、少なくともいくつかの物体が多数の記憶領域内に保持されるデータを有するようにオーバーラップする。部分領域のそれぞれについて、対応する記憶領域からその部分領域内の物体に対するデータにアクセスし、その部分領域内の物体のうちの2つまたはそれ以上の物体の集合に関連付けられている計算を実行する。
別々の記憶領域のそれぞれは、マルチ・ノード計算システムのノードに関連付けられる。
部分領域内の物体の対に関連付けられている計算の実行は、部分領域に対応する記憶領域に関連付けられているノードに対し実行される。
別々の記憶領域のそれぞれは、異なるノードに関連付けられる。
部分領域のそれぞれは、ホーム領域、およびホーム領域から少なくとも所定の距離だけ広がっている領域を含む。
ホーム領域は、計算領域の1パーティションを形成する。
この所定の距離は、物体間の対毎の相互作用について少なくとも半分の相互作用半径となっている。
部分領域内の物体の対に関連付けられている計算を実行することは、複数の物体の複数の位置における中点が部分領域に対するホーム領域内にある物体の対について計算を実行することを含む。
他の態様では、一般に、計算領域内に配置されている物体の集合間の相互作用を計算する方法は、物体の集合のうちの1つの集合に関連付けられているそれぞれの計算について、それぞれの物体の位置から決定された物体の集合の中間位置に基づいて計算を実行するための一群の計算ユニットに含まれる計算ユニットを決定することを含む。
態様は、以下の特徴のうちの1つまたは複数を含みうる。
中間位置は、複数の物体のそれぞれの物体の位置の幾何学的中間点に従って決定される。
中間位置は、複数の物体のそれぞれの物体の位置を囲む最小球体の中心に基づいて決定される。
計算ユニットのそれぞれは、マルチ・ノード計算システムのノードに関連付けられる。
計算ユニットのそれぞれは、異なるノードに関連付けられる。
計算ユニットのそれぞれは、複数のノードのうちの1つのノードに関連付けられる。
計算領域は、複数の正則領域に分割され、それぞれの領域は、複数の計算ユニットのうちの異なる1つの計算ニットに関連付けられる。
物体の複数の集合のうちの少なくともいくつかに関連付けられている計算を実行するための計算ユニットを決定することは、その集合の中間位置が計算ユニットに関連付けられている正則領域内にあるかどうかに基づく。
物体の複数の集合の少なくともいくつかに関連付けられている計算を実行するための計算ユニットを決定することは、その集合の中間位置が計算ユニットに関連付けられている正則領域内に入る計算ユニットを含む一群の計算ユニットから1つの計算ユニットを選択することを含む。
一群の計算ユニットは、さらに、その集合内の物体のそれぞれが、中間位置が少なくとも1つの他の計算ユニットの正則領域内に置かれる物体の少なくとも1つの他の集合に属すような少なくとも1つの他の計算ユニットを含む。
計算ユニットの選択は、複数の計算ユニットにわたる計算負荷の分布に一部は従って実行される。
他の態様では、方法は、一般に、計算領域内に配置されている物体に関連付けられている一群の計算を実行するための方法である。一群の計算に含まれる計算はそれぞれ、物体の集合に関連付けられる。この方法は、複数の一群の計算の一部のうちの少なくともいくつかについて、一群の計算のその一部に含まれる計算を実行することを含む。その部分集合内で計算をこのように実行することは、一群の計算の一部に関連付けられている部分領域の付近に配置された物体のデータを受け取ることと、物体の複数の集合について計算を実行することとを含む。集合のそれぞれの物体は、部分領域の付近または部分領域内に配置される。その集合の物体とその部分領域の位置は、指定された判定基準を満たす。集合内の物体と部分領域の位置に対する指定された判定基準では、集合内の物体の中間位置が部分領域内にあることが要求される。
態様は、以下の特徴のうちの1つまたは複数を含む。
集合内の物体の中間位置は、複数の位置を囲む境界球体の中心に基づいて決定される。
集合内の物体の中間位置は、複数の位置の平均に基づいて決定される。
物体の複数の集合のうちの少なくともいくつかは、2つの物体からなる。
物体の複数の集合のうちの少なくともいくつかは、3つの物体からなる。
物体の複数の集合のうちの少なくともいくつかは、3つよりも多い物体を含む。
他の態様では、方法は、一般に、計算領域内に配置されている物体に関連付けられている一群の計算を実行するための方法である。一群の計算に含まれる計算はそれぞれ、物体の対に関連付けられる。この方法は、複数の一群の計算の一部のうちの少なくともいくつかについて、一群の計算のその一部に含まれる計算を実行することを含む。その部分集合内で計算を実行することは、一群の計算の一部に関連付けられている部分領域の付近に配置された物体のデータを受け取ることと、物体の複数の集合について計算を実行することとを含む。対のそれぞれの物体は、部分領域の付近または部分領域内に配置される。その対の物体とその部分領域の位置は、指定された判定基準を満たす。
態様は、以下の特徴のうちの1つまたは複数を含む。
指定された判定基準には、隣接する部分領域の付近にある対の物体の分布に関する情報が組み込まれる。
対内の物体と部分領域の位置に対する指定された判定基準では、対内の物体の位置の中間点が部分領域内にあることが要求される。
他の態様では、一般に、幾何学的グリッド内に配列された複数の処理ノードの分子力学シミュレーションの計算方法は、相互作用半径未満の距離だけ離れている粒子のすべての対に対するデータが少なくとも1つの処理ノード上で利用できるように処理ノード間で粒子データを交換することを含む。2つまたはそれ以上の種類の計算が、処理ノードで利用可能な粒子の対について実行される。
態様は、以下の特徴のうちの1つまたは複数を含む。
2つまたはそれ以上の種類の計算は、静電気相互作用、結合力、粒子移動、電荷拡散、および力拡散計算のうちの少なくとも2つを含む。
2つまたはそれ以上の種類の計算は、静電気相互作用計算を含む。
他の態様では、一般に、アイテムの複数の集合を伴う計算を実行する方法は、複数のアイテムのそれぞれをそのアイテムが属するグループの集合に関連付けることを含む。アイテムの複数の集合は、それぞれの集合に関連付けられている計算を実行する候補として識別される。集合内の複数のアイテムのグループ帰属関係に応じて複数の集合が計算から除外される。
態様は、以下のうちの1つまたは複数を含む。
複数の集合を除外することは、ある1つの集合を、その複数のアイテムのうちのいくつかのアイテムが共通のグループに関連付けられている場合に除外することを含む。
複数の集合を除外することは、ある1つの集合を、その複数のアイテムのうちのすべてのアイテムが共通のグループに関連付けられている場合に除外することを含む。
これらのアイテムは、シミュレーション・システムにおいて複数の物体に関連付けられる。
これらの物体は、物体のリンクされた集合を形成し、グループの少なくともいくつかは、それぞれ、物体のリンクされた集合に関連付けられる。
物体の集合内の複数の物体に関連付けられているアイテムのそれぞれは、リンクされた集合に関連付けられているグループに関連付けられる。
物体の複数のリンクされた集合は、物体の複数の結合された集合を含む。
アイテムの複数の集合を候補として識別することは、関連付けられている物体が所定の相互作用半径内にあるようにそれらの集合を識別することを含む。
他の態様では、一般に、ソフトウェア製品は、上記の方法のどれかのステップすべてを実行するように適合される。ソフトウェア製品は、コンピュータ可読媒体上に具現化されたステップを実行するための命令を備える。
他の態様では、一般に、並列処理システムは、粒子相互作用を計算することを目的としている。システムは、シミュレーション体積の幾何学的パーティション分割に応じて配列された複数の計算ノードを備える。ノードのそれぞれは、シミュレーション体積の1領域内の粒子に対する粒子データ用の記憶装置を備える。システムは、さらに、計算ノードを相互接続するリンクを含む通信システムも含む。ノードのそれぞれは、プロセッサ・サブシステムを含み、分散方式で計算ノードを一緒にまとめたプロセッサ・サブシステムは、粒子相互作用の計算を調整する。
態様は、以下のうちの1つまたは複数を含む。
通信システムは、トロイダル形状のメッシュを形成する。
通信システムは、分離コンポーネントを備え、それぞれのコンポーネントは計算ノードの異なる近傍をリンクする。
通信システムのそれぞれの分離コンポーネントは、複数の計算ノードのうちの2つのノードの間の2地点間リンクを含む。
粒子データの少なくとも一部を複数の計算ノードの他のノードに送ることは、通信システムの複数の分離コンポーネントにわたって他の計算ノードを介してデータを渡すことを含む。
それぞれのノードは、
(i)計算にそのデータを必要とする複数の計算ノードの他のノードに粒子データを送り、
(ii)複数の計算ノードのうちの他のノードから送られた粒子データを受け取り、
(iii)受け取った粒子データを使用して計算を実行し、第1の結果を出力し、
(iv)第1の結果を複数の計算ノードの他のノードに送り、
(v)第1の結果を複数の計算ノードの他のノードから送られる第1の結果を受け取り、
(vi)受け取った第1の結果を使用してさらに計算を実行し、第2の結果を出力するように構成されている。
通信システムは、計算ノードから粒子データを受け取り、その粒子データを複数の計算ノードのうちの他のノードの近傍に分配するように構成される。
通信システムは、粒子データを分配するように近傍を構成するための記憶装置を備える。
計算ノードのそれぞれは、さらに、通信システムの通信サブシステムを備え、通信サブシステムはプロセッサ・サブシステムの介入なしで一方の計算ノードから他方の計算ノードへ粒子データを渡すように構成可能である。
計算ノードのそれぞれは、さらに、受け取った粒子データを使用して計算を実行し第1の結果を出力するため計算サブシステムを備える。
計算サブシステムは、さらに、そのノードで処理サブシステムの介入なしで、第1の結果を複数の計算ノードのうちの他の計算ノードに送ることを目的とする。
計算ノードのそれぞれは、さらに、処理サブシステムの介入なしで、複数の計算ノードのうちの他の計算ノードから第1の結果を受け取るためのメモリ・サブシステムを備える。
メモリ・サブシステムは、さらに、粒子の詳細について受け取った第1の結果を蓄積することを目的とする。
メモリ・サブシステムは、さらに、受け取った第1の結果に基づくデータを処理サブシステムに供給することを目的とする。
プロセッサ・サブシステムは、さらに、受け取った第1の結果を使用してさらに計算を実行し、第2の結果を出力することを目的とする。
粒子データは、粒子位置データを含む。
第1の結果は、粒子力データを含む。
第2の結果は、粒子位置データを含む。
他の態様では、一般に、並列処理システムで使用する処理ノードは、サブシステムのグループを含む。サブシステムのこのグループは、プロセッサ・サブシステム、計算サブシステム、およびメモリ・サブシステムを含む。システムは、さらに、複数のサブシステムからなるグループに含まれるいくつかのサブシステムをリンクし、ノードのサブシステムと処理システムの他の処理ノードのサブシステムとの間にリンクの少なくとも一部を形成する通信サブシステムも含む。計算サブシステムは、空間的位置にそれぞれ関連付けられているデータ要素の間の対毎の計算を実行する回路を備える。
態様は、以下の特徴のうちの1つまたは複数を含む。
プロセッサ・サブシステムは、実質的に一般的な計算を行うようにプログラム可能である。
プロセッサ・サブシステムは、複数の独立にプログラム可能なプロセッサを備える。
通信サブシステムは、一群のインターフェイス・ユニットを含み、それぞれのインターフェイス・ユニットはサブシステムのグループに含まれる1つのサブシステムにリンクされ、通信サブシステムは、さらに、他の複数の処理ノードのインターフェイス・ユニットとリンクするための1つまたは複数のインターフェイス・ユニットを備える。
通信サブシステムは、サブシステムのグループに含まれる複数のサブシステムをリンクする通信リングを備える。
通信システムは、同じ処理ノード上のサブシステムと異なる処理ノード上のサブシステムとの間でアドレス指定可能なメッセージ受け渡しを実現する。
計算サブシステムは、粒子シミュレーション・システム内の粒子の対を伴う計算を行うように適合可能である。
計算サブシステムは、それぞれ粒子シミュレーション・システム内の粒子およびグリッド位置を伴う計算を行うように適合可能である。
サブシステムのグループおよび通信サブシステムは、単一の集積回路上に集積化される。
メモリ・サブシステムは、集積回路の外部の記憶装置デバイスとのインターフェイスを備える。
通信サブシステムは、他の集積回路上の通信サブシステムと通信するためのインターフェイスを備える。
他の態様では、一般に、計算システムは、処理モジュールの1つまたは複数の直列に相互接続された処理グループに配列された処理モジュールのアレイを備える。処理モジュールはそれぞれ、データ要素用の記憶装置を備え、データ要素の間の対毎の計算を実行する回路を備え、対毎の計算のそれぞれは、処理モジュールの記憶装置からのデータ要素および直列に相互接続された処理モジュールを通過するデータ要素を使用する。
態様は、以下のうちの1つまたは複数を含む。
処理モジュールのアレイは、2つまたはそれ以上の直列に相互接続された処理グループを含む。
処理モジュールの複数のグループのうちの少なくとも1つのグループは、処理モジュールのうちの2つまたはそれ以上の直列相互接続を含む。
このシステムは、さらに、処理グループ間にデータ要素を分配するための分配モジュールを備える。
このシステムは、さらに、複数の処理グループのうちのそれぞれにより生成される対毎の計算の結果を組み合わせるための組合せモジュールを備える。
他の態様では、一般に、方法は、データ要素の第1の集合を受け取ることと、データ要素の第1の集合を処理モジュールの1つまたは複数の直列に相互接続された処理グループに配列されている処理モジュールのアレイの記憶装置に分配することと、データ要素の第2の集合を受け取ることと、データ要素を直列に相互接続された処理グループに通すこととを含む。
複数の処理モジュールのうちの少なくともいくつかのそれぞれにおいて、処理モジュールの記憶装置に格納される第1の集合からのデータ要素および処理グループを通過するデータ要素を伴う対毎の計算が実行され、対毎の計算の結果は、直列に相互接続されている処理グループに通される。この方法は、さらに、複数の処理グループのうちのそれぞれから渡された対毎の計算の結果を組合せ、組み合わせた結果を送ることを含む。
態様は、以下のうちの1つまたは複数を含む。
第1の集合および第2の集合のデータ要素は、多体シミュレーション・システム内の物体に関連付けられる。
対毎の計算は、物体の対の間の力に関連付けられる。
この方法は、さらに、複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、データ要素の全部ではなく一部を選択することを含み、データ要素は対毎の計算の実行に関して処理グループを通過する。
データ要素を選択することは、対毎の計算を実行するためにデータ要素の複数の対を選択することを含む。
データ要素の複数の対を選択することは、データ要素に関連付けられている空間的位置の間の距離間隔に応じて対を選択することを含む。
データ要素の第1の集合をアレイの記憶装置に分配することは、モジュールのそれぞれにおいて、データ要素を複数のマッチング・ユニットに分配し、それぞれのマッチング・ユニットはデータ要素の異なる部分集合を受け取ることを含む。
この方法は、さらに、マッチング・ユニットのそれぞれにおける複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、データ要素の全部ではなく一部を選択することを含み、データ要素は対毎の計算の実行に関して処理グループを通過する。
この方法は、さらに、複数の処理モジュールのうちの少なくともいくつかの処理モジュールのそれぞれにおいて、マッチング・ユニットの出力を組み合わせることと、この組み合わせた出力を計算ユニットに渡して対毎の計算を実行することとを含む。
他の態様では、一般に、処理モジュールは、マッチング・ユニットの集合を含み、それぞれのユニットはデータ要素の第1の集合の異なる部分集合に対する記憶装置に関連付けられている。処理モジュールは、さらに、データ要素の第2の集合内の一連のデータ要素を受け取るための入力を備え、この入力はマッチング・ユニットのそれぞれに結合されており、受け取ったデータ要素をマッチング・ユニットに渡す。このモジュールは、さらに、マッチング・ユニットにより選択された、第1の集合から取った1つのデータ要素と第2の集合から取った1つのデータ要素からなる、データ要素の複数の対を受け取るためマッチング・ユニットに結合された計算ユニット、および計算ユニットにより出力される結果を送出するための出力を備える。
態様は、以下の特徴のうちの1つまたは複数を含みうる。
モジュールは、受け取った一連のデータ要素を他のモジュールに送出するための出力を備える。
モジュールは、他のモジュールにより出力される結果を受け取るための入力を備える。
モジュールは、計算ユニットにより出力される結果と結果を受け取るための入力で受け取った結果とを組み合わせるマージ・ユニットを備える。
マージ・ユニットは、結果のそれぞれに関連付けられている第1の集合のデータ要素に応じて結果をマージするための回路を備える。
他の態様および特徴は、以下の説明および請求項から明らかである。
節の見出しは、読者の助けとなるように用意されており、説明を制限するものと解釈すべきでない。節の見出しの一覧を以下に示す。
1 概要 18
1.1 分子力学 18
1.2 分子力場 20
1.3 対毎の相互作用 21
1.4 メッシュ・ベースの計算 23
1.5 文書の編成 25
2 NT、SH、およびHS法 25
2.1 HS法 26
2.2 NT法 27
2.3 SH法 28
3 一般化分解 28
3.1 畳み込み判定基準 30
3.2 割り当て規則 32
3.2.1 HS、NT、およびSHアナログ方式の割り当て規則 32
3.2.2 中間点割り当て規則 33
3.2.3 擬似ランダム割り当て規則 34
3.2.4 計算負荷分散 35
3.2.5 並進不変性 38
3.3 可換な相互作用 39
3.4 丸め判定基準 41
3.5 高次元での分解 42
4 共有通信 45
5 対リストおよび除外グループ 48
6 マルチ・ゾーン法 50
6.1 インポート体積の下限 55
6.2 最適化優先度 56
7 一般化分解の適用 56
7.1 1/8シェル法 57
7.2 スライス1/2シェル法 58
7.3 マルチ・ゾーンNTおよびSNT法 58
7.4 泡法 59
7.5 通信帯域幅要件の比較 60
7.6 多粒子相互作用 61
8 シリアル化実装 62
9 クラスタ・アーキテクチャ 67
10 並列実装 68
11 応用 82
12 代替え 82
請求項 209
1 概要
多体相互作用(「N体」問題と呼ばれることが多い)のシミュレーションは、天体力学および計算化学を含む多くの問題領域において有用である。例えば、生体分子または静電気粒子相互作用のシミュレーションは、系内の粒子間の相互作用の非常に詳しい図を描くことにより実験を補完するものである。シミュレーションにおける重要な課題は、シミュレーション速度である。
1.1 分子力学
分子シミュレーションの1アプローチは、主に物理学に基づくものであり、分子系の物理学の数学モデルに基づいて構造を予測する。タンパク質は、原子レベルでモデル化され、個々の原子または原子の複数のグループはN体系内の点物体として表される。これらの方法のうちの1つは、それぞれの粒子に加わる力を計算し、ニュートンの法則の数値積分を用いて時間の経過とともに変わるそれぞれの原子の物理的軌道を予測する分子力学(MD)である。代替えの方法として、系のポテンシャル・エネルギー面の確率的サンプリングを行うモンテカルロ法の一種がある。物理学ベースの方法は、ホモロジー・モデルを精密化するために使用されるか、または単独で適用され、スクラッチからタンパク質構造を決定する。MDは、さらに、タンパク質折り畳みの過程を調査するためにも使用される。
物理学ベースの方法をタンパク質構造予測および計算生化学における他の構造ベースの問題に適用する際に重要なのは、これらの問題が、単一分子または分子事象に関係せず、むしろ、非常に大きな分子群の統計的特性に関係することが多いということである。例えば、タンパク質構造を予測する場合、特定の1つのタンパク質分子が偶然折り畳まれて形成しうる構造に必ずしも関心があるわけではなく、むしろそのタンパク質の分子の最もありそうな構造、そのタンパク質の大きな分子群の間の基準となる構造に関心があるといえる。結合を研究する場合、問題になるのは、特定のタンパク質およびリガンドが特定の場合において結合するかどうかではなく、多数のタンパク質およびリガンドが寄せ集められたときの、定常状態における結合リガンドの濃度であると思われる。
これらの問題について計算するのに有用な量は、分子系の自由エネルギーである。自由エネルギーは、系の単一状態の特性ではなく、むしろ状態アンサンブルの特性である。非常に一般的な言い方をすると、状態アンサンブルの自由エネルギーが低ければ低いほど、分子系が与えられた時刻においてそれらの状態のうちの1つの状態にある確率が高くなるということである。アンサンブルの自由エネルギーは、アンサンブル内のすべての状態にわたって確率の総和を求めることにより計算される。状態の確率は、系の温度に依存するポテンシャル・エネルギーの指数関数である(特に、計算ではボルツマン分布を使用する)。実際的な言い方では、このことは、タンパク質構造予測に関して、MDシミュレーションを1回実行し、ある時点において停止し、終端立体構造を固有の状態とみなすだけでは不十分であることを意味する。最低でも、そのようなシミュレーションの終わり近くで多くの立体構造がサンプリングされるべきである。それどころか、複数の別々のシミュレーションを実行し、結果同士を比較する必要がある場合がある。
標的タンパク質の構造が−計算または実験のいずれかの方法を通して−得られた後、計算の方法を使用して、タンパク質とリガンドとの相互作用を予測することができるが、これは、「ドッキング問題」とおおまかに呼ばれる作業である。
理論的には、リガンドを活性についてスクリーニングすることは、物理学ベースの方法により実行することが可能である。そのアプローチは膨大な計算量を必要とするため、他の方法が開発された。一般に、タンパク質およびリガンドの異なる構成が生成され、発見的スコアリング機能に応じてそれぞれに関して計算される。検査されなければならない構成の数を減らすために、タンパク質が堅いままに保持されるか、またはわずかな柔軟性を許容し、リガンドは、タンパク質の近くのさまざまな点においてさまざまな姿勢および配向で検査される。さらに配置空間を縮小するために、タンパク質上の活性部位を知る必要がある(または、知ることは少なくとも非常に役立つ)。
この発見的スクリーニングでは、標的タンパク質に結合する可能性のあるリガンドを同定することができるが、その結合を定量化したり、特定の効果をもたらすために必要なリガンドの濃度などの、相互作用の他の特性を予測したりすることはできない。このために、相互作用の結合自由エネルギー、系の非束縛状態と束縛状態との自由エネルギー差が使用される。結合エネルギーが小さすぎると、薬物の必要用量が多くなり実用的と言い難くなり、エネルギーが高すぎると、毒性または他の副作用が発生しうる。結合自由エネルギーの正確な計算は、2つの分子が結合する可能性があるかどうかを単純に判定するのと比べてかなり多量の計算を必要とする作業であり、これらの相互作用の正確な構造的モデルに大きく依存する。
1.2 分子力場
構造ベースの問題に対する物理学ベースの方法では、これらの計算方法の「内側ループ」は、分子系が与えられた場合に、(a)系のポテンシャル・エネルギーを全体として計算するか、または(b)系の残り部分との相互作用によるそれぞれの粒子に対する力を計算するという問題を解くように選択することが可能である。((b)の力は、単に、(a)の3次元ベクトル勾配であり、問題の2つのバリエーションは計算に関して類似のものとなる。)これらの力およびエネルギーは、一般に、分子力場と呼ばれる特定のタイプのモデルに従って計算される。
力場は、原子レベルで分子系をモデル化することができ、複数の原子または原子の複数のグループは典型的には点物体として表される。それぞれの点物体は、質量および電荷(より具体的には、原子結合により引き起こされる複雑な電子分布が点電荷でモデル化できるような部分電荷)などの関連するパラメータの集合を有する。これらのパラメータは、原子の種類に応じて初期化時に決定され、標準的な力場では、シミュレーション全体を通して一定のままである。原子の種類は、周期律表に載っている原子番号ほどは単純でなく、原子のパラメータは、どのような粒子がその原子に近いか、特に他のどのような原子がその原子に結合されるかに依存する。例えば、窒素原子(アミン)に結合された水素原子は、酸素原子に結合されたものと異なる部分電荷を有する(アルコール)。炭素、水素、酸素、および窒素のそれぞれに複数の種類が容易に挙げられる。これらに使用される種類の原子およびパラメータの集合は、特定の力場を定義する特性のうちの1つである。
原子間の相互作用は、複数の成分に分けられる。結合項は、共有結合されている原子間の相互作用をモデル化する。このような項の1つは、調和振動子として2つの原子の間の結合を効果的にモデル化し、結合距離と呼ばれる、互いから一定の距離のところで2つの原子が安定する傾向を反映する。他の項は、2つの結合がある角度に向かって「曲がる」傾向を反映する。さらに他の項では、ねじれの効果、つまり2つの結合といずれかの側でなす相対的角度による結合の「ねじり」を考慮する。他のいくつかの種類の項も可能であり、それらの多く、つまり交差項も可能であり、基本的な種類の項の間の相互作用を考慮する。それぞれの項は、1つまたは複数のパラメータを含み、それぞれのパラメータは、原子の種類のそれぞれの組合せ(対、3つ組、4つ組など)に対する値を持っていなければならず、その結果、項および交差項のすべてから多数のパラメータが得られる。
力場内の非束縛項は、原子間のすべてとすべての相互作用をモデル化する。非束縛項の1つは、クーロンの法則による電荷の互いの引力と斥力の静電気相互作用を計算する。他の種類の非束縛項は、引力成分と斥力成分からなる短距離相互作用である、ファン・デル・ワールス相互作用をモデル化する。斥力成分は、数オングストローム({A}と略記する、10−10メートルに等しい)の非常に短い距離内で支配的である。おおまかに言うと、斥力は、原子が互いに重なり合う、または衝突するのを妨げるものとして考えられる。ファン・デル・ワールス・ポテンシャルをモデル化する方法はさまざまなものがある。引力成分は、通常は、2つの粒子の間の距離の6乗に逆比例して、つまり1/rに比例して減少するものとしてモデル化され、斥力成分は、類似のべき乗関数(通常は、汎用プロセッサでの計算に便利なように、1/r12)または指数関数によりモデル化される。このような力は、1/rに比例して比較的ゆっくりと減少する静電気ポテンシャルと比較される。
1.3 対毎の相互作用
多数の場におけるシミュレーションは、粒子の明示的な対毎の相互作用を計算することを必要とする。上述の生化学における分子力学およびモンテカルロ・シミュレーションに加えて、類似のシミュレーションを物質科学、宇宙物理学およびプラズマ物理学におけるN体シミュレーション、ならびに流体力学における状態シミュレーションの粒子ベースの流体力学および方程式に適用することが可能である。このようなシミュレーションの計算作業負荷を低減するために、粒子のすべての対の間の相互作用を計算する代わりに、1アプローチでは、ある相互作用半径R未満の距離だけ隔てられている対の間の相互作用のみを計算する。これらの相互作用は、「近距離相互作用」と呼ばれる。残りの相互作用(「遠距離相互作用」)は、無視されるか、または計算量の少ない方法で取り扱われる。相互作用半径を制限することに関連して無駄を省く場合であっても、近距離相互作用はそのまま計算コストに対し支配的である。この計算を並列処理および/または直列処理について分解する方法は、これらのシミュレーションに必要な総時間数および/またはこれらのシミュレーションに必要な計算または通信を低減するうえで有用と思われる。
従来の並列化方法は、ヘッフェルフィンガー(Heffeifinger)「Parallel atomistic simulations」Computer Physics Communications、第128巻、219〜237ページ(2000)およびプリンプトン(Plimpton)「Fast Parallel Algorithms for Short Range Molecular Dynamics」Journal of Computational Physics、第117巻、1〜19ページ(March 1995)を含む、多数のレビューにおいて説明されている。これらは、原子、力、および空間を分解する方法を含む。空間を分解する方法は、原子および力を分解する方法に勝る利点を有する可能性があるが、その理由は、空間の局所性を利用して、系内のすべての対ではなく、近くの粒子の対のみを考慮すればよいからである。その一方で、力を分解する方法は、それぞれのプロセッサにより必要とされる通信帯域幅がプロセッサ数の増大とともに減少するという点で空間および原子を分解する方法に勝る利点を有する可能性がある。
最近開発された2つの方法、マークスニール(Marc Snir)により「A Note on N−Body Computations with Cutoffs」(Theory Comput.Systems 第37巻、295〜318ページ、2004)で公開されているSnir’s Hybrid(SH、「ハイブリッド」)法およびデイヴィッドE.ショー(David E. shaw)により「A Fast,Scalable Method for the Parallel Evaluation of Distance−Limited Pairwise Particle Interactions」として公開される予定のショーのNeutral Territory(NT)法では、空間の分解と力の分解とを組み合わせている。これらは、相互作用半径が減少するとともに必要な通信が減少するという特性を有する。また、これらは、プロセッサ数が増大するとともに1ノード当たりの必要な通信が減少するという特性も有する。図1を参照すると、SH法およびNT法の非対称的スケーリング特性と従来方法とを比較することで、SH法およびNT法は、同じスケーリング特性を有し、従来の方法に比べて著しく改善されていることがわかる。特に、これら2つの方法は両方とも、O(R3/2−1/2)の非対称的複雑度を持ち、力方法以外のすべてに比べてプロセッサ数pとともにゆっくりと増大し、これは空間の局所性を利用しない、したがって相互作用半径Rが減少しても改善しない。
SH法およびNT法は両方とも、実用的なマシンおよびシミュレーション・サイズに関して従来の方法に勝る利点を有する可能性がある。例えば、NT法は、SH法に比べて常に通信をあまり必要としないと示すことができるがSH法は、その差が小さくなるようにNT法の特徴を使用して最適化できることがわかる。NT法の特徴を使用するSH法の最適化されたバージョンは、以下ではSNT法と呼ばれる。
NT、SNT、およびSH法は、異なるインポート領域を伴う。つまり、それぞれのプロセッサによりインポートされる粒子の集合は、方法毎に異なるということである。しかし、これらの方法は、多くの特徴を共有する。NT法とSH法の両方において、それぞれのプロセッサは、ある種の矩形のボックス内に入る粒子を格納する。両方の方法において、粒子の対の間の相互作用を計算するプロセッサは、典型的には、いずれかの粒子が置かれるプロセッサではなく、代わりに、対の粒子の両方をインポートする第3のプロセッサである。両方の方法において、それぞれのプロセッサは、2つの相互作用ゾーンから粒子をインポートし、1つの粒子が1つの相互作用ゾーン内にあり、他の粒子が他の相互作用ゾーン内にあるように粒子のすべての対を考慮する。
以下の説明では、従来の空間を分解する方法、SH法、NT法、およびSNT法を特別な場合として含む一般的なクラスの方法を取り上げる。一般的クラスのさまざまな特定のインスタンスの通信要件は、プロセッサ間通信ネットワークの待ち時間および帯域幅の両方を考慮して分析される。
特定の方法のパラメータを選択するための判定基準は、シミュレートすべき物理系の特性(例えば、システム次元、相互作用半径)とシミュレーションに利用可能なハードウェアの特性(例えば、ノード数、ネットワーク・トポロジ、およびノード間のキャッシュ構造および共有を含むメモリ構造)に依存する。ほとんどの実用的なパラメータ設定では、このような判定基準に従って最高の性能を発揮する方法は、一般的に、必ずしも上述の特定の方法のうちの1つではなく、むしろ、一般的なクラスの方法の異なるインスタンスである。
1.4 メッシュ・ベースの計算
上で導入されているように、粒子の間、例えば、最大相互作用半径よりも広く隔てられている粒子の間の遠距離相互作用は、計算量の少ない方法を使用して計算することができる。このようなアプローチの1つは、同時係属出願である米国出願第11/171,619号、米国出願第11/171,634号、国際出願第PCT/US2005/023184号において詳述されているようなEwald法に基づく。
Ewald法の本質は、静電ポテンシャル場を2つの主要部に分割することにあり、そのうちの一方は、実空間内で効率よく計算することができ(対毎の相互作用を計算することにより)、また他方は、シミュレーション領域上の正則グリッドで計算を使用することによりフーリエ領域において効率よく取り扱える。(ただし、Ewaldにおけるすべてのバリエーションがフーリエ領域を使用するわけではないことに留意されたい。)
フーリエ領域の計算を伴う部分の実装は、3つのフェーズに分割できる。第1に、(無限および周期的)連続3次元空間r上で定義されている離散型電荷分布
Figure 2008538441
は、
Figure 2008538441
に従って有限3次元メッシュ上で定義されている電荷分布ρ(r)にマッピングされるが、ただし、Sは、電荷拡散関数であり、演算子
Figure 2008538441
は空間畳み込みを表し、mは1次ボックス内にあるメッシュ点に対するインデックスであり、ベクトル
Figure 2008538441
はメッシュ点mから粒子iの最も近いイメージまでのベクトルである。
第2のフェーズでは、ポテンシャル関数φ(r)は、電荷分布ρ(r)に対する畳み込み演算を使用してグリッド位置で計算される。この畳み込みは、高速フーリエ変換(FFT)技術を使用して実装される。
第3のフェーズでは、粒子位置で定義されているエネルギーまたは力の量は、メッシュ・ベースのポテンシャル関数をそれらの位置にマッピングする畳み込みアプローチを使用することで見出される。特に、i番目の粒子に加えられる力は、
Figure 2008538441
として計算することができるが、ただし、
Figure 2008538441
および
Figure 2008538441
とする。第3のフェーズは、総和
Figure 2008538441
として実装することができる。
計算上では、第1のフェーズおよび第3のフェーズは、位置の対を伴う総和を必要とし、それぞれの対の一方の位置は粒子(i)位置であり、対の他方の位置はメッシュ点(m)の位置である。
1.5 文書の編成
本明細書の残り部分は、以下のように編成される。第2節から第7節までは、粒子の間の範囲制限された対毎の相互作用を計算すること、またはより一般的には、空間内の点の対に関連付けられている範囲制限された計算を実行することに適用可能なアルゴリズムに関係するが、ただし、対は、N体問題における粒子の対に対応するか、または対は、例えば、電荷拡散または力補間法の一部として1つのグリッド点と1つの粒子点に対応しうる。
第8節から第10節までは、ソフトウェアとハードウェアの技術に関係し、第2節から第7節に示されているアルゴリズムに、またはn体シミュレーションの実装全体に適用可能である。例えば第10節で説明されているハードウェア技術は、n体シミュレーションに比べてかなり広い範囲の応用に適用可能な態様を有することに留意されたい。
アルゴリズム、ソフトウェア技術、およびハードウェア技術の適用の可能性については、第11節で簡単に説明されている。
2 NT、SH、およびHS法
近年登場したNT法およびSH法は、従来の空間分解法の1例である、「1/2シェル」またはHS法とともに、以下の枠組み内で説明することができる。シミュレートされる粒子(物体)の系は、グローバル・セルと呼ばれる矩形のボックス内に入っていると仮定する。3つの方法すべてにおいて、このグローバル・セルを小さなボックスからなる正則な矩形3次元グリッドに分割する。これらの小さなボックスをホームボックスと呼ぶ。1並列実装では、ホームボックスとプロセッサとの間に1対1対応関係を割り当てるが、プロセッサとそのホームボックスは入れ換えて参照できる。これらの方法は、そのような実装の内容について以下で説明され、いくつかの代替え実装が、この説明の後に提示される。
また、粒子をインポートするホームボックスまたはプロセッサを参照する場合、これは、プロセッサが位置、物理的属性、識別など、粒子を特徴付ける情報を受け取ることを含むものとして理解されるべきである。それぞれのプロセッサは、任意の時点において、ホームボックス内にある粒子の位置を更新する役割を有する。便宜上、与えられたホームボックス(またはそのホームボックス内の任意の粒子)の基準座標は、そのホームボックスの下側座標のコーナーの座標として定義される。ホームボックスまたは粒子の論理座標は、ホームボックスの整数メッシュ座標である。それぞれのホームボックスの次元は、h×h×hである。
それぞれのホームボックスは、プロセッサが粒子をインポートしなければならない空間の領域からなるインポート領域に関連付けられている。それぞれのホームボックスは、ホームボックス内で相互作用されるべきそのホームボックス内にすでに存在してはいないすべての粒子をインポートする。NT、SH、およびHS法は、それぞれ、異なるインポート領域を使用する。
NT、SH、およびHS法はそれぞれ、空間の一方の体積内にあるすべての粒子と空間の他の体積内にあるすべての粒子とを相互作用させる。これらの体積を「相互作用ゾーン」または単に「ゾーン」と呼ぶ。これらの方法のそれぞれにおいて、2つのゾーンの共通部分がホームボックスである。
ここでは、それぞれのホームボックスに関連付けられているインポート領域の体積を、対毎の粒子相互作用の方法により必要とされる通信帯域幅(つまり、そのプロキシまたは推定)に対する単純なモデルとして使用する。このようなプロキシは、完全接続ネットワーク・トポロジに対し最も正確である。
2.1 HS法
従来の分解では、一般に、2つの粒子は、その一方が置かれているホームボックス内で相互作用する。特にHS法では、粒子の対が相互作用する位置は、粒子は小さなx基準座標とホームボックス内で相互作用すること、2つの粒子が同じx基準座標を有する場合、粒子は、小さなy基準座標とホームボックス内で相互作用すること、これらは、同じy基準座標を有する場合、小さなz基準座標とホームボックス内で相互作用することという規則に従って相互作用する。また、これらは、同じz基準座標を有する場合、同じホームボックス内にあり、相互作用はそこで完了する。同じホームボックス上の粒子間の相互作用は、「局所的相互作用」と呼ばれるが、異なるホームボックス上の粒子間の相互作用は、「遠隔相互作用」と呼ばれる。
図2を参照すると、この規則の結果として、それぞれのホームボックスは、境界の距離Rの範囲内のホームボックスの外部にある点の半分からなるインポート領域を有する。インポート領域220内のすべての粒子は、ホームボックス210内のすべての粒子と相互作用する。インポート領域210内のすべての粒子は、さらに、ホームボックス210内の他のすべての粒子と相互作用する。それと同等であるが、2つの相互作用ゾーンは、ホームボックス、およびホームボックスと1/2シェルとの和集合である。
従来のHS法は、Rよりも短い距離だけ隔てられたすべての一意的な対を考慮するように保証される。この方法は、さらに、ホームボックスの体積が有限であることにより分離距離がRを超えるいくつかの対を相互作用させることもありえる。これらの「過剰な相互作用」は、必要に応じて対レベルで排除(「フィルタ処理」)することができる。局所的相互作用は、さらに、局所的粒子間の相互作用を二重に数えるのを避けるためにフィルタ処理を必要とする。このようなフィルタ処理は、粒子の入れ子になった計算反復の内側ループ内での検査により実行される。
2.2 NT法
NT法では、2つの粒子は、1つの粒子に関連付けられているxおよびy基準座標および他の粒子に関連付けられているz基準座標を有するホームボックス内で相互作用する。より具体的には、粒子同士が相互作用するホームボックスのxおよびy基準座標は、より小さなx基準座標を持つ粒子の基準座標であるか、または両方の粒子が同じx基準座標を有する場合には、より小さなy基準座標を持つ粒子の基準座標である。粒子同士が相互作用するホームボックスのz基準座標は、他の粒子のz基準座標である。2つの粒子が同じxおよびy基準座標を有する場合、それらの粒子は、低いz座標を持つ粒子のホームボックス上で相互作用する。
図3を参照すると、それぞれのホームボックスの結果として得られるインポート領域は、「外部タワー」320および「外部プレート」330の和集合である。外部タワーは、境界の距離Rの範囲内のホームボックス310の真上にあるか、または真下にあるすべての点からなる。外部プレート330は、境界の距離Rの範囲のz平面内にあるホームボックス310の外部にある点の半分を含む。相互作用ゾーンは、ホームボックス310と外部タワー320との和集合からなる「タワー」、およびホームボックス310と外部プレート330の和集合からなる「プレート」である。
タワー(310、320)とプレート(310、330)とを相互作用させることにより、すべての近距離相互作用は、少なくとも1回だけ計算されることを保証される。しかし、それぞれの近距離相互作用が1回だけ計算されるように保証するために、HS法では必要でないフィルタ処理判定基準が使用される。つまり、局所的(つまり、ホームボックス)プレート粒子は、外部タワーの上側半分(または下側半分、ただし両方ではなく)の中の局所的タワー粒子および遠隔(つまり、非ホームボックス)粒子とのみ相互作用すべきである。
NT法のインポート要件は、ホームボックスのアスペクト比を適切に選択することにより適宜緩和することができる。最適な結果は、h=h>hのときに得られる。つまり、ホームボックスが相互作用半径およびホームボックス体積に依存する量だけz次元方向に「扁平」にされたときに最適な結果が得られ、一般に、これは、等しい体積またはほぼ等しい体積を有する牽引相互作用ゾーンに対応する。
2.3 SH法
SH法では、辺長hの立方体ホームボックスを仮定する。ここで、
Figure 2008538441
および
Figure 2008538441
を定義する。図4を参照すると、論理座標(i,j,k)(ホームボックスを含む)を有するホームボックス410のインポート領域は、2つの相互作用ゾーンの和集合からなる。第1の相互作用ゾーンは、「ベース」420と呼ぶ隣接領域であり、u∈[−r,r]および
Figure 2008538441
とする論理座標(i+u,j,k−w)を持つホームボックスの集合からなる。第2の相互作用ゾーンは、「コーム」430と呼ぶ非隣接領域の集合である。これは、v∈[−r,r]および
Figure 2008538441
とする論理座標
Figure 2008538441
を持つボックスの集合からなる。コーム430とベース420は両方ともホームボックス410を含むことに留意されたい。
コーム430とベース420を相互作用させることで、必ず、すべての近距離相互作用は、少なくとも1回計算される。HSおよびNT法に関して、必ずすべての近距離相互作用がちょうど1回だけ計算され、近距離相互作用のみが計算されるように、フィルタ処理が使用される。
3 一般化分解
一般化クラスの方法では、それぞれのプロセッサは、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に対する力と等しく、反対の向きである。非可換な相互作用も、実用上興味深く、例えば、それぞれの粒子の、近くのメッシュ点に対する影響を計算したい場合がある。)
これらの単純化は、以下では、簡略化された問題の最初の説明の後、徐々に緩和される。
ホームボックスの相互作用近傍は、任意の局所的粒子(つまり、ホームボックス内の任意の粒子)と相互作用が可能なすべての粒子を含むことを保証されている空間の最小の領域であると定義される。この簡略化された問題では、相互作用近傍は、正および負のx軸およびy軸方向にホームボックスを距離Rだけ超えて伸びる辺長2R+hの正方形である。ホームボックス内の粒子は、相互作用近傍内の粒子に影響を及ぼし、またその逆もまた然りである。
図5を参照すると、HS法の簡略化されたアナログ(上の非可換の仮定Dの観点から「1/2」シェルよりも「完全」シェル)はそれぞれのホームボックス510を伴い、相互作用近傍530内のすべての粒子のうちのそれぞれのホームボックス510内にある粒子に対する影響を計算する。この方法では、それぞれのホームボックスが、当然ホームボックス内にすでにある粒子を除いて、その相互作用近傍内のすべての粒子をインポートすることを必要とする。
図6を参照すると、NT法の簡略化されたアナログは、それぞれのホームボックス610を伴い、水平方向に相互作用近傍の端から端まで広がる1行の近傍ボックス620内のすべての粒子が垂直方向に相互作用近傍の端から端まで広がる1列の近傍ボックス630内のすべての粒子に及ぼす影響を計算する。それぞれのホームボックスは、ボックス620の行内の遠隔粒子とボックス620の列内の遠隔粒子の両方をインポートする。この方法のインポート要件は、計算された相互作用の総数が同じであるとしても、HSアナログのと比べて著しく低い。
これらの方法の両方において、それぞれのホームボックスは、相互作用ゾーンがホームボックス510とボックス620からなる空間の1つの領域内にあるすべての粒子が、相互作用ゾーンが近傍530とボックス630からなる空間の他の領域内のすべての粒子に及ぼす影響を計算することに留意されたい。これらの実施例では、それぞれの方法の2つのゾーンは重なり合う。これらの共通部分が、ホームボックス510、610である。ゾーンは、それぞれのホームボックス510、610が2つの関連付けられているゾーンとの同じ相対的空間的関係を有するという点で並進不変性がある。
これら2つの相互作用ゾーンに対し他の選択を行うと、別の分解が得られる。図7を参照すると、SH法といくつかの特性を共有する分解(以下では、「SHアナログ」と呼ぶ)は、等しい間隔で並べた水平方向スラブ720の集合からなる1つのゾーンを有し、他のゾーンは、高さがスラブの空間的周期に等しい垂直配向ブロック730からなる。ここでもまた、それぞれのホームボックス710は、2つのゾーン(720、730)内の粒子をインポートし、一方のゾーン720内の粒子が他方のゾーン730内の粒子に及ぼす影響を計算する。
図8を参照すると、他の分解では、一方のゾーン820は、ホームボックス810の中心に置かれている正方形の領域である「レンガ」を含む。他のゾーン830は、それぞれの次元における周期がゾーン820の幅に等しくなるように位置決めされたホームボックスのサイズのボックスからなる「泡」状構造である。ホームボックス810は、ゾーン830内のそれぞれの粒子に対するゾーン820内のそれぞれの粒子の影響を計算する。
3.1 畳み込み判定基準
それぞれのホームボックスに関連付けられている並進不変性ゾーンの対が与えられた場合、すべての必要な相互作用が計算されたことの検証は、畳み込みベースの判定基準を用いて実行される。ここでは、方法の受け入れ領域を、ホームボックスに影響を及ぼす空間の領域として定義する。特に、受け入れ領域は、対のレベルでさらにフィルタ処理が使用されない場合に局所的粒子に影響を及ぼすすべての遠隔粒子を含むことを保証されている空間の最小体積である。判定基準は、ホームボックスの受け入れ領域が、相互作用近傍全体を確実に含むようにすることに基づく。
受け入れ領域を見つけるには、それぞれのホームボックスが関連付けられた2つの並進不変性タイプの相互作用ゾーン、つまり「青色」ゾーンと「赤色」ゾーンを有すると仮定する。ホームボックスは、青色ゾーン内のそれぞれの粒子に対する赤色ゾーン内のそれぞれの粒子の影響を計算する。まず、関連する青色ゾーンが指定されたホームボックスを含むホームボックスの集合を見つける。次いで、この集合内のすべてのホームボックスに対する赤色ゾーンの和集合を取り、指定ホームボックスの受け入れ領域を得る。
図形を基に受け入れ領域を計算するために、まず最初に、青色ゾーンが指定ホームボックスを含むホームボックスの集合を示すように指定ホームボックスを中心とする青色ゾーンを鏡映する。2次元では、指定ホームボックスを中心とする鏡映は、指定ホームボックスを中心とする180°回転に相当する。次いで、指定ホームボックスに対し最初に有していた鏡映された青色ゾーン内のそれぞれのホームボックスとの同じ空間的関係を有するように赤色ゾーンを平行移動する。受け入れ領域は、これらの平行移動された赤色ゾーンの和集合である。
この工程は、畳み込み演算に類似している。技術的には、受け入れ領域は、赤色ゾーン上の指標関数による鏡映青色ゾーン上の指標関数の離散化畳み込みの台(support)である。このような理由から、受け入れ領域が相互作用領域全体を含むという判定基準を「畳み込み判定基準」と呼ぶ。図5から8に例示されている4つの分解について、ホームボックスの受け入れ領域は、その相互作用近傍と同一である。
図9〜11を参照すると、畳み込み判定基準も満たす他のいくつかの分解が示されている。図9に示されている分解は、図8のものと類似しているが、ここでは、特定のホームボックス910に関連付けられている2つの相互作用ゾーン920および930は、そのホームボックス910を中心としていない。ホームボックスを中心とするゾーンの対称性は必要ない。ゾーン920は、ホームボックス910の上、および右に広がっている。鏡映された場合、ゾーン920は、ホームボックスの下、および左に広がることに留意されたい。図9の分解は、さらに、ホームボックスの受け入れ領域がその相互作用近傍よりも広いという点で、またゾーン930の一部が相互作用近傍950(実線の輪郭の正方形により示されている)の外部にあるという点で図5〜8のとは異なる。相互作用近傍950の外部にあるゾーン930の一部を排除するとすれば、受け入れ領域は、もはや相互作用近傍全体を覆わなくなり、必要なすべての相互作用が計算されることが分解によりもはや保証されなくなる。
図10および11は、畳み込み判定基準も満たす他の2つの分解を示す。図10では、ホームボックス1010に対してゾーン1020も1030も、隣接していない。同様に、図10では、ホームボックス1130のゾーン1120と1130は隣接していない。
3.2 割り当て規則
分解は、それぞれのホームボックスに関連付けられた相互作用ゾーンに関して記述できる。代替え記述は、割り当て規則の形を取り、一方の粒子の他方の粒子への影響をその位置の関数として、またはそれらの粒子が最初に置かれているプロセッサ上で、計算するプロセッサを指定する。このような記述は、すでに上で示されているHSおよびNT法を含む、方法のいくつかを記述する際に無意識のうちに使用されている。
粒子aおよびbは、それぞれの次元方向にR以下の距離だけ隔てられていると仮定する。粒子aおよびbの空間座標を(x,y)および(x,y)によりそれぞれ表し、粒子aのホームボックス、粒子bのホームボックス、およびaのbに対する影響を計算するホームボックスの論理座標を(i,j)、(i,j)、および(ia→b,ja→b)によりそれぞれ表す。割り当て規則は、粒子を含むホームボックス(i,j)および(i,j)に関して、または粒子の位置(x,y)および(x,y)に関して、(ia→b,ja→b)として指定することができる。
3.2.1 HS、NT、およびSHアナログ方式の割り当て規則
図5に例示されている、HS法の簡略化されたアナログについては、割り当て規則は、(ia→b,ja→b)=(i,j)として表すことができる。図6に例示されている、NT法の簡略化されたアナログについては、割り当て規則は、(ia→b,ja→b)=(i,j)として表すことができる。
図7および8に例示されている分解方式に対する割り当て規則を指定するために、ここで、割り当て規則の指定で使用される、関数rおよびgを、
Figure 2008538441
のように整数引数について定義する。
図7の分解方式、SHアナログに対する割り当て規則は、(ia→b,ja→b)=(i,g(j,j))と表わされる。図8に例示されている、泡状方式に対する割り当て規則は、(ia→b,ja→b)=(g(i,i),g(j,j))と表わされる。
3.2.2 中間点割り当て規則
割り当て規則は、さらに、粒子aおよびbの位置に関しても指定される。例えば、mid(a,b)がaおよびbの座標の間の幾何学的中間点を表すために使用される場合(つまり、xmid(a,b)=(x+x)/2)、割り当て規則は、(ia→b,ja→b)=(imid(a,b),jmid(a,b))として表わされる。さらに一般的に、必ずしも点の幾何学的中間点ではない、粒子の座標から空間内の他の点(「中間位置」)への中間点マッピングm(a,b)を使用することができ、中間点規則は、「中間点」の適当な定義により3つまたはそれ以上の点に適用される。例えば、点の集合の中間点は、すべての点を含む最小球体の中心として定義される。他の実施例としては、平均位置がある(例えば、集合内の点の座標を平均するそれぞれの座標方向について)。
割り当て規則および相互作用半径Rが与えられた場合、規則を満たすのに必要なインポート領域は、規則に基づいて決定される。割り当て規則は、粒子位置の対から論理ホームボックス座標への多対1マッピングである。マッピングの範囲内のホームボックスについて、粒子位置の対の領域内の逆マッピングが正しく定義される。この逆マッピングは、逆マッピングにおける対のそれぞれの座標の領域の和集合を通じてホームボックスに対するインポート領域を定義する。逆マッピングは、粒子の座標に応じて、またはその論理(ホームボックス)座標に関して指定される。グローバル・セルにより粒子位置の対の領域全体において定義される割り当て規則の存在により、粒子のそれぞれの対がある種のプロセッサ上で相互作用し、畳み込み判定基準の適用がこの場合不要になることが保証される。
上の幾何学的中間点mid(a,b)を使用する中間点割り当て規則の場合、インポート領域は高々ホームボックスから距離R/2だけ伸びるが、その理由は、粒子の1つがホームボックスからR/2よりも遠く、粒子が高々Rだけ幾何学的に隔てられている場合に、中間点は必ずホームボックスの外部にあるからである。
図36を参照すると、2次元の実施例では、正方形のホームボックスのアレイを使用しており、それぞれ各辺においてh=8{A}である。ホームボックス3610は、代表的なホームボックスであり、実線はホームボックスであることを示している。この実施例では、相互作用半径は、R=10{A}である。上で提示されているように、相互作用領域3620は、ホームボックス3610を中心としてR/2=5{A}だけ広がる。粒子の代表的な対、a 3631およびb 3632は、ホームボックス3610内に入る幾何学的中間点m 3633を有し、したがって、aとbとの相互作用の計算は、そのホームボックスに割り当てられたプロセッサにより計算される。
中間点法では、さらに、3つまたはそれ以上の粒子の集合を伴う相互作用を取り扱うこともできる。半径R/2のある球体内に入るm個の粒子の全集合間の相互作用を計算したいと仮定する(m=2の場合、これは、R未満の距離だけ隔てられている粒子のすべての対の間の相互作用を計算したいという記載と同じである)。中間点法では、m個の粒子の集合間の相互作用は、その中間点を含むプロセッサ上で計算され、例えば、m個の粒子すべてを含む最小の球体の中心として定義される。m粒子の場合の中間点法のインポート領域は、2粒子の場合のと同一である。
3.2.3 擬似ランダム割り当て規則
それぞれのホームボックスについて定義されている特定のインポート領域では、相互作用に必要な粒子データは、複数のノードにインポートされるか、または複数のノード上ですでに利用可能であることがきわめて頻繁にある。例えば、ホームボックスのサイズがh=8{A}、相互作用半径がR=10{A}である図36に示されている実施例では、粒子a 3631とb 3632との間の相互作用に必要なデータは、インポート領域3622を有する、ホームボックス3612のある、プロセッサからも利用できる。一般に、この実施例では、粒子の対に対するデータは、最大9=3個のホームボックス(3次元バージョンでは、27=3個のホームボックス)に関連付けられているノードから利用できる。この特定の場合の相互作用の大半について、相互作用を実行することが可能なノードが少なくとも2つあり、さらに多くがあることはきわめて頻繁なことである。
計算を粒子の対に対するデータを有する、複数のノードのうちの1つのノードに割り当てるアプローチでは、必ずしも中間点ノードを使用しない。むしろ、このアプローチでは、計算は、少なくとも1つのノードおよび好ましくはただ1つのノードが計算を実行するように、考えられる複数のノードの集合から一般的に一様な擬似ランダムな方法で割り当てられる。例えば、これらの粒子に対するデータを有するそれぞれのプロセッサは、計算を実行すべきかどうかを決定するためにノード間の通信をあるとしても少しだけ使用して擬似ランダムな決定を下す。ただ1つのノードで相互作用を計算することが可能な場合に、この実施例では、そのノードは粒子位置の中間点を含む。
擬似ランダムな決定を実行する具体的な方法は、どのノードがコピーを持つかを示すビットベクトルを含むホームボックスにより分配される粒子に対するデータを伴う。粒子の特定の対について、ビットベクトルの論理積を取ることで、両方の粒子に対するデータのコピーを有するノードを示す。粒子aとbの両方に対するデータを有するようなノードの個数は、n_cc(a,b)と定義される。粒子のコピーを有するそれぞれのノードでは、同じ乱数発生器を使用して、0からn_cc(a,b)−1までの範囲内の同じ擬似乱数を発生する。この乱数は、論理積が実行されたビットベクトルに基づいて計算を実行するノードを識別するために使用される(例えば、n_cc番目のセットビットのビット位置を識別する)。擬似乱数発生器を実装する1方法では、特定の粒子に関連付けられている量をシードとして使用する。例えば、それぞれの粒子は、グローバル・インデックスindex、indexをそれぞれ有しており、擬似乱数発生器は、symmetric_hash(index,index) MOD rank(a,b)として実装されるが、ただし、symmetric_hash(n,m)は、よく知られている多くの技術のどれかを使用して実装されたハッシュ関数としてよい。
このアプリケーションの他の変更形態では、擬似ランダム関数は、必ずしも一様でない。例えば、目標が、必要なデータを有する利用可能なノード上に計算を展開することである場合、ランダム関数は、選択すべき粒子の対が比較的少数であるノードにバイアスされる。このタイプのバイアスは、共有負荷情報をそれらのノードに供給するか、またはデータが他のノードに送られる粒子の個数に関係する情報を送り側ノードから供給することにより組み込むことが可能である。
3.2.4 計算負荷分散
上述の擬似ランダム割り当て規則に関係するアプローチでは、一般に対毎のそれぞれの計算を実行するために複数のノードが利用可能であるという事実が負荷分散に使用され、ノード同士は連携してそれぞれの計算が1回だけ実行されるように、また計算の望ましい負荷分散が行われるようにどの計算がどのノードで実行されるかを決定する。ここでは、あるクラスの方法を「中間点保証法」と呼び、それぞれのプロセッサは、上述の中間点法でインポートされるのと同じデータをインポートするが、プロセッサへの相互作用計算の割り当ては、計算負荷がプロセッサ間により均等に分けられるように調整される。
説明を簡単にするために、まず最初に、それぞれの「ボックス」が単に長さbの区間である1次元空間についてこの方法を説明する。さらに、Rはb以下であり、m個の粒子の集合は、半径R/2の何らかの球体内にすべて入る場合に相互作用すると仮定する。プロセッサiのホームボックスが左からi番目のボックスであるようにプロセッサに番号を振る。計算は、以下ように進行する。
第1に、それぞれのプロセッサは、ホームボックスから距離R/2以内にあるすべての遠隔粒子をインポートする。
次いで、それぞれのプロセッサは、半径R/2の球体内に入る、そのプロセッサから利用可能なm個の粒子のすべての組合せからなる、局所的計算可能相互作用の集合を見つける。それぞれのプロセッサiは、局所的に計算可能な相互作用の集合を、左の隣接要素(プロセッサi−1)上でも計算可能な相互作用、右の隣接要素(プロセッサi+1)上でも計算可能な相互作用、およびプロセッサi上でのみ計算可能な相互作用の、3つの重なり合わない部分集合に分割する。これらの部分集合をそれぞれL、R、およびCと表し、そのサイズをl、r、およびcで表す。RおよびLi+1は、ちょうど同じ要素、つまり、ボックスiとボックスi+1との間の境界の距離R/2の範囲内にあるm個の粒子のすべての組合せを含み、したがって、r=li+1となる。
次いで、それぞれのプロセッサiは、ciの値をその左および右の隣接要素に送る。これは、基本的な中間点法で必要な以上にこの並列化法により必要とされる唯一の通信である。それぞれのプロセッサiは、現在、ci−1およびci+1とともに、c、l、およびrの値を持つ。
次いで、それぞれのプロセッサiは、Lにおけるどの相互作用、Rにおけるどの相互作用が計算されるのか、またこれらの相互作用のうちどの相互作用の計算が隣接要素に任されるのかを決定する。それぞれの相互作用が実際にどこかで計算されることを保証するために、隣接プロセッサは、プロセッサ間の作業量の分割に関する矛盾のない決定を下さなければならない。プロセッサiおよびi+1は、両方とも、c、ci+1、およびrの値にアクセスする(r=li+1であるため)。プロセッサiは、Rにおける第1のk個の相互作用を計算し、プロセッサi+1は、最後のr−k個の相互作用を計算するが、プロセッサiおよびi+1は、c、ci+1、およびrに基づいてkに対する同一の値を独立に計算する。相互作用の計算のミスまたは重複を避けるために、プロセッサiおよびi+1は、等価な集合RおよびLi+1において相互作用の順序について一致するようにし、そのような矛盾のない順序付けは、それぞれの相互作用に関わる粒子の位置に基づくことが可能であり、結合は電荷などの他の粒子特性により切られる。粒子の空間分布に関する事前統計情報がない場合、k
Figure 2008538441
として計算する。つまり、ci+1およびcが同一である場合、プロセッサiおよびi+1は、比較可能な負荷を有すると仮定し、したがって、ここで、Rにおける相互作用をそれらのプロセッサに均等に分割する。ci+1>cの場合、Rにおける相互作用の半分を超える分をプロセッサiに割り当て、負荷を分散させようと試みる。上記の式中のmax、min、およびround演算は、kは0からrまでの整数値のみを取りうるという事実から必要なものである。このような制限がなければ、すべてのiについて式
Figure 2008538441
により相互作用を分散させると、ci−1およびci+2が両方ともcおよびci+1の平均に等しければ同一の数の相互作用がプロセッサiおよびi+1に割り当てられる。この平均は、プロセッサiおよびi+1の両方がアクセスできる情報に基づくci−1およびci+2の妥当な推定値を表す。両方のプロセッサがci−1およびci+2にアクセスできた場合、またはプロセッサが粒子分布に関する何らかの事前統計情報(例えば、平均粒子密度)を有していた場合に、負荷分散はうまくゆく可能性がある。
この方法を高次元に一般化する方法は、いくつかの形態を取りうる。計算効率が高く、実装が容易な一般化は、インポート領域を、その外側境界がそれぞれの座標軸にそって正および負の方向に相互作用ボックスを超えて距離R/2だけ伸びている直方体となるように少し拡大すると利用可能になる。ここでは、この一般化を2次元の場合について説明するが、インポート領域の外側境界は、矩形である(相互作用ボックスが正方形であれば正方形)。相互作用ボックスの辺長はすべてインポート半径Rよりも大きいと仮定すると、個々の相互作用は、共通のコーナーを共有する4つのボックス上で、共通の辺を共有する2つのボックス上で、または単一のボックスでのみ、計算可能としてよい。ここでの戦略は、第1に、隣接する列内の2つまたは4つのボックスにより計算できるそれぞれの相互作用を一意的な1つの列に割り当て、次いで、隣接する行内のボックスにより計算できる相互作用を一意的な1つの行に割り当てることである。式1の中のr、c、およびci+1に適切な値を代入し、1次元の場合にRを分割するために使用したのと同様の手順を反復適用することによりこれらの割り当てを実行する。
より具体的には、プロセッサ(i,j)は、i番目の行およびj番目の列にあると仮定する。粒子をインポート領域内にインポートした後、プロセッサ(i,j)は、局所的計算可能相互作用の集合を、他のどのプロセッサが計算可能であるかに基づいて、9つの部分集合に分割する。これらの部分集合を
Figure 2008538441
で表すが、ただし、aおよびbは、それぞれ、値−1、0、または1を取りうる。aの値は、
Figure 2008538441
の中の相互作用が、プロセッサ(i−1,j)により計算できるか(この場合、a=−1)、またはプロセッサ(i+1,j)により計算できるか(この場合、a=1)、またはいずれでも計算できないか(この場合、a=0)を示す。bの値は、相互作用が、プロセッサ(i,j−1)により計算できるか(この場合、b=−1)、またはプロセッサ(i,j+1)により計算できるか(この場合、b=1)、またはいずれでも計算できないか(この場合、b=0)を示す。インポート領域の形状は、両方のプロセッサ(i,j)および(i+1,j+1)において計算可能である場合、かつその場合に限り、相互作用が
Figure 2008538441
にあることを意味する(これは、インポート体積が中間点法のそれに制限されていた場合には当てはまらないであろう)。隣接するプロセッサは、共有要素の集合について一致し、例えば、
Figure 2008538441
は、
Figure 2008538441
と同じ要素を含む。ここでは、
Figure 2008538441
のサイズを
Figure 2008538441
で表す。
それぞれのプロセッサ(i,j)は、値
Figure 2008538441
をプロセッサ(i,j−1)および(i,j+1)に送る。{−1,0,1}の中のそれぞれのaについて、
Figure 2008538441
内の最初の
Figure 2008538441
個の相互作用を列j内のプロセッサに割り当て、最後の
Figure 2008538441
を列j+1内のプロセッサに割り当てる。ただし、
Figure 2008538441
は、式1においてr
Figure 2008538441
を代入し、c
Figure 2008538441
を代入し、ci+1
Figure 2008538441
を代入して計算される。プロセッサ(i,j+1)は、
Figure 2008538441
のすべての相互作用に対し同一の列割り当てを独立に計算する。プロセッサ(i+1,j)および(i+1,j+1)は、
Figure 2008538441
の相互作用に対する同一の列割り当てを独立に計算し、プロセッサ(i−1,j)および(i−1,j+1)は、
Figure 2008538441
の相互作用に対する同一の列割り当てを独立に計算する。この時点で、すべての相互作用は、1つの列に一意に割り当てられている。次いで、1次元の場合についてすでに説明されているのと同じ手順を使用してそれぞれの列内のプロセッサ間に相互作用が分配される。
相互作用をプロセッサに割り当てるさらに複雑なアルゴリズムと引き換えに、基本中間点法のインポート体積のみを必要とするであろう多次元中間点保証法の式をたてることが可能である。上で説明されている中間点保証法は、粒子の集合間の相互作用が中間点を含むボックス内、または隣接するボックス(つまり、少なくとも1つのコーナーを共有するボックス)内のいずれかで常に計算されることを必要とする場合にRがボックスの辺長の1つまたは複数よりも大きい場合に直接的な方法で一般化される。この制限を撤廃する他の中間点保証法では、負荷分散をさらに改善することができる。
3.2.5 並進不変性
これまで説明してきた分解方式は、並進不変である。つまり、それぞれのホームボックスは、関連付けられている相互作用ゾーンと同じ空間関係を有する。割り当て規則により、必ずしも並進不変でない分解を記述することができる。
並進不変でない割り当て規則の1実施例として、ia→b=iであり、2進数表現ja→bの最下位ビットがjの最下位ビットであり、ja→bの他のビットがjの最下位ビットと同一である割り当て規則を考える。この分解は、図7に例示されているSHアナログの分解と類似しているが、奇数j座標を持つホームボックスのインポート領域は、偶数j座標を持つホームボックスのインポート領域と異なる。
このような非並進不変性割り当て規則を使用することで、並進不変性アプローチに制限するよりも、ツリー状ネットワークの性能を改善することができる。ツリー状ネットワークでは、隣接するホームボックスのいくつかの集合の間の通信は、隣接するホームボックスの他の複数の集合の間の通信に比べて費用がかからないか、またはより好ましい。並進不変性方式を使用すると、トロイダル・ネットワークおよび全対全相互接続方式を使用するネットワークを含む、並進不変性ネットワークの性能が最適化される可能性があるが、非並進不変性方式は、ネットワーク自体が並進不変ではない場合に好ましいと思われる。
そこで、これらのアプローチの多くは非並進不変性分解に直接またはある程度修正して適用することができることを理解したうえで、並進不変な分解に主に注目する。
並進不変な方式の部分集合は、相互作用ホームボックスの論理x座標が粒子の論理x座標にのみ依存し、y座標についても同様に依存するという意味で分離可能である。本明細書で説明されている方式の大半は、ここでもまた、アプローチの多くは、分離不可能な場合にも直接に、またはある程度修正して適用可能であるということを理解したうえで、分離可能である。
3.3 可換な相互作用
上に示されている簡略化された問題における仮定の1つ(上でDのラベルが付けられている)は、粒子aとbの対について、aのbに対する影響とbのaに対する影響を別々に計算するというものであった。大半ではないとしても多くの応用において、これらの影響は対称性を有し、これにより、ただ1つの相互作用を計算すればよい。相互作用が可換でないとしても、計算には、粒子位置などの同じ入力が必要な場合がある。これを利用して、同じホームボックスで両方の非可換相互作用を計算することにより通信要件を低減することができる。
受け入れ領域だけでなく、「伝送領域」をも含むように可換相互作用に対する畳み込み判定基準が修正される。方法の伝送領域は、ホームボックス内の粒子の影響を受けるすべての粒子を含むことが保証される空間の最小体積である。ここで、ホームボックスの受け入れ領域と伝送領域の和集合が、相互作用近傍全体を確実に含むようにすることが必要である。伝送領域および受け入れ領域は、密に関係している。受け入れ領域を決定するために使用されたのと類似の手順で伝送領域を決定することが可能であるが、ただし、「赤色」ゾーンと「青色」ゾーンの役割を反転する。その結果、伝送領域は、単なるホームボックスを中心として鏡映された受け入れ領域であることになる。2つの領域の和集合は、受け入れ領域が相互作用近傍の「対称的な半分」を含む場合かつその場合に限り相互作用近傍全体を含む。つまり、2つの領域は、受け入れ領域内に入らない相互作用近傍内の任意の点について、ホームボックスを中心とする鏡映より得られる点が受け入れ領域内に入る場合に、相互作用近傍全体を含む。
分解方法を指定するために割り当て規則が使用される場合、割り当て規則を一般化して相互作用の対称性を利用するようにする1方法では、割り当て規則を適用する前に粒子対の順序付けを行う。つまり、新しい割り当て規則は、正規順序で2つの引数の順序を決める関数の結果に適用される元の割り当て規則として定義することが可能である。例えば、順序付けは、対の中の第1の粒子が結合がyにより破られた最小x座標を有するような順序付けとする。いくつかの割り当て規則(本明細書の後の方で説明される1/8シェル法の規則など)では、相互作用計算の可換な性質を利用するように順序付けを追加する必要はない。
図12および15では、HSのインポート領域に対する可換な相互作用および図5と8の泡状アナログのそれぞれを利用する修正形態を例示している。それぞれの場合において、2つの相互作用ゾーンのうちの一方をおおよそ半分に切り分けた。それぞれの方式に対する受け入れ領域は、それぞれ破線1250および1550内に囲まれている。それぞれの場合において、受け入れ領域は、相互作用近傍の少なくとも半分を含み、受け入れ領域とホームボックスを中心とする受け入れ領域の鏡映との和集合は、相互作用近傍全体を覆う。これらの分解において、それぞれのゾーン内のすべての粒子を他のすべてのゾーン内のすべての粒子と単純に相互作用させる場合、いくつかの近距離相互作用が計算され、Rよりも大きいユークリッド距離だけ隔てられている対に対するいくつかの過剰な相互作用も計算される場合があることに留意されたい。対レベルのフィルタ処理メカニズムは、例えば、計算反復の内側ループに検査を導入することにより使用できるが、そのような検査を必ずしも必要とせずにこのような二重計算を避ける代替え方法が、以下の第6節において導入される。
3.4 丸め判定基準
上で導入されたように、上記のアプローチは、相互作用半径である、Rよりも短いユークリッド距離だけ隔てられている粒子間の相互作用の計算に関係する。簡略化された2次元問題では、したがって、それぞれの粒子は、上の仮定Bで説明されているように、辺長2Rの正方形ではなく半径Rの円内に入る粒子と相互作用する。同様に、ホームボックスの相互作用近傍は、上で考察された正方形領域の部分領域であり(仮定Bの帰結として)、部分領域のコーナーは、少なくとも一部は相互作用近傍内に入るホームボックスの限界まで伸びるのではなく「丸め」られる。この丸めを通して体積を低減するそのような相互作用近傍の使用は、インポート領域のサイズを縮小し、それにより、相互作用すべき粒子に関する情報をインポートするために必要な通信の量を減らすために活かされる。インポート領域のサイズを縮小するこの技術は、「丸め」と呼ばれる。
インポート領域の境界が丸められる程度を指定する基準は、相互作用ゾーンv内の点が、vと相互作用するゾーンの集合内の最も近い点からRよりも遠く離れている場合にゾーンから捨てられるように、表現される。この節で説明されている2ゾーン法では、このことは、赤色ゾーン内の点は青色ゾーン内のすべての点からRよりも遠く離れている場合に捨てられ、青色ゾーン内の点は赤色ゾーン内のすべての点からRよりも遠く離れている場合に捨てられることを意味する。
図16〜17のHSおよびSHアナログの丸めバージョンはそれぞれ、丸めを使用しない対応する図12および14と比較して、上で提示されている丸め判定基準に基づいて決定されるインポート領域が縮小していることを示している。図16〜17では、相互作用領域1650および1750は、それぞれ、波線により囲まれている。図17では、丸められた受け入れ領域1750は、点線で囲まれている、相互作用近傍1755を超えて伸びていることに留意されたい。丸めはインポート体積を決して増やさないが、常に縮小させるわけでもない。例えば、図15の泡状アナログまたは図13のNTアナログの特定のインスタンスのインポート領域は、丸めにより体積が減少しない。
丸め判定基準を使用することで、さらに、前の節の技術を任意のRに一般化することができ(例えば、ホームボックスの辺長の整数倍でない)、任意のホームボックス・アスペクト比に適用可能である。このような場合、相互作用ゾーンは、分数ホームボックスを含むことができる。
ボクセル化法では、相互作用ゾーンは、丸めを使用することなく、完全なホームボックスからなり(上の仮定C)、すべての局所的粒子は、その方法の受け入れ領域および伝送領域内の粒子の集合と突き合わせて近距離相互作用について検査される。相互作用近傍内のホームボックス全体がインポートされると仮定して、ゾーンが分数ホームボックスを含むように方法が丸められる場合、これはもはや正しくない。例えば、ホームボックスのコーナー近くの局所的粒子は、反対側コーナーにある局所的粒子と異なる粒子の集合と突き合わせて近距離相互作用について検査されることが可能である。インポート自体は、好ましくは、丸められた領域に制限され、このため、インポート領域内のホームボックスは、丸められた部分領域内に配置されている粒子のみを、計算を実行するホームボックスに供給する。このようにして、計算を実行するホームボックスにより考慮される、Rよりも大きな距離だけ隔てられている粒子の対が少なく、相互作用するゾーンのいくつかの対については、Rよりも大きい距離だけ隔てられた粒子の対を考慮することを回避するために計算ループ内に検査を必要としない。
3.5 高次元での分解
上述の簡略化された技術は、高次元の場合に一般化される(上記の仮定Aを緩和する)。それぞれのホームボックスが一方の並進不変性相互作用ゾーン内の粒子を他方のゾーン内の粒子と相互作用させる方法が与えられた場合、畳み込み判定基準または割り当て規則を使用して、距離R内のすべての粒子対が相互作用するかどうかを決定し、次いで、丸め判定基準により相互作用ゾーンを丸めることができる。上述の3次元HS、SH、NT、およびSNT法は、この一般的なクラスの方式の具体的なインスタンスである。
実用面で有用であることが判明した分解のクラスでは、並進不変性があり分離可能な分解を使用する。分解は、相互作用ホームボックスの論理x座標が粒子の論理x座標にのみ依存し、座標の他の次元についても同様に依存する場合に「分離可能」と呼ばれる。分離可能な分解は、次元毎に別々の分解を指定することにより記述することが可能である。このような分離可能な分解の1実施例として、それぞれの次元について2つの分解のうちのいずれかを使用することができる。
A.一方のゾーンが単一のホームボックスのみを含み、他方のゾーンが相互作用近傍の端から端まで広がるホームボックスの1つの行を含む分解。これは、図12に例示されているHSアナログと図13に例示されているNTアナログの両方の次元、および図14に例示されているSHアナログの水平方向次元についての場合である。
B.一方のゾーンが複数の隣接ホームボックスからなり、他方のゾーンは相互作用近傍の端から端まで規則正しい間隔で並ぶ個々の非隣接ホームボックスの集合からなる。これは、図15に例示されている「泡」アナログの両方の次元、および図14に例示されているSHアナログの垂直次元の場合である。
上記の分解Aは、分解Bの特別な場合とみなすことができるが、結果として得られる方法の特性に関しては、それらを別々に取り扱うのがよい。
それぞれの次元について以下の4つの選択肢のうちの1つを選択することによりそのような方法の1つのゾーンを構成することができる。
・a.すべてのホームボックス、
・a’.単一のホームボックス、
・b.その次元にわたって規則正しい間隔で並べられた個別のホームボックスの集合、
・b’.複数の隣接ホームボックスからなるブロック。
他のゾーンは、第1のゾーンに対して相補的であるという要件により一意に決定される。それぞれの次元において、aとa’とは相補的であり、bとb’ともそうである。
3つの次元では、この記述に適合する一意的な分解は20ある。ただし、1つの次元にそって相互作用ゾーンのうちの1つを半分にすることにより相互作用の可換性を利用すると仮定する。
一般性を失うことなく、「赤色」ゾーンが、第1の次元にそって半分にされることを要求する。これにより、赤色ゾーンの第1の次元に対するオプションをaおよびbに制限する。赤色ゾーンの第2および第3の次元に対し4つの選択肢のうちのどれかを選択することができる。しかし、2つの次元には区別がないため、選択肢に関してa>a’b>b’と順序付けを課し、第2のゾーンに対する選択が、第3のゾーンに対する選択よりも大きくならないという条件を付す。こうして、第2および第3のゾーンに対する分解を4+3+2+1=10通り選択することが可能であり、したがって、このクラスにおいては合計2×10=20の分解がある。一意的な分解を数えるときに、ホームボックスに関してそれぞれのゾーンの正確な位置決めなどの詳細を無視したことに留意されたい。
図2および3に例示されている、HSおよびNT法は、それぞれ、これらの一意的な分解のうちの2つである。SNTは、ホームボックス1810のゾーン1820と1830が丸められている図18に例示されているように、もう1つの分解である。図19〜21は、このクラスの他の3つの方法を示している。図20を参照すると、「クラウド」法は、丸め判定基準から結果として得られる半径が次々に小さくなってゆく一連の円形プレートからなるホームボックス1910の一方のゾーン1920およびホームボックスと連続している第2のゾーン1930を有する。図20を参照すると、「シティー」法は、丸め判定基準により切り詰められる垂直タワーの集合からなるホームボックス2010(ビューから隠されている)の一方のゾーン2020およびホームボックス2010と連続している第2のゾーン2030を有する。図21を参照すると、「泡」法は、3次元グリッド内に規則正しく配列され、丸め判定基準に従って切り詰められた部分ゾーンの集合からなる一方のゾーン2120およびホームボックス2110と連続している第2のゾーン2130を有する。
丸めは、図18〜21に例示されている方法とともに、異なる範囲において利用される。図3および18に例示されている、NTおよびSNT法は、それぞれ、2次元丸めを利用する。つまり、平面上に射影されたときにホームボックスから距離Rを超えるゾーンの部分を排除するために一方または両方の相互作用ゾーンを丸める。このような丸めにより、それぞれの粒子が半径Rおよび高さ2Rの円柱とほぼ同様の形状の囲む領域内にあるすべての粒子と突き合わせて検査されることが保証される。ホームボックスが、例えば、高い並列化限界において、Rに関して非常に小さい場合、2次元丸めにより、丸められたゾーンのサイズおよび受け入れ領域のサイズは、丸められていない場合に比べてπ/4に縮小される。図2および19〜21に例示されている、HS、クラウド、シティー、および泡法を含む他の分解では、それぞれ、3次元丸めを実行できる。つまり、これらにより、3次元空間内のホームボックスから距離Rを超える受け入れ領域の大半の部分を排除するために相互作用ゾーンの1つを縮小することができる。このような丸めにより、それぞれの粒子が、何らかのさらに大きな領域ではなく、囲む半径Rの球体とほぼ同様の形状の領域内にあるすべての粒子と相互作用することが保証される。丸められたゾーンおよび受け入れ領域のサイズは、丸められていない場合と比べてπ/6、2次元の丸めの場合と比べて2/3に縮小できる。ゾーンの3次元丸めは、3つの次元すべてにおいて分解aまたはbを使用したときに可能である。
後に記載するように、インポート帯域幅要件を最小にするために、インポート・ゾーンの体積のバランスをとることが望ましい。これは、次元が偶数の系の場合の方が容易に遂行され、その際に同じ形状を持つ2つの相互作用ゾーンを選択できる(例えば、図6)。この場合でも、典型的には、対称性を考慮することで1つの次元にそって1つのゾーンを半分にし、これでゾーンの間に体積の差が生じるが、他の手段を介してバランスをとることが可能である。奇数の次元では、2つのゾーンの間に固有の非対称性が入り込む。それでも、例えば、以下の2つの方法のうちの1つでその体積のバランスをとることができる。
・非立方体ホームボックスを使用し、ゾーンの一方を他の方法の場合よりも大きくし、他方を小さくする。これは、NT法により使用される技術である。
・一方または両方のゾーンが複数の非隣接断片(例えば、上記の分解b)を伴う方法では、断片の間の間隔を適宜選択する。これは、SH法により使用される技術である。
これらの最適化戦略は組み合わせることが可能である。後で最適化の話題に戻る。
4 共有通信
上記の中間点法は、計算の複数の異なる成分で同じ通信される粒子データを利用し、これによりそれぞれの成分が別々に並列化される場合と比べて必要な総通信量が低減されるため、分子力学シミュレーションの並列化に特に適している。一般に、最大4個までの粒子の相互作用とともに、対毎の静電気およびファン・デル・ワールス項を伴う、結合力項の評価を並列化するために使用することが可能である。さらに、これにより、結合力項の評価を含む、MD計算の複数の成分は、隣接原子の対の間の静電気およびファン・デル・ワールス力の評価のため伝達される同じデータに頼ることができる。
大半の生体分子力場内の粒子に加えられる力の合計は、分子の共有結合構造に依存する結合力項と、系内の粒子のすべての対の間の静電気およびファン・デル・ワールス相互作用からなる非結合力項との総和として表現される。結合力項は、結合により接続された2つの粒子を伴う結合長項、3つの粒子を伴い、そのうち2つの粒子は第3の粒子に結合されている結合角項、および3つの結合により接続された4つの粒子を伴う二面角項を含む。任意の結合項に関わる粒子を囲むために必要な球体の最大半径をrで表す。通常の生体分子力場では、rは、4{A}以下である。
他方、非結合力項は、系内の粒子のすべての対を伴い、したがって、計算の負担がかなり大きなものとなる。ファン・デル・ワールス力は、あるカットオフ半径rよりも大きい、典型的には9から12{A}の間で選択された距離だけ隔てられた粒子の対について典型的には無視できる距離とともに十分速やかに減少する。増える一方の一連の証拠から、カットオフを超える静電相互作用を無視することは、明確に解決するシミュレーションには不適切であることが分かっており、したがって、静電気力は、典型的には、粒子のすべての対の明示的相互作用を必要とせずに遠距離相互作用を考慮する複数の効率のよい近似法の1つにより計算される。これらの方法の実施例は、高速フーリエ変換(FFT)またはマルチグリッド・ソルバーを使用して、メッシュ上の静電ポテンシャルを、そのメッシュ上で電荷分布が与えられた場合について計算する、粒子−粒子・粒子メッシュ(PPPM)、粒子メッシュEwald(PME)、格子ガウス・マルチグリッド(LGM)、およびガウス分割Ewald(GSE)などのメッシュ・ベースのEwald法を含む。これらの方法では、修正された静電相互作用はあるカットオフ半径内で明示的に計算される必要があり、ここでは、このカットオフ半径は、ファン・デル・ワールス・カットオフ半径rと同じになるように選択されると仮定するが、典型的にはそうである。これらの方法では、さらに、フーリエ領域またはマルチグリッド計算の前に電荷が粒子から隣接メッシュ点にマッピングされること、およびその後、粒子に加えられる力が隣接メッシュ点のところのポテンシャルから計算されることが必要である。電荷拡散の計算では、それぞれのメッシュ点上の電荷は、複数の隣接粒子にわたる総和として決定されるが、力拡散の計算では、それぞれの粒子に加えられる力は、複数の隣接メッシュ点にわたる総和として計算される。電荷拡散または力拡散のいずれかにおいて、粒子とその粒子と「相互作用する」メッシュ点との間の最大距離をrで表す。rの値は、使用される長距離静電気力法のパラメータに依存するが、典型的には5{A}程度である。
中間点法を使用して明示的な対毎の静電気およびファン・デル・ワールス相互作用の計算を並列化する場合、それぞれのプロセッサは、そのホームボックスの境界からr/2の距離内にある粒子についてデータをインポートしなければならない。それぞれのプロセッサは、そのインポート領域内の粒子に力を加える相互作用を計算し、対毎の相互作用の計算が完了したら、それらの粒子のそれぞれに対する力をそれぞれの粒子のホームボックスにエクスポートしなければならない。
<r/2の場合、電荷拡散および力拡散をサポートするために、追加の通信を必要としない。明示的な非結合力の計算のインポート要件により、それぞれのプロセッサは、ホームボックス内にある任意のメッシュ点からの距離r/2の範囲内のすべての遠隔粒子を必ずインポートする。同様に、このエクスポート要件により、それぞれのプロセッサは力を遠隔粒子のこの集合に必ずエクスポートするようになる(遠隔粒子は、相互作用ボックス上にない粒子である)。ホームボックス内のメッシュ点によるそれぞれの遠隔粒子に対する力の寄与分を、チップ間通信の前の力のそれぞれに組み合わせることができる。共通の生体分子力場を使用するMD試行において、rは、通常、r/2にほぼ等しい。使用されるメッシュ・ベースのEwald法のパラメータは、r<r/2となることを保証するように調整することが可能であり、それとは別に、インポート領域は、ホームボックスの境界から距離rの範囲内にあるすべての粒子を含むように拡大することができる。
同様に、r<r/2−典型的には、通常の生体分子力場を使用するMDシミュレーションの場合と同様−の場合、結合項の計算をサポートするのに、追加の通信を必要としない。この計算は、さらに、それぞれの結合項を、その項に含まれる粒子の中間点を含むプロセッサにより計算される中間点法を使用して並列化することも可能である。明示的非結合力計算のインポート要件では、それぞれの粒子に対するデータが結合力項を計算するためにその粒子を必要とするプロセッサ上で利用可能であることを保証するが、エクスポート要件では、力の寄与分がその粒子が置かれるプロセッサにエクスポートされて戻されることを保証する。
空間分解を介して並列化されたMDシミュレーションでは、粒子は移動の際に、一方のホームボックスから他方のホームボックスへ移行する。1時間ステップで粒子が移動する最大距離r−典型的には0.1{A}未満−がr/2未満である限り、粒子の移動に付加的な通信を必要とせず、その新しい位置は、明示的な非結合相互作用に関して中間点法により必要とされるインポート・データの一部として伝達される(いくつかの場合において、データは、粒子移動が別々に実行された場合よりも多くのボックスからインポートされる必要があるが、それは、インポートされるべきデータは、相互作用ボックスから距離r/2の範囲内にある点を含むボックス上のみではなく、相互作用ボックスからr/2+rの距離の範囲内にある点を含む任意のボックス上に置かれる場合があるからである。)これは、一般的に、NT、HS、またはES法の場合に当てはまらず、その場合粒子が相互作用ボックスに近接していても、粒子がその相互作用ボックスによりインポートされることが保証されないことに留意されたい。
辺の測定長が64{A}であり、512個のプロセッサを備えるシステム上で実行され、8×8×8ボックスのメッシュに分割される、立方体グローバル・セルによる分子力学シミュレーションを考察する。ここでは、明示的な対毎の非結合相互作用について相互作用半径r=12{A}を使用すると想定する。中間点法を使用してこれらの相互作用を並列化する場合、インポート体積は5923{A}となり、結合力の計算も、中間点法を使用して並列化されるとすれば、電荷拡散、力拡散、粒子移動、または結合力の計算には、追加の通信は必要ない。他方では、HS法を使用して、明示的な対毎の非結合相互作用を並列化するには、11352{A}のインポート体積を必要とする。しかし、このインポート体積では、特定のホームボックス上のメッシュ点の近くのすべての遠隔粒子がそのホームボックス上にインポートされることは保証されない。r=4.5{A}の場合、電荷拡散は、2164{A}の追加のインポート体積を必要とし、力拡散は、追加の相当する量のデータ・エクスポートを必要とする。それぞれの項が、固定プロセッサまたは特定の粒子を含むプロセッサのいずれかで計算される、結合力に関する従来の並列化戦略は、粒子が移動する際に、追加の通信を必要とする。
ここで、中間点法のインポート領域を使用するすべての方法において、通信が同じように共有されることが予想される。また、メッシュ・ベースのEwald法が上に提示されているが、中間点法では、さらに、他の長距離静電気力法の計算の成分間の通信共有が可能になる。本質的に、これらの方法(高速多重極法および関係する関係するツリー・コード法を含む)すべてにおいて、隣接する粒子の間のいくつかの対毎の粒子相互作用が明示的に計算されることが要求され、少なくとも、この計算に必要な通信は、結合相互作用に必要な通信と共有される。
5 対リストおよび除外グループ
相互作用する粒子の対を識別することを伴うアプローチでは、粒子の複数の対が識別された時点で相互作用の計算が実行されるように計算を分配される。それとは別に、NT法などのアプローチが、相互作用する粒子の対を識別するために使用されるが、対が識別されるときに計算を実行するのではなく、対のリストが生成される。次いで、必要な計算を反復するためにリストが使用される。例えば、対毎の計算が開始する前に対のリストが完全に計算されるか、または他のソフトウェアまたはさらに多くの対が計算されている間にハードウェア・モジュールがリストを受け取り、相互作用を計算するパイプライン化アプローチが使用される。いくつかのハードウェア・アーキテクチャでは、対毎の計算から対リストの生成を分離すると、例えば、より単純なハードウェアまたはより効率的にコーディングされた内側ソフトウェア・ループを使用して対毎の相互作用を計算できるようにすることにより、計算効率を高めることができる。
対毎の粒子相互作用の計算の他の態様は、対の識別に対リストを使用することが適していようと、計算を実行することが適していようと、指定された相互作用半径内のいくつかの粒子対が計算から実際に除外されなければならないということである。例えば、分子力学シミュレーションでは、カットオフ半径Rの範囲内にあり、共有結合されていないファン・デル・ワールスおよび近距離静電相互作用(非結合相互作用)の計算が実行される。カットオフ半径を持つ粒子の対が共有結合されている場合、近距離静電気力項は含まれない。半径R内にあるが、非結合相互作用を有していない粒子の対は、除外対と呼ばれる。
粒子の結合対を伴う計算の除外を取り扱うアプローチは、(1)相互作用半径の範囲内にある粒子のすべての対の静電気力の寄与分を含め、後から共有結合されている対の力の寄与分を差し引くこと(つまり、「補正」)、および(2)第1の場所に静電気力の項を導入することを回避するため相互作用半径を持つ粒子の対を識別する際に除外対を識別することを含む。
上述のNeutral Territory法では、Rの範囲内にあるすべての対の間の相互作用を見つけて、例えば、並列マシン上に効率よく分散させることができる。しかし、この計算のときに除外を効率よく考慮するために、粒子の対が除外されるかどうかを素早く検出するための手段は、計算の効率を高めることが可能である。
1つの解決策は、対が除外されているかどうかを示すエントリを持つ粒子によりインデックス付けされたブール値行列を作成する(概念的には、is_excluded(i,j))。しかし、穏当な数の粒子の場合でも、この行列の直接的記憶域(または行列が転置対称行列なので行列の半分)は、ひどく大きなものとなる可能性がある。除外の数は、通常、粒子の個数に比例して増大するので、行列は疎行列であり、圧縮形式で格納することが可能である。
除外グループは、除外対の集合を指定するための代替え手段となる。それぞれの粒子は、粒子が割り当てられる除外グループを示す関連付けられた値を有する。2つの粒子が同じに除外グループに属している場合、それらの粒子は、除外対とみなされ、Neutral Territory法のマッチメーキング工程において破棄される。
この検査は、効率的であり、Neutral Territory法実装と範囲制限された対毎の相互作用を伴う多くの問題の物理的特性の両方にうまくマッピングされる。例えば、ここでもまた、分子力学では、同じ水分子に属している粒子の間のすべての非結合相互作用は、例えば、一般に除外される。それぞれの水分子に対応する除外グループがある場合、水除外の追加の処理は必要ない。
その使用法と割り当てについて説明するために、12個の粒子によるシミュレーションについて考察する。これら12個の粒子は、メタン分子(粒子0、1、3、6、9)、2個の水分子(粒子2、4、5、および7、8、10)、およびナトリウム・イオン(粒子11)を表す。同じ分子に属す粒子間のすべての対毎の非結合相互作用は、除外される。
粒子0、1、3、6、および9は、除外グループ2に割り当てることが可能であり、粒子2、4、および5は、除外グループ5に割り当てることが可能であり、粒子7、8、10は、除外グループ0に割り当てることが可能であり、粒子11は、除外グループ1に割り当てることが可能である。この説明から、さらに、粒子および除外グループの割り当ては、特別な順序付けを必要としないことがわかる。
6 マルチ・ゾーン法
一般に、上で考察した方法では、2つの重なり合うゾーンが相互作用する−ホームボックス/シェル、タワー/プレート、ベース/コーム、レンガ/泡、または一般的に、青色/赤色。この節では、複数のゾーンを伴う方法を考察し、その対は、使用される特定の方法に応じて相互作用するように選択することができる。そのようマルチ・ゾーン法では、インポート領域およびホームボックスは、複数の潜在的に重なり合うゾーンの集合の和集合として取り扱われる。1つのゾーン内の粒子は、他のゾーンの部分集合内のすべての粒子と相互作用する。
単純な2次元の場合のマルチ・ゾーン法を説明するために、図22に示されているインポート領域を考察する。ホームボックス2210は、+x方向にRだけ伸ばしたホームボックスに隣接する矩形2220、+y方向にRだけ伸ばしたホームボックス2210に隣接する矩形2230、および矩形2220と2230の両方に隣接する半径Rの円2240の1/4をインポートする。ホームボックス2210は、異なるゾーンとして取り扱われる。ホームボックス2210粒子は、他の3つのゾーン(2220、2230、および2240)のそれぞれの中の粒子と相互作用し、垂直矩形2230内の粒子は、水平矩形2220内の粒子と相互作用する。指定条件を満たすうえで、粒子の対は、相互作用半径Rによりフィルタ処理され、局所的相互作用(ホームボックス−ホームボックス・ゾーン相互作用において排他的に生じる)は、二重計算を避けるためにフィルタ処理されるべきである。
フィルタ演算は、さまざまな方法で実装できることに留意されたい。ホームボックスがホームボックス毎に高々ただ1つの粒子があるように粒子の周りの除外体積よりも小さい場合、考慮すべき局所的相互作用は全くない。多数の局所的相互作用がある場合、粒子IDまたは他の手段によりフィルタ処理することが可能である。それとは別に、特別なケース構文により取り扱うことが可能である。他のゾーンのようにホームボックスを取り扱うことが望ましく、ホームボックス1つ当たりの粒子の個数が適度であれば、フィックスアップ・ループが実行され、冗長な相互作用を差し引くことが可能である。ある種の近距離相互作用に対しては、さらに、ホームボックス−ホームボックス・ゾーン相互作用を正則ゾーン−ゾーン相互作用のように処理するが、結果を半分にスケーリングすることも可能である。
この方法のインポート体積は、図16に例示されている、HSアナログのインポート体積よりも常に小さい。Rがホームボックスの辺長に関して小さい場合、インポート体積は、さらに、図13に例示されている、NTアナログのインポート体積よりも小さい。
マルチ・ゾーン法の有効性は、割り当て規則を決定するか、または畳み込み判定基準を適用することによりチェックすることができる。畳み込み判定基準は、以下のように幾何学的考慮事項を用いて複数のゾーンに一般化されうる。それぞれのゾーン−ゾーン相互作用は、受け入れおよび伝送領域を生成する。すべてのゾーン−ゾーン受け入れ領域および伝送領域の和集合は、ホームボックスの相互作用近傍を覆わなければならない。
図22に例示されているこの方法は、割り当て規則
(ia←→b,ja←→b)=(min(i,i),min(j,j))
に対応する。
それとは別に、畳み込み判定基準を適用できる。ホームボックス2210と他のゾーン2220、2230、および2240との間の相互作用の受け入れ領域および伝送領域は、相互作用近傍の2つの1/4円部分以外の全部を覆う。矩形ゾーン2220と2230の相互作用は、残り部分を覆う。
特定のマルチ・ゾーン法について、粒子相互作用が考慮されるゾーンの組合せ(対)の集合は、例えば、二重計算を回避するように選択されることに留意されたい。ゾーンの組合せを考慮する際の順序またはスケジュールも指定することが可能であり、例えば、計算または通信の考慮に基づいて選択される。ゾーンの組合せを考慮する順序は、選択されたすべての組合せが考慮される限り、すべての近距離相互作用が必ず計算されるようにするために重要というわけではない。しかし、スケジュールは、通信を計算と重ね合わせるように選択することが可能である。
可換な相互作用では、スケジュールの指定は、サイズが方法におけるゾーンの数である三角行列とみなされうる。この行列内のエントリは、非負整数であり、ゾーン−ゾーン相互作用が計算される順序を指定する。ゼロのエントリは、ゾーン−ゾーン相互作用が全く計算されないことを示す。
図22の方法のスケジュールは、図23に示されている。マルチ・ゾーン法は、ゾーンの定義、ゾーン相互作用のスケジュール、および追加の冗長性フィルタ処理メカニズムに基づいて指定される。
最適なスケジュールは、この方法が実装されるネットワークおよびプロセッサの特性の影響を受ける。1アプローチとして、スケジュールを決定するが、この説明で一般に使用されるアプローチは、スケジュール行列を行について書き込み、次いで列について書き込むことを伴う。この順序により、計算の進行とともにすでに受け取られているゾーンで最大数のゾーン−ゾーン相互作用が実行される。行列の行および列に対する順序を選択した後、残りの自由度は、ゾーンの順序付けである。最適な順序の選択は、ハードウェア依存であってよいが、図23に示されているスケジュールにおいて、さらに多くのゾーン−ゾーン相互作用に関わるインポート・ゾーンは、少ないゾーン−ゾーン相互作用に関わるインポート・ゾーンの前にスケジューリングされる。
計算および通信の最大の重なり合いを可能にする相互作用の順序は、利用可能な計算ハードウェアの詳細に依存する。スケジュールを決定する手順は、以下の通りである。まず最初に、ゾーンがインポートされる順序を決定するが、ただし、ゾーンuがゾーンvよりも多いゾーン−ゾーン相互作用に関わる場合にゾーンvの前にインポートされる必要がある。次いで、インポートされる順序に応じてゾーンに番号を振り、ゾーン1は相互作用ボックスを表し、ゾーン2はインポートされる第1のゾーンを表し、ゾーン3はインポートされる第2のゾーンを表し、というように続けて行く。そこで、相互作用すべきでないゾーンの対に対応するスケジュール・エントリをゼロに設定する。次いで、列を主とした順序で残りのエントリに番号を振る、つまり、行iと列jにおける相互作用は、j<jの場合、またはj=jで、i<iの場合に、行iと列jにおける相互作用の前に計算される。これにより、すでにインポートされているゾーンの対の間の相互作用の計算は、まだインポートされていないゾーンを伴う相互作用の計算を決して待たなくてよいことになる。
マルチ・ゾーン法には、多くの実用上の利点がある。第1に、すでに知られている方法に比べて帯域幅要件を低減することが可能である。ゾーンの数を増やすことで、与えられたインポート体積についてさらに多くの近距離相互作用を計算することができるが、それは、1つのゾーン内ではなく、ゾーンとゾーンとの間の相互作用が計算されるからである。ゾーンの数を増やすことで、与えられたインポート体積についてさらに多くのポテンシャル対を考慮することができるが、それは、与えられた粒子を2つよりも多いゾーンからの粒子と突き合わせて検査することが可能だからである。付加的な効果として、マルチ・ゾーン法で追加の丸める機会を顕在化できる点が挙げられる。
第2に、マルチ・ゾーン法を使用することで、冗長な計算および/または二重計算を回避するために必要なフィルタ処理基準の多くを簡素化するか、あるいはなくすことさえ可能である。例えば、図3に例示されている、2ゾーンNT法では、冗長性フィルタ処理なしで、xおよびyの基準座標が同じである粒子間の相互作用(つまり、ホームボックス310とゾーン320からなるタワー内の)は2回計算される。しかし、NT法は、この検査の必要性をなくす形のマルチ・ゾーン法として定式化をやり直すことができる。この再定式化は以下に示されている。
第3に、さらに多くのゾーンを使用すると、時間的に前の方のゾーン組合せを実行しながら時間的に後の方にスケジューリングされているゾーン組合せについて通信を同時実行する機会を増やすことができ、これにより計算による通信遅延を「隠す」ことが可能になる。例えば、ゾーンは、そのプロセッサからデータをインポートする待ち時間に基づきスケジュールで割り当てることが可能である。次いで、ゾーン−ゾーン相互作用が実行される順序を用い、より遠くにあるゾーンをインポートしながらいくつかの相互作用を時間的に前の方で実行することが可能になる。
3次元の方法でのこれらの利点を説明するために、4つのゾーンを使用して定式化された元のNT法を考察する。ゾーンは、ホームボックス(H)310、ゾーン320の一部を形成する下側タワー(L)、ゾーン320の他の部分を形成する上側タワー(U)、および外側プレート(P)330として表されている。ゾーン相互作用スケジュールは、図24に示されている。このスケジュールにより、ホームボックス−タワー相互作用の冗長性がなくなり、特に、ホームボックスは、下側タワーとは相互作用しない。その結果、下側タワーに適用される丸め判定基準は、外側プレートから最も遠い位置にあるコーナーをトリムできる、つまり通信帯域幅を下げることが可能であることを示す。
下側タワーは、半径Rの2つの垂直な円柱の共通部分によりトリムされ、帯域幅に対する影響は、大きなRについては小さいが、小さなRについては著しいことに留意されたい。
さらに、相互作用フィルタ処理は、ホームボックス内の粒子と下側タワー内の粒子との間の相互作用をフィルタ処理する必要がもはやないため、簡略化される。図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)。
マルチ・ゾーン・スケジュール・アプローチを使用できる他の方法では、上述のいろいろな種類の相互作用ゾーンのそれぞれを一様なボクセルのコレクションに分解する。ボクセルは、ホームボックスと同じ形状を有していてもよいが、これは必要というわけではない。次いで、ボクセルのどの対が相互作用されるべきかに応じてスケジュールが指定され、より大きな相互作用ゾーン上で定義されたスケジュールと同じ結果が得られ、粒子のいくつかの対が相互作用半径の範囲内にありうるボクセルの対をスケジューリングするだけで適切な丸めが得られるという利点がさらにある。
6.1 インポート体積の下限
計算する必要のある対毎の相互作用の数を考慮することによりマルチ・ゾーン法のインポート体積(Vimport)に下限を設けている。この下限は、
Figure 2008538441

という形式をとる。
上記に関して、Nzrは、遠隔粒子をインポートするゾーンの数であり、Vは、ホームボックスの体積である。Vir,remoteは、ランダムに選択された粒子について他のプロセッサに置かれている相互作用領域の部分の予想される体積である。Vir,remoteは、R、V、およびホームボックス・アスペクト比に依存する。下限は、ゾーンの数が増えるか、Vが増大するか、またはRが減少するとともに減少する。
方法のインポート体積に対する限度の条件は、遠隔インポート・ゾーンが体積に関して平衡状態にあれば満たされ、相互作用スケジュールは、すべてのゾーンが他のすべてのゾーンと相互作用するという意味で密であり、方法は、考慮されるすべての対が非冗長遠距離相互作用であるという意味で効率的である。幾何学的には、これは、多くの場合実現可能でなく、特に相互作用半径がホームボックス次元に比較して小さいときには実現可能でない。付録では、上限におけるVir,remoteをホームボックス相互作用近傍の遠隔部分の体積で置き換えることにより有限なホームボックス・サイズ効果を近似することが可能であることが示されている。球体相互作用については、この体積(Vir,remote,eff)は、
Figure 2008538441
と表すことができる。
上の説明では、正規化されたホームボックス・アスペクト比α=h/V 1/3、α=h/V 1/3、α=h/V 1/3および並列化パラメータa=R/V 1/3が使用されている。この有効相互作用領域体積は、任意のNzrについて大きなαの限界において、また任意のαについて限界Nzr=1において正確である。
6.2 最適化優先度
対称性により、有効長距離相互作用領域の体積は、立方体ホームボックスに関して最小化される(α=α=α=1)。これにより、ホームボックス・アスペクト比とは無関係の緊密度の低い下限が
Figure 2008538441
のように得られる。
この下限は、立方体ホームボックスが最適であることを示しておらず、単に、ホームボックス・アスペクト比と無関係の下限である。下限にはαを伴う3つの項がある。これらの項は、幾何学的に、相互作用近傍の8つのコーナー(3次項)、12辺(2次項)、および6面(1次項)に由来する。
図26を参照すると、3つの項の大きさは、αの関数として例示されている。3つの項の大きさは、コーナーの項の大きさが1.0となるように正規化される。低い並列度限界では、面の項がインポート体積を決め、次いで、辺の項、そしてコーナーの項と続く。この限界において、方法により、相互作用近傍の面を覆うのに必要なインポートの体積を最小にしなければならず、その後、辺のインポートが続く。しかし、並列化パラメータが大きくなると、これらの優先度は変化する。第1の遷移点は、α>2/π〜0.64のところで生じる。この遷移の後、優先度は、辺、面、コーナーの順になる。次の遷移は、α>(9/(2π))1/2〜1.20のところで生じ、次いで、優先度は、辺、コーナー、面の順になる。最終遷移は、優先度が、コーナー、辺、面の順になったときにα>2.25で生じる。
これらの最適な優先度は、近似的であり、方法を設計する際の指針として使用されることが意図されている。正確なホームボックス・アスペクト比および方法を実行するシステムの詳細に応じて、さまざまな方法の間の正確な遷移点は異なりうる。
7 一般化分解の適用
この節では、一般化アプローチの特定のインスタンスが提示される。ほとんどの方法は、特定の意味で最適であることが実証されていないが、多くの場合において、これらの方法は、意図された形態に対する帯域幅に関して最適であるか、または最適に非常に近いと考えられる。説明されているほとんどの方法において、適用される必要のある唯一の相互作用フィルタ処理は、相互作用半径および局所的相互作用フィルタ処理である。つまり、フィルタ処理は、一般的には、同じホームボックスから出る粒子の対の場合以外、系内で粒子の対を複数考慮することを避ける必要はない。
7.1 1/8シェル法
HS法のインポート領域は、4つのコーナー・インポート部分領域、6つの辺インポート部分領域、および3つ面インポート部分領域からなる。面部分領域は、1つの次元で異なるホームボックス、2つの次元で異なる辺部分領域、および3つの次元すべてで異なるコーナー部分領域を含む。直観的には、1/2シェル法は、低い並列度限界(α<0.64)で実現可能な最良のものと思われる。しかし、この場合はそうではない。
1/8シェル(ES)法は、図22に例示されている2次元の方法の3次元への一般化である。ES法のインポート領域は、ホームボックスH2710の7つの遠隔ゾーンからなる、つまり、3つの面ゾーン(FX2720と表される+xインポート部分領域、およびy(FYは図22では隠されている)およびz、FZ2722についても同様)、3つの辺ゾーン(EX2730と表される+y+zインポート部分領域、EY2731と表される+x+z領域、EZ2732と表される+x+y領域)、および1つのコーナー・ゾーン(C2740と表される+x+y+zインポート部分領域)からなる。図23を参照すると、相互作用スケジュールは、図22に例示されている領域に対応していることがわかる。1/8シェル法は、漸近的に、インポート領域がホームボックスを囲む完全なシェルの1/8からなるためそのように呼ばれる。
ESインポート領域は、HSインポートよりも辺3つおよびコーナー3つ分だけ小さい。辺−面相互作用(相互作用9、11、および13)は、コーナーを3つ取り除いたホームボックスの相互作用によりHS法で処理される相互作用を覆う。同様に、面−面相互作用(相互作用4、6、および7)は、ホームボックスと3つの取り除かれた辺との間の相互作用により処理された相互作用を覆う。2次元の対応する方法と同様に、この方法も、割り当て規則
(ia←→b,ja←→b,ka←→b)=(min(i,i),min(j,j),min(k,k))
により記述される。全インポート体積は、
Figure 2008538441
となる。
この方法は、低い並列度限界では最適な帯域幅法となりうる。また、高い対称性を有し、さまざまなネットワーク・トポロジに関してメリットとなりうる。図29を参照すると、多くの方法の帯域幅は、1/2シェル(HS)法2910の標準と比較される。1/8シェル2914法は、立方体ホームボックスを使用した場合に、いくつかの他の方法および近似的な下限と比較される。1/8シェル法は、面領域、辺領域、およびコーナー領域を最小にするという低並列度最適化優先度に従う。最適化優先度は、異なる幾何学的カテゴリに関するインポート体積に対する寄与分の原点を並列度に応じて示す。例えば、並列度が低い場合、面インポートはインポート領域を支配し、したがって、さらなる最適化を行うため優先的に扱うために好ましい。
7.2 スライス1/2シェル法
範囲0.64<α<1.20に対するあるクラスの方法は、最適化優先度によく合う場合がある。図30を参照すると、スライス1/2シェル(SHS)は、スライスされた半球配列の4つのコーナー・インポート部分領域3010(単一ゾーンC4として表される)と5つの面インポート3020(5つのゾーンN、S、E、W、Lとして表される)からなる。SおよびW面インポートは、ホームボックス3030と相互作用しないのでNおよびE面よりも遠くで丸めることが可能であることに留意されたい。図30に対応するスケジュールは、図31に示されている。
7.3 マルチ・ゾーンNTおよびSNT法
マルチ・ゾーンNT法のスケジュールは、上で説明され、図24に示されている。図32を参照すると、図18に例示されている2ゾーンSNT法のマルチ・ゾーンは、ホームボックス3210の下にある、拡張ベース3220からなる。コーム3230およびホームボックスと同じ高さのベースの部分3240は、4つのインポート領域を形成する。コーム3250の残り部分は、残りのインポート領域を形成する。マルチ・ゾーンSNT法は、図33に示されている比較的複雑なスケジュールを有する。
NT法に関して、SNT法のマルチ・ゾーン・バージョンでは、冗長な相互作用がなくなっており、いくつかの追加の丸めの機会に対応できる。マルチ・ゾーンでは、SNT法は、さらに、コームのバーの間に間隔がない方法を含むように一般化され、次いで、拡張ベースが消え、+xインポート部分領域は、拡張ベースとしか相互作用しないので不要になる。インポート部分領域の残りの集合は、ちょうどNT法に対応する。SNT法でバー間の間隔に加えてホームボックスのアスペクト比を自由に最適化できれば、SNT法は、NT法にすることにより最適化されることがわかる。
ホームボックスのアスペクト比が固定されている場合に十分に高い並列化パラメータであれば、十分に考えて選択された周期性を持つSNT法は、NT法に比べて帯域幅の面で優れている。これは、最適化優先度を考慮することにより理解できる。より高い並列化形態に適しているが、方法は両方とも、コーナー部分領域をインポートしない。さらに、両方とも、辺状の領域を同じ数だけインポートする。しかし、固定されたアスペクト比では、NT法は、外側タワーと外側プレートとの間の体積のバランスと引き換えに面インポートの数を最適化する。SNTでは、面インポートの数と引き換えに拡張ベースと部分コームとの間の体積のバランスを最適化する。漸近的に、面インポートは、インポート体積に対する無視できる寄与分であり、固定されたアスペクト比では、SNT法で得られるインポート帯域幅はNT法に比べて低い。最適化優先度に基づく、NT法は、1.20<α<2.25の並列化形態では最も実現性が高いと予想されるが、SNT法は、α>2.25を超えたところで実現可能になると予想される。したがって、クロスバーは、図34に示されているように、立方体ホームボックスに対しα〜2.7のところにある。
7.4 泡法
泡法は、図15に例示されている方法の3次元への一般化である。泡法のこのような変更形態は、多くの丸めの機会を有し、頂部がホームボックスの頂部と同じ高さであるホームボックス上のxおよびy方向に中心を置くs×s×s次元のホームボックスのレンガをインポートする。ホームボックスは、さらに、s×s×sの周期性を持つホームボックスの泡もインポートする。泡の底部は、ホームボックスの底部と同じ高さであり、泡はこのレンガに当てて丸められ、半球構造を形成する。(低並列度限界では、レンガも丸めることが可能であるが、この方法は、その限界については競合しない。)漸近的には、この方法のインポート体積は、
Figure 2008538441
となる。
インポート体積が最小になるように周期性を最適化すると、
Figure 2008538441
となる。
したがって、最適な泡法の漸近的インポート体積は、
Figure 2008538441
となる。
泡法では、2つの遠隔ゾーンを使用する方法に対し正確な下限を漸近的に達成する。実際には、この方法は、並列化パラメータが大きい状況に最もよく適合する。図34に示されているように、泡は、〜14を超える並列化パラメータでしか競合しない。これは、プロセッサの個数が増えるとともに、インポート体積に対する泡面と泡コーナーのオーバーヘッドの相対的寄与率が非常にゆっくりとしか下がらないという事実の帰結である。
泡法の実装は、ホームボックス毎のレベルでゾーン・スケジューリングと結合し、より遠く離れているホームボックスからのインポート待ち時間を「隠す」ことができる。インポートされるホームボックスの数は、泡が実用的である場合に大きいため、ゾーン相互作用スケジュールは、簡単のため省かれる。概念的には、スケジュールの重要な要素は、ホームボックスは泡およびレンガの両方と相互作用するが、泡およびレンガは、互いに相互作用する。
7.5 通信帯域幅要件の比較
図34および35は、並列化パラメータの範囲にわたって上述の多くの方法のインポート体積をまとめたものである。立方体ホームボックスについては、ES法はα<0.8の場合にこれらの方法のうちで最もよい。NT法は、0.8<α<2.7の範囲内で最良である。SNT法は、2.7<α<〜14の範囲内で最良である。それを超えると、泡法は次第に競合するようになる。これらの遷移は、並列化に使用されるプロセッサの数に関係しうる。例えば、N=25,000個の原子およびR=12{A}とした分子力学シミュレーションを考える。生体系は、おおよそD=0.1/{A}の原子密度を有する。立方体ホームボックスが使用されており、それぞれの原子は、単一の粒子により表されると仮定すると、並列化パラメータは、これらのパラメータで
Figure 2008538441
と書くことが可能である。
図34のグラフは、〜75個未満のプロセッサを使用した場合に、1/8シェル法により通信帯域幅が最小になることを示している(適度なサイズのクラスタ)。プロセッサ数が〜75から〜2,800までの範囲(大規模クラスタ)であれば、NT法が最良である。2,800個を超えるプロセッサがある場合(例えば、BlueGeneまたはQCDOCなどでの超並列ハードウェアの範囲内)、間隔が2のSNT法で始まる、より巧妙な方法が好ましい。泡法は、極端な50万プロセッサ・レベルにおいて好ましいものとなり始める。
さまざまな方法の相対的インポート体積は、ホームボックスのアスペクト比が浮動状態になることが許されていれば、異なる。図35は、固定グローバル・セル体積およびプロセッサの個数を仮定した場合に、それぞれの方法でホームボックスのアスペクト比を最適化することが許されるときの相対的インポート体積を示している。この場合、1/8シェルは、それでも、α<〜0.8で最適であり、その後、NT法、極端な並列化レベルでの泡法と続く。浮動状態のホームボックスのアスペクト比は、完全に相互接続されたネットワークの場合に、超並列度限界において特に重要である。実際、グローバル・セルのアスペクト比は、通常、シミュレートされている現象により固定される。次いで、利用可能なホームボックスの潜在的なアスペクト比の集合は、ネットワーク・トポロジおよび/またはグローバル・セルを分割して複数のプロセッサに分ける方法の数により設定される。しかし、完全相互接続されたネットワークのトポロジは、特定のホームボックス・メッシュに有利な形でバイアスしない。同様に、シミュレーションに多数のプロセッサが利用可能である場合、特に使用されるプロセッサの正確な個数が固定されていない場合に、メッシュを非常に柔軟に分割できる。その結果、そのようなハードウェア上で、方法毎にホームボックスのアスペクト比を最適化することにより通信方式を改善することが可能である。
7.6 多粒子相互作用
上の説明では、対毎の相互作用を計算するという背景状況において、さまざまなアプローチが説明されている。これらのアプローチは、さらに、2つよりも多い粒子からなる集合の間の相互作用を計算することに適用することが可能である。例えば、分子中の原子間の力は、これらのアプローチを使用して構成される。マルチ・ゾーン・アプローチでは、例えば、ES法を使用することで、2つよりも多いゾーンの特定の組合せをスケジューリングして、そのような複数の粒子相互作用を構成することができる。
3つまたはそれ以上の粒子を伴う相互作用に対する中間点法では、粒子を含む最小球体の中心を計算するのは、m≧3のときに計算に関して自明なことではない。この計算を回避するオプションの1つは、中間点の計算を必要としない中間点保証法を使用することである。他のオプションとして、中間点に対し効率的近似を使用する方法がある。2つのこのような近似は、以下の通りである。
1.座標次元のそれぞれについて、中間点の座標を粒子の座標の算術平均として近似する。
2.座標次元のそれぞれについて、中間点の座標を粒子の座標の算術平均として近似する。
いずれかの近似を使用する場合、インポート領域を少し拡大して、相互作用する粒子の集合の近似的中間点を含むボックスがその集合内のすべての遠隔粒子をインポートするようにする必要がある。粒子の空間分布に対する制限がない場合、近似1を使用するには、インポート領域が相互作用ボックス境界から距離
Figure 2008538441
内にあるすべての粒子を含む必要があるが、これは、インポート体積の実質的増大を意味する(m−1個の粒子が境界から距離
Figure 2008538441
のところの相互作用ボックスの内側に集められ、m番目の点が境界から
Figure 2008538441
のすぐ下の距離のところの相互作用ボックスの外側に配置される場合に、中間点は境界内に入る)。しかし、ふつうの生体分子力場を使用するMDシミュレーションでは、インポート体積が少し増えるだけで十分であるが、それは、結合項に関わる粒子の空間的配列は、任意ではなく、例えば、原子の対は通常の条件の下で互いからある最小距離を保たなければならないからである。
近似2を使用するのに十分なインポート体積は、それぞれの座標軸にそって正および負の方向に相互作用ボックスを超えて距離R/2だけ伸びる直方体により囲まれている体積である。いくぶん小さな体積で十分であることを示すことができ、これは、それぞれの次元において相互作用ボックスを超えて距離R/4だけ伸びる直方体内のすべての遠隔粒子およびその直方体から距離R/4内にあるすべての粒子を含む。3またはそれよりも少ない次元で、m≧3について、このインポート体積は、粒子の空間分布に対する制限がない場合に近似1で必要とされる体積よりも常に小さい。
8 シリアル化実装
上述のアルゴリズム技術のうちの1つまたは複数を含む、粒子相互作用を計算する1アプローチでは、シリアル化されたソフトウェア実装を使用する。このような実装では、処理ノードは、シリアル化の方法でホームボックスに対する計算を実行する。例えば、それぞれのホームボックスについて、ゾーンのそれぞれの対に含まれる粒子の対の間の相互作用がプロセッサにより計算されるマルチ・ゾーン法が実装される。このようなシリアル化実装の一バージョンでは、単一の処理ノードがシリアル化の方法ですべてのホームボックスに対するすべての計算を実行する。他のバージョンでは、複数の処理ノードの集合のうちの単一の処理ノードが、例えば、空間の1領域(例えば、立方体)を一緒に定義するホームボックスの集合に関わる。処理ノードは、少なくとも一部の共通メモリを共有する多数のプロセッサを備えていてもよい。例えば、1つのノードにある複数のプロセッサのそれぞれが、プライベート・キャッシュ・メモリを備え、全体としてノードのローカルにある共有メモリにアクセスすることができる。例えば、処理ノード間で共有される他のレベルのメモリもありえるが、それは以下の説明には直接的に重要であるわけではない。
図45を参照すると、シリアル化された実装の一バージョンにおいて、プロセッサ4540は、ローカル・メモリ4550を使用している。例えば、ローカル・メモリ4550は、プロセッサ4540に関連付けられ、データのローカル・コピーをグローバル・メモリ4560内に置く、高速なキャッシュ・メモリである。グローバル・メモリ4560は、システムによりシミュレートされるグローバル・セル全体に対する粒子データ4562を保持する。
ローカルまたはキャッシュ・メモリの1態様は、典型的にはさらに大きなメモリよりも高速であるが、サイズの面で制限されている。計算反復のある配列では、他の配列に比べて、グローバル・メモリ4560へのメモリ・アクセスの回数が比較的増える可能性がある。グローバル・メモリ・アクセスの回数が計算全体に要する総時間を決定する重要な要因である範囲において、反復のそのような配列に要する総計算時間が比較的長くなる可能性がある。
そのデータが複数回使用されうる場合、ローカル・メモリ4550で計算に必要なデータの全部または大半を保持することは速度面で有利である。これにより、データの初期フェッチが比較的遅い場合があるが、データのキャッシュされているコピーを使用できるデータへのその後のアクセスは比較的高速であるという点で、メモリの総待ち時間が短縮される。
限られたサイズのキャッシュを有効に使用する1方法では、近距離相互作用を「キャッシュ・ブロック」する。「キャッシュ・ブロック」という用語は、行列同士の演算を高速化するために使用されるキャッシュ・ブロック技術のアナロジーとして使用される。大規模な行列乗算の固有の実装は、行列全体の乗算がキャッシュ・メモリ内に収まりきらないときにメイン・メモリ(帯域幅)との間で転送されるO(N)のデータを必要とする。一般に、これは、計算が続く間、行列内のエントリが繰り返しフラッシュされ、次いで、キャッシュ内にロードされる結果として生じる。しかし、それぞれの行列を「キャッシュ・ブロック」のコレクションに分けて、適切なスケジュールを決定することにより、キャッシュ・ブロックがロードされ、処理され、格納され、行列同士の乗算は、O(N)の帯域幅を持つように構造化される。
対毎の相互作用の計算では、最悪の場合、ローカル・メモリの使用、粒子の対の間のすべての相互作用の計算では、複数の粒子のうちの少なくとも1つの微粒子についてグローバル・メモリ4560にアクセスする必要がある。例えば、これは、粒子と相互作用する順序がその位置に関して機能しないか、または1/2シェル法などの方法が使用されるが、データの1/2シェル全体に対する粒子データがキャッシュに収まらない場合に生じる。このような最悪の場合の状況では、そのようなグローバル.メモリ・アクセスの回数はO((DV)(DR))=O(DVR)であり、Vはシミュレートされる体積であり、Dは粒子の密度であり、Rは相互作用半径である。つまり、DVは、粒子の総数であり、粒子の相互作用の半径内にある粒子の平均個数は、DRに比例する。平均すると、キャッシュ内に入る粒子のすべてのロード・データについて、本質的には単一の対毎の計算のみが実行される。
対毎の相互作用の計算のキャッシュ・ブロック配列において、グローバル・メモリ・アクセスの回数は、O(DV1/23/2 1/2)まで減らすことが可能である。ただし、Nは、使用される「ボクセル」の個数である。特に、シミュレートされる体積Vは、N個のボクセルに分割され、一般に、それぞれ同じ形状をとる。一般に、それぞれのボクセルは、上述の分解アプローチにおいてホームボックスに類似している。
図45を参照すると、対毎の相互作用の計算を配列することに対する一般的なアプローチは、インポート領域4570およびその関連するホームボックス(つまり、ホームボックスに関連付けられている相互作用ゾーン)に対する粒子データをローカル・メモリ4550の相互作用領域データ部分4552にロードすることを伴う。インポート領域のサイズは、ボクセルの体積および幾何学的形状に依存しており、相互作用領域内の粒子に関するデータがローカル・メモリ4550内に入りきるように選択される。このデータがローカル・メモリ内にロードされた後、相互作用領域内の粒子間の相互作用の対は、必ずしもグローバル・メモリにアクセスすることなく計算される。
グローバル・メモリへのアクセスを節約することについては、一般的に、それぞれの粒子に対するデータが対毎の計算に使用される回数から理解することができる。2相互作用ゾーンの場合、ローカル・メモリが2M個(Mは等しい体積の相互作用ゾーンのそれぞれから得られる)の粒子の粒子データを保持できる十分な大きさであれば、最大Mまでの相互作用を計算することができる。つまり、キャッシュにロードされる粒子毎に、M/2回の対毎の計算があり、その結果、素朴な最悪の場合の方法を使用してメモリ・アクセス時間に関してM/2倍の高速化が得られる。
相互作用領域の一種の1例として、2.2節で説明され、図3に例示されているようなNT法が使用される。相互作用領域4570は、複数のボクセルに分割される(ボクセル4564は、代表的なボクセルとして示されている)。ローカル・メモリ4550は、さらに、相互作用すべきボクセルの対を識別するスケジュールも含む。例えば、相互作用領域4570のタワー部分に入っているそれぞれのボクセルは、プレート部分内のそれぞれのボクセルと相互作用する。相互作用するボクセルの対毎に、それぞれのボクセルから1つの粒子が取られた、粒子のすべての対を考慮することができる。
他の実施例では、ホームボックスに関連付けられたインポート領域全体は、ローカル・メモリに必ずしも収まらない。しかし、インポート領域が、複数のゾーンの複数の対がローカル・メモリ内に収まるように複数のゾーンに分割される場合、これらは、データがローカル・メモリ内に残っている間に、マルチ・ゾーン・スケジュールおよび相互作用する粒子のすべての対に応じて、ローカル・メモリ内にロードすることが可能である。他の実施例では、ゾーンの複数の部分集合は、ローカル・メモリ内にロードされ、ロードされたゾーンの対のすべてのスケジューリングされた組合せが相互作用し、その一方で、それらのゾーンに対するデータはローカル・メモリ内に残る。これらの実施例では、一般に、M/2の高速化も、2M個の粒子がロードされ、M個の相互作用が計算される限り達成される。
ボクセルの高さの最適な選択を行うために(つまり、断面が正方形のタワーおよび比較的薄いプレート)、インポート領域の体積は、立方体ボクセルの場合と同様に、O(R)ではなく、O(R3/2)である。NT法では、ボクセルの幾何学的形状は、帯域幅が粒子総数×相互作用領域内の粒子の予想される数の平方根に合わせてスケーリングするようにボクセルの高さ(プレートの厚さ)を最適化することにより選択することができる。多くの場合、相互作用領域内に200〜400個の粒子が予想されるため、この平方根による低減は有意なものとなる可能性がある。
ローカル・メモリのさまざまなアーキテクチャを、これらのアプローチとともに使用される。1実施例では、ローカル・メモリは、グローバル・メモリと同じアドレス空間を使用するキャッシュ・メモリであり、キャッシュ・コントローラは、グローバル・メモリからの一番最近にアクセスされたデータのコピーをキャッシュに保持する。他の実施例では、ローカル・メモリがグローバル・メモリと異なるアドレス空間を使用する一様でないメモリ・アーキテクチャを使用することが可能であり、プロセッサは、明示的に、粒子データを必要に応じてグローバル・メモリからローカル・メモリにコピーする。
このアプローチは、さらに多くのデータ、例えば、ホームボックスのインポート領域全体を保持する第2のレベルのキャッシュから読み込まれる、2つの部分ゾーンを保持するための領域を第1のレベルのキャッシュに取ることができる多重レベル・キャッシュ構造に拡張することが可能である。
データをローカル・メモリにロードする際に、専用メモリ・コントローラにより補助することが可能である。例えば、データを1つのボクセルからロードするときに、プロセッサの外部のハードウェア(例えば、専用FPGA)を使用して実行される正則な一般的に比較的大きなメモリ構造を使用することができる。
それぞれのプロセッサがそれ専用のローカル・メモリを備え、すべてのローカル・メモリが共有グローバル・メモリに結合されている多重プロセッサ実装も、使用可能である。次いで、ボクセル対が相互作用するスケジュールは、一様なすべての相互作用が実行されるようにプロセッサ間に分割される。
相互作用の間に、粒子データは、データが配置されるボクセルに再度割り当てられる(前の反復で計算された力により引き起こされる粒子の運動の結果として)。データのこの分割は、効率のよいO(N)アルゴリズムを使用して実行されるが、ただし、Nは、粒子の個数である。分割工程では、1つのボクセルにそって隣接ボクセルのストリップに効率よくアクセスできるようにするデータ構造(アレイ)が構築されるか、または相互作用ゾーンをローカル・メモリにロードするときに直交軸が必要である。
処理されるボクセルの順序は、低減されたメモリ帯域幅に加えて、1つのボクセルに対する相互作用ゾーンのキャッシュ・ブロックにロードされた粒子が、次のボクセルの相互作用ゾーンに対する粒子と実質的に重なり合うように選択される。このため、さらに、ハードウェア・キャッシュの時間的局所性を高めることにより演算が高速化される。
上で説明されているように、計算は、スケジュール・ベースのループ内でローカル・メモリにロードされた粒子の対の間の相互作用を計算することを伴う。代替えとして、このループ内の相互作用の計算を遅延させ、むしろ、相互作用すべき粒子のインデックスの対のリストを計算する。次いで、このリストは第2のループ内で処理され、相互作用を実際に計算する。この第2のループは、専用ハードウェアを使用することで高速化される。対のリストはすでに計算されているため、そのような専用ハードウェアは、比較的単純なものでよい。
非可換の(例えば、グリッド−粒子間)相互作用は、複数のプロセッサが同じ出力アレイにコンフリクトを生じることなく書き込むことができるようなゾーンとボクセルの順序付けとなるように編成される。例えば、出力が電荷密度アレイとなる計算では、これにより、プロセッサ1つに1つの電荷アレイを使用する必要性も、これらの部分的電荷アレイを単一の出力アレイにまとめる必要性もなくすことが可能である。
高い最適化が行われたキャッシュ・ブロッキング法の特定のインスタンスは、上述のNT法の双対(dual)であり、4つのキャッシュ・ブロック・ゾーンを有する。第1のゾーンは、単一のホームボックス・ボクセルである。次のゾーンは、複数のボクセルからなる「タワー」である。これは、ホームボックス・ボクセル上で始まり、ホームボックス・ボクセル内の最も近い点からRの範囲内にある少なくとも1つの点を含む軸に揃えられたボクセルの射線にそったすべての非ホームボックス・ボクセルからなる。最後の2つのゾーンは、半径Rのおおよそ円形のプレートを形成する。これらの2つのゾーンは、ホームボックス・ボクセルを含むタワーに垂直な平面内でホームボックス・ボクセル内の最も近い点からRの範囲内にある少なくとも1つの点を含むすべての非ホームボックス・ボクセルからなる。これら2つのゾーンは、「yin」ゾーンと「yang」ゾーンに均等に分割される。これらは、プレートを最も都合よく分割するとyin−yangの記号のように組み合わさる対称的なゾーンが得られるため、このように名付けられている。
キャッシュ・ブロック・ゾーンは、ホームボックス−ホームボックス、ホームボックス−タワー、ホームボックス−yin、タワー−yin、タワー−yangのように相互作用する。内側ループでは、キャッシュ・ブロックの充填を利用して、これらの相互作用を2つの複合相互作用、ホームボックス−(ホームボックス、タワー、yin)およびタワー−(yin、yang)にマージする。さらに、ホームボックス−ホームボックス相互作用からの冗長な対が考慮されないように内側ループを設定する。必要な唯一のマッチメーキング基準は、距離のチェックである。
ゾーンは、インポート領域を符号化するために使用されるボクセル・ストリップが2つのプレート・ゾーンの長さ方向に平行に走るように配向される。その結果、インポート領域を符号化するために必要なストリップ非常に少なくて済む。外側ループは、それぞれの外側ループ・ボクセルに必要なプレートが、前および次の外側ループ・ボクセルに必要なプレートと重なり合い、時間的局所性を改善するようにホームボックス・ボクセルを横断する形に配列される。
上述のシリアル化された計算は、例えば、それぞれのノードでプロセッサとともにキャッシュ・ブロッキング技術を使用する、並列アーキテクチャと組み合わせることが可能であり、その一方で、異なるノードで計算を並列実行し、計算が完了した後、ノード間で結果を伝達することができる。
9 クラスタ・アーキテクチャ
上述のアルゴリズム技術のうちの1つまたは複数を含む、粒子相互作用を計算する他のアプローチでは、クラスタ・アーキテクチャを使用する。このアーキテクチャでは、多数のコンピュータが、通信ネットワーク、例えば、1つまたは複数のGigabit Ethernetセグメントにより結合される。それぞれのコンピュータは、例えば、オペレーティング・システム(例えば、Linux)を実行する汎用コンピュータとすることが可能である。
1実施例では、クラスタ内のそれぞれのコンピュータは、シミュレーション領域のホームボックスの特定の集合を割り当てられ、例えば、コンピュータを一対一方式でホームボックスに割り当てる。それぞれのコンピュータは、ホームボックスに関連付けられている粒子に対するデータ用の記憶装置を備える。それぞれの反復の開始時に、コンピュータは、例えば、範囲制限のある相互作用を計算するための中間点法を実行するのに十分な、粒子データをやり取りする。他のコンピュータも、このやり取りされたデータを使用して、例えば、第4節で説明されている通信共有アプローチを使用して、実行される。いくつかの計算は、複数のコンピュータにまたがって分散方式により実行される。例えば、GSE法の一部であるFFT計算を、分散方式で実行することが可能である。
10 並列実装
上述のアルゴリズム技術のうちの1つまたは複数を含むことができる、粒子相互作用を計算する他のアプローチでは、粒子相互作用を計算するために必要なさまざまな計算に特に適している専用ハードウェアを使用する。専用ハードウェアは、複数の処理ノードを含む並列アーキテクチャで配列され、それぞれの処理ノードは1つのホームボックスに関連付けられている計算を受け持つ。このアーキテクチャでは、ノード間通信が可能である。ノードを一配列は、3次元アレイであり、それぞれのノードは3本の直交軸にそってその6つの隣接要素と直接通信し、粒子データの通信は、複数のノードを通してデータを受け渡し宛先に届くようにすることを伴うことができる。
図37を参照すると、計算ノード3720の代表的な3次元アレイは、それぞれのノードが対応するホームボックス3710の計算を実行するように配列されている。ノードは、直交軸にそって通信経路3730によりリンクされ、任意選択で対角通信経路3735によりリンクされる。それぞれの処理ノード3720は、粒子相互作用に関連付けられている数値計算を実行する、プロセッサ3720、およびノードをその隣接ノードにリンクする通信リンク3730、3735上で粒子データを送り、受け取る役割を受け持つ、通信インターフェイス3750を備える。
ハードウェア実装の詳細を説明する前に、ハードウェアにより実行される計算は、図38を参照することで理解することが可能である。この計算は、シミュレーションのそれぞれの時間ステップで実行されるループを伴い、それぞれの時間ステップは1または2フェムト秒(fsと略記する、10−15秒に等しい)などのシミュレート時間を表す。一般に、それぞれの反復は、3つの基本ステップを伴う。速度積分3810では、それぞれの粒子に対する計算された力を使用して、その粒子の速度を更新する。位置積分3820は、更新された速度を使用して、粒子の更新された位置を計算する。力計算3830では、粒子の新しい位置を使用して、粒子に対する力を計算し、それにより反復を繰り返させることができる。
力計算は、異なる空間スケールの計算を伴う。これらの計算は、独立に実行される。これらの計算は、結合力計算3832、ミッドレンジ力計算3834、および遠隔力計算3836を含む。これらの計算のそれぞれの一部として、力累算3838で、それぞれの粒子に対する力の合計を決定し、特定の粒子に対する力は潜在的に空間スケールのそれぞれにおける計算により決定される成分を含む。それぞれの時間ステップで空間スケールのそれぞれにおいて力計算を実行する必要はない。遠隔力計算は、結合力計算に比べてそれほど頻繁には実行されないミッドレンジ計算に比べてそれほど頻繁には実行されないが、例えば、MTS(Multiple Time Scale)および/またはRESPA(REference System Propagator Algorithm)アプローチを使用する。
並列実装の他の態様は、異なるハードウェア要素をさまざまな種類または空間的スケールの計算専用とすることを伴う。例えば、ハードウェア要素は、ミッドレンジ計算ステップ3834の一部である対毎の粒子相互作用を伴う計算(または遠隔力計算3836の一部をなす粒子−グリッド計算)、および結合力計算3832の一部であるような近距離相互作用の計算専用に割り当てられる。それに加えて、力累算ステップ3838は、数値累算機能を組み込んだメモリ・システムを使用する。上で導入された多重ノード・アーキテクチャでは、それぞれのノードは、さまざまな種類の計算用のそのような専用ハードウェア要素を備える。
図39を参照すると、それぞれの計算ノード3720は、多数の計算および通信要素を備えている。柔軟なサブシステム3912は、1つまたは複数のプログラム可能なプロセッサを備える。ミッドレンジ・システム3914は、例えば、粒子の対の間の対毎の計算を実行するように適合された専用回路を備える。FFT(高速フーリエ変換)サブシステム3924は、遠隔力計算に関係する計算を実行するためにいくつかの実施形態において使用される。さらに他の実施形態は、追加の、またはより少ない専用もしくは汎用計算要素を備えることが可能である。
1つの処理ノード内の通信では、通信リンク3922により結合された多数のリング・ステーション3920を備えるリング通信アーキテクチャを使用する。システムのこのバージョンでは、ノード1つにつき8つのリング・ステーションがあり、リンクは、高速シリアル通信リンクである。それぞれのリング・ステーションは追加のリンクを有する。例えば、リンク3924は、リング・ステーションをノードの計算要素に結合する。他のリンク3730は、このノード用のリング・ステーションをプロセッサのトロイダル・メッシュの6つの隣接処理ノード3720のリング・ステーション3930に結合する。他のリンクは、リング・ステーションを、メモリ3954にアクセスするためのメモリ・コントローラ3950、および例えば、計算要素上で実行すべきロード・プログラムなどの管理機能に使用されるホスト・インターフェイス3940に結合する。
それぞれのノード上の相互接続された通信リングで構成される通信アーキテクチャは、大域的アドレス指定アプローチをサポートしており、これにより、リング・ステーションに結合されたそれぞれの計算または通信要素は、システム内の他の要素をデータ・パケットのアドレス指定先とすることが可能であり、またこれらの要素は、同じノード上にあってもよいし、他のノード上にあってもよい。さらに、以下で詳しく説明するように、通信アーキテクチャは、送信元から送られてきたデータ・パケットを、必ずしもシステム内のすべてのノードにパケットをブロードキャストすることも、送信元ノードからデータ・パケットの複数のコピーを送信することも行わずに、複数の送信先に分配することができるいくつかの形態の制限付きマルチキャストをサポートする。
一般に、図39に例示されているノード・アーキテクチャを使用した図38の流れ図に例示されている反復の実行は、複数のノードへのタスクの分割、およびそれぞれのノードの複数の計算要素への処理ステップの分割を伴う。さらに、サブシステムのそれぞれは、内部的な並列を利用する。全体として、この実装は、計算の並列処理およびパイプライン化をアーキテクチャの複数のレベルで実現する。
図40を参照すると、2つのノードに対する計算要素が例示されており、計算反復における要素間のデータ・フローの一部が示されている。ノード内、およびノード間の通信リンクは、例示されていない。例示されているデータ・フローは、速度および位置の積分ステップ(図38の3810、3820)とともにミッドレンジ力計算3834の実行に関係する。例えば、遠隔力および結合力に関係する他のデータ・フローは、この図に例示されていない。
一般に、反復時間ステップの一時点において、それぞれのノード上の柔軟なサブシステム3912は、それ専用のメモリ3954からそれが受け持つ粒子に対する粒子力データを取り出す。力データを使用することで、新しい粒子位置を決定するために必要な積分ステップを実行する。この粒子位置データは、メモリ3954に返す必要はない。むしろ、それぞれの柔軟なサブシステム3912が、その位置データをマルチキャストし、この位置データは、それらのミッドレンジ・システム3914に渡され、ミッドレンジ・システムはそのデータを使用し、例えば、上述のNT法を使って、対毎の粒子相互作用を計算する。特に、マルチキャスト・アプローチでは、それぞれのノードのミッドレンジ・サブシステムが、使用される分解アプローチに必要なインポート領域全体に対する粒子データを受け取ることが保証される。さらに、データは、必ずしもデータに対する要求または確認応答なしで、データの消費者に「プッシュ」されるため、そのような通信に関連する通信負荷および遅延が低減される。
パイプライン化方式では、ミッドレンジ・サブシステム3914は、必要な粒子データを受け取ると、対毎の相互作用の計算を開始する。例えば、1つのノードのミッドレンジ・サブシステム3914は、ノード上通信経路上で比較的迅速にそのノードのホームボックス内の粒子に対する粒子位置データを受け取り、次いで、隣接ノードから位置データを受け取ることを開始する。
ミッドレンジ・システム3914が、粒子に対する力の寄与を計算するときに、それらの寄与項をそれらの粒子を受け持つノードのメモリ3954に分配する。メモリは、それぞれの粒子に対する力の寄与分の総和を、その粒子に対する力の寄与分がさまざまなノードから届くときにメモリ側で計算できる累算機能を備える。メモリの累算機能を使用すると、異なるプロセッサが、総和(例えば、力)の成分を計算し、それをメモリに送り、そこで成分の累計が実行されるようにすることが可能である。成分の伝達には、メモリから、それらの成分を出力したプロセッサへの確認応答を必要としないため、効率的な累算が実現される。メモリは、順序に依存しないように、総和されるべき成分がメモリに届く順序に関係なく同一の結果が得られるように累算を実装する。
図40には、距離力計算の類似のパイプライン化並列手順が図40には例示されていないが、これは、ノード間のデータの複数のやり取りを使用する高速フーリエ変換(FFT)技術を利用するグリッド・ベースの計算を伴い、またいくつかの実施形態では、FFT計算を実装するために専用FFTサブシステム3916を利用する。
再び図39を参照すると、通信システムは、同じまたは異なるノード上の要素の間のパケット・ベースのメッセージ交換をサポートしている。パケットは、演算を指定するパケット・ヘッダおよび演算数(例えば、書き込みへの値)を格納するパケット本体を持つ読み出し、書き込み、累算、および読み出し−修正−書き込みを含む演算を表すことが可能である。大域的アドレス空間は、ノード内のレジスタ、メモリ・ロケーションなどに使用され、48ビット・アドレス空間はノード番号用に16ビットを予約し、それぞれのノードの4Gのアドレス・ロケーション(例えば、バイト)に残り32ビットを予約する。ノードの異なるアドレス範囲は、リング・ステーション内に格納されている経路選択情報に基づいてノード上の異なるリング・ステーションにマッピングされ、それぞれのリング・ステーションでは、異なるアドレス範囲が、リング・ステーションに結合された異なるサブシステムにマッピングされる。パケットは可変長であり、1ユニット(つまり、ヘッドのみ)から9ユニット(ヘッダと8ユニットのデータ)までの長さを持ち、それぞれのユニットは、例えば、256ビットである。
それぞれのリング・ステーションは、経路選択に関してプログラム可能であり、シミュレーション反復が開始される前に特定の経路選択パターンについて構成される。それぞれのリング・ステーションは、処理が開始する前にロードされる構成テーブルを備える。いくつかの実施例では、このテーブルにより、それぞれの着信データ・パケットに適用される生成規則の集合が指定される。一般に、それぞれのリング・ステーション内のテーブルでは、そのリング・ステーションに届いたパケットをどのように処理すべきかを指定する。入ってくるそれぞれのパケットは、送信元または送信先アドレスに基づいて、また適宜、パケットの種類に基づいて、テーブルに従って他のポート(データを他のノードの送出することができる、または同じノード上のモジュールへの途中にある)の1つ(または複数)に受け渡される。構成テーブルでは、さらに、転送される前にデータに対し実行すべきアドレス変換機能を指定することも可能である。この実施形態におけるすべてのリング・ステーションは、リング上での通信用の2つのポート、例えば、他のノードにあるリング・ステーションに接続するため、またはそのノードの計算要素に接続するための2つのクライアント・ポートを備える。
典型的には、クライアントからクライアントへ送られるメッセージは、確認応答が行われない。しかし、ある種の通信では、確認応答は、送信先要素によって生成され、同期を目的として使用されうる。この実施形態では、通信エラーがあった場合に例えば再送によりエラー訂正を実行しない。むしろ、計算は、すでにチェックポイントを通っている時間ステップから再開される。チェックポイントは、定期的に、例えば、実時間の約1秒から1分までの範囲の期間で、生成される。
マルチキャスト・メカニズムを使用した場合、さまざまな種類のデータをデータの種類に応じてノードに分配する。例えば、粒子データのインポート領域に応じて、1つのプロセッサから粒子データのコピーを必要とするプロセッサは、インポート領域の幾何学的形状により決定される。通信システムのリング・ステーションは、粒子データの送信元プロセッサが、粒子データを通らなければならない、またはデータのコピーが作成されるべき通信相互接続を監視していなくても済むように構成される。むしろ、送信元プロセッサは、タグとして、データの種類に対応するグループidをデータに付加し、通信システムは、そのデータを、通信システムの構成に応じてデータをインポートする必要のあるすべてのプロセッサに分配する。
例えば、上述のNT法の実装において、位置データを分配するためのマルチキャスト・メカニズムが実現される。マルチキャストは、マルチキャスト・グループidと呼ばれる、それぞれ異なるクラスのマルチキャスト通信に対応する、限られた範囲の送信先アドレスを使用して実装される。パケットのヘッダ内の他の場所にあるフラグは、メッセージが、ユニキャスト・パケットではなく、マルチキャスト・パケットであることを示している。マルチキャスト・パケットがリング・ステーションで受信されると、マルチキャスト・グループidおよび送信元ノード・アドレスは、ヘッダ内にあるが、調べられ、それらの値および受け取り側ノードのアドレスに基づいて、パケットが複製され、リング・ステーションの経路選択テーブルに従ってリング・ステーションの1つまたは複数の出力ポート上で送られるようにすることが可能である。したがって、異なるマルチキャスト・グループid毎に異なるパターンのマルチキャストを構成することができる。確認応答は不要であることに留意されたい。マルチキャスト・パターンの構成は、リング・ステーション間に分配され、それぞれ経路選択パターン全体のうちの限られた部分しか見えない。
それぞれのクライアント・モジュール(例えば、計算サブシステム)の内部では、インターフェイス・ハードウェアが、リング・ステーションからの「書き込み」を監視し、事前に指定された書き込みに基づいて、例えば、生成された信号のポーリングの結果として、クライアント内で適切な計算を開始することができる信号(例えば、フラグ、イベント・コード)を生成する。
トロイダル・メッシュ相互接続ネットワークに加えて、システムは、適宜、異なるパターンの通信用の他の相互接続トポロジをさらに備えることが可能である。例えば、システムの温度または圧力などのいくつかの大域的量は、計算の必要がある場合がある。大域的通信パターンも、ノードを同期させるために必要になることがある。追加のトポロジのオプションとしては、低遅延性であるが、必ずしも高帯域でないツリー構造がある。本発明の実装では、経路選択プロトコルは、メッシュ相互接続の上に層として配置され、異なる通信パターンに対する必要な種類の仮想トポロジを形成する。
1つのノードのところのそれぞれのサブシステムは、一般に、メモリ3954から分離された、それ専用の内部メモリを備える。メモリ・コントローラ3950は、多くのシミュレーション・シナリオに関して、ノードにより処理されるすべての粒子に対するデータを保持できる十分な大きさのキャッシュ(例えば、高速なスタティックRAMを使用する)を備える。メモリ3954は、さらに大容量の記憶空間を備え、これは、DRAMであってもよく、それぞれのノードがさらに多くの粒子を受け持つさらに大きな問題に使用することができる。SRAMキャッシュとDRAMとの間のデータのやり取りは、バッファリング構成をとることで調整され、一方のバッファ内にあるデータは、SRAMの他のバッファ内にあるデータが計算に使用されているときに転送される。
シミュレートされるシステムの多く(例えば、おおよそ128{A}立方以下の寸法のシステム)に関して、メモリ・コントローラ3950により管理されるメモリ3954は、必ずしも使用されないことが予想される。これらの場合、メモリ・コントローラの主な目的は、力データを累算することである。メモリ・コントローラのキャッシュは、ミッドレンジ・サブシステム内のミッドレンジまたは長距離相互作用により生成される力データおよび柔軟なサブシステムにより生成される結合項および補正の高帯域幅累算用に設計されている。特定のノードのメモリ・サブシステムは、そのノードの所有する粒子に対する力データを累算することを受け持つ。
大規模システムでは、メモリ3954は、それぞれのノードで1から2GBのDRAMを含む。このDRAMを使用するモードでは、システムは、分割することができ、システムは部分分割され−それぞれのボックスは部分ボックスに分割され−上述のアルゴリズムは、部分ボックス毎に実装され、必要な部分ボックスは必要に応じてDRAMから引き出されメモリ・コントローラ・キャッシュに送られる。また、このような部分ボックス・モードは、実際には、データがメモリ・コントローラ・キャッシュの容量を超える前に、より小さなシステム上で使用することができ、またこれにより性能上有利になる場合もあることに留意されたい。
上で説明され、図39に示されているサブシステムは、力場の評価で連携し、そのパラメータは、シミュレーション実行の開始時に指定される。シミュレーションの開始時に、力場のパラメータは、システム−関わる粒子(例えば、原子)、その接続性(例えば、共有結合)、空間内のその位置、および現在の速度−の記述とともに、よく知られており、システムのノード間に適宜分割される。特に、粒子データ(位置および速度)は、粒子のホームボックスの柔軟なサブシステム内にある。それに加えて、それぞれの結合項は、その計算を受け持つ「所有者」ノードを有する。
柔軟なサブシステム3912は、それぞれのシミュレーション時間ステップの「コレオグラファー」である。残りのサブシステムの大半は、力場の計算を受け持つが、柔軟なサブシステムは、力による加速度を計算し、時間ステップから時間ステップまで漸次速度および位置を増分する積分アルゴリズムを実装する。特定の種類のシミュレーションについて実装されている積分器は、ただ単純なだけではない積分を必要とすることがある。例えば、一定温度のシミュレーションを実装する−一般に、シミュレーション全体を通して温度の定期的計算を必要とする。これは、次いで、速度データから運動エネルギーを計算し、このデータから大域的スカラーである温度を合成する必要がある。このような特定の計算、および同様の他の計算(例えば、圧力制御)は、これらの特定のタスクのため柔軟なサブシステムをプログラムすることにより実装され、この特定の実施例では、すべてのノードの柔軟なサブシステムは、連携して、大域的な簡約の計算を実行し、この大域的スカラーを計算しなければならない。
全体的な計算時間ステップ、または柔軟なサブシステムのアーキテクチャについて詳細な説明を続ける前に、ミッドレンジ・サブシステム3914の機能および実装を考えることは有益である。
ミッドレンジ・サブシステム3914は、かなり広い範囲のアルゴリズムおよび分解をサポートするNT法の一般的実装と考えられる。サブシステムは、指定されたカットオフ半径内に局所的にある、粒子であろうと、グリッド点であろうと、点物体間のすべての対毎の相互作用を効率よく計算するように設計されている。その主なタスクは、完全な対毎の総和を通してミッドレンジ非結合相互作用を計算することである。また、電荷拡散および力補間のため、遠隔力計算の実空間成分においても使用される
図41を参照し、単一の粒子−粒子相互作用モジュール(PPIM)4100を考えることにより、ミッドレンジ・サブシステムの動作を理解することができる。一般に、粒子間の相互作用を計算するため、反復毎に、反復の始めに、粒子の1つの集合に対する粒子データを最初にPPIM内のメモリにロードする。次いで、他の集合内の粒子はPPIMを超えてストリーミングされ、ストリーミングされる粒子に力の寄与分をもたらす。反復の終わりに、PPIMに入っていた粒子に対する力の寄与分がストリーミング出力される。
PPIMにより実行される計算のいくつかの実施例では、PPIMは3つのフェーズで動作する。第1のフェーズ(図の中で丸で囲んだ番号1により示される)では、NT法の「タワー」領域内の粒子などの点の第1の集合に対するデータは、入力4110を介して受信され、PPIMのメモリ4130内に格納される。第2のフェーズでは、NT法の「プレート」領域内の粒子などの点の第2の集合に対するデータは、入力4110を介して受信され、計算要素4140に渡される。受け取った粒子毎に、計算要素は、第1のフェーズでロードされた、格納されているすべての粒子から粒子に加わる力全体(または対毎の計算量の他の累算)を計算する。この累算された力は、出力4122に渡される。この第2のフェーズでは、入力4110で受け取ったそれぞれの粒子について出力4122上に1回の力の送信があり、順序付けは温存される。第2のフェーズでは、メモリ4130内に格納されている粒子に対する力も、累算される。第3のフェーズでは、これらの力は、出力4122上で送られ、第1のフェーズにおいて入力4110で受け取ったそれぞれの粒子について1つの力が送られる。
PPIMは、多数の、例えば、3つの異なる計算用に記憶域を備える。このようにして、異なる計算は、データをリロードすることなく、PPIMにより実行可能であり、例えば、第2の計算の第1のフェーズ(データ・ロード)フェーズを第1の計算の第3のフェーズ(結果アンロード)フェーズにおいて実行される。
図42を参照すると、ミッドレンジ・サブシステムは、図41に例示されているPPIM 4100を複製することにより一定の並列度を実現しており、それぞれのPPIMが必要な一群の計算の一部のみを実行する。一般に、第1のフェーズでは、それぞれのPPIMは、粒子データの第1の集合の一部のみを受け取り、第2のフェーズでは、第2の集合内のすべてのデータを受け取る。次いで、すべてのPPIMの出力をマージし、逐次動作する単一のPPIMの場合に得られたのと同じ結果を得るようにする。
ミッドレンジ・サブシステムは、アレイPPIM 4100とともに、アレイの入力4230および出力4235上にメモリを備える。PPIMは、複数の行に配列され、それぞれの行に複数のPPIMが入っている。本発明の実装では、それぞれの行に8つのPPIMがあり、4つの行があるが、他の配列も使用可能である。
PPIMの第1の1つの行を考えて、それぞれのPPIMは入力4110(図41を参照)上でデータを修正することなく出力4112に渡し、計算の第2のフェーズで、1行の中のそれぞれのPPIMが粒子の同じ集合に対するデータを受け取るようにする。第1のフェーズで、第1の集合内の粒子に対するデータは、さらに、PPIMからPPIMに渡されるが、それぞれのPPIMは、データの別の部分のみを格納する。第2のフェーズで、それぞれのPPIMの出力4122は、入力4110で入力されたそれぞれの粒子に対する1つの累算された力を含む。それぞれのPPIM(最初の後、一番左)、PPIMは、入力4220でそれぞれの粒子に対する部分的に累算された力を受け取り、その粒子に対する入力の寄与分を計算要素により計算される寄与分とともに内部的に総和し、これにより出力4122は再び入力4110上で粒子毎に1つの力を有する。したがって、PPIMのそれぞれの行は、単一のPPIMとして機能するが、さらに多くの計算を並列に実行し、したがって、より高いスループットが得られる。
第3のフェーズでは、それぞれのPPIMは、そのPPIMにロードされた第1の集合内のそれぞれの点に対する累算された力をストリーミング出力し、行内の「下流」PPIMは修正なしでその力データを受け渡し、その行で生成された全体的な順序は第1のフェーズでPPIM行に粒子がロードされた順序と一致する。
PPIMの複数の行を考えた場合、粒子の第1の集合に対するデータは、それぞれの行が第1の集合の別の部分を有するように読み込み時に分割される。データは、分配ユニット4210の集合に通され、この分割が行われる。その結果、それぞれのPPIMがメモリ4130内に点の第1の集合の異なる部分を保持することになり、それらのPPIMはすべての点を一緒に保持する。
第2のフェーズで、分配ユニット4210は、粒子の同じシーケンスがPPIMのそれぞれの行に送られ、したがってその行内のそれぞれのPPIMにも送られるように、粒子データを複製する。この結果、PPIMのそれぞれの行は、第2の集合内のそれぞれの粒子に対する力を生成し、これらの力は、それらの行にわたって累算されなければならない。この累算は、累算ユニット4220により実行される。
第3のフェーズで、累算ユニット4220は、第1の集合内の粒子に対する力データを連接し、これにより、最後の累算ユニット4220の出力において、第1の集合内の粒子に対する力は、第1のフェーズで粒子データがアレイに渡されたとの同じ順序で出る。
ミッドレンジ・サブシステムは、フロントエンド・メモリ4320を備え、これは、柔軟なサブシステムからマルチキャストされた粒子データを受け取っている。コントローラ(図に示されていない)は、このメモリへの書き込みを監視し、必要なデータが利用可能になったときにアレイへのデータの受け渡しを調整する。サブシステムは、計算された力(または他のデータ)を提示するために使用される、バックエンド・メモリ4235を備える。このデータは、処理の完了を待つことなく、メモリ・サブシステムに送られ、これにより一部の力はメモリに送られ、他の力はまだ計算されていないことに留意されたい。
図43を参照すると、それぞれのPPIMは、他のレベルの並列性を実装している。それぞれのPPIMは、複数のマッチメーキング・ユニット(MU)4350を含む。本発明の実装では、それぞれのPPIMは、8つのMUを備える。上でメモリ4130に格納されていると説明されている(図41を参照)、第1のフェーズでPPIMに分配された粒子データは、実際には、MU内のメモリ4332に分配される。つまり、第1の集合内の粒子は、MU間に分割される。第2のフェーズでは、PPIMが受け取ったすべての粒子は、それぞれのマッチメーキング・ユニットを流れ過ぎ去る。第2の集合内の受け取ったそれぞれの粒子について、MUの計算要素4342は、主に粒子間の距離に基づき(ただし排他的ではなく)、相互作用が計算される場合にどの点がそのMUのメモリ4332内に格納されているかを判定する。計算要素4342は、コンセントレータ4360に選択された対を渡すが、計算要素はそのような選択された対をMUのそれぞれから受け取り、本質的に、選択された対を逐次的に粒子−粒子相互作用パイプライン(PPIP)4344に受け渡すアービトレータとして機能する。次いで、PPIPは、他の粒子、または対からのポテンシャル・エネルギーの寄与によりそれぞれの粒子に加わる力を計算する。PPIPは、識別および粒子間距離に基づき、表引きおよび補間により計算される粒子のかなり一般的な関数を計算するように構成されうる。例えば、PPIPは、多数の異なる関数形式をサポートするように実装または事前構成され、PPIPにロードされるデータによりその関数形式内の特定の関数が決定される。PPIPは、格納されている粒子のうちの異なる粒子について第2の集合内のそれぞれの粒子に対する力を累算し、累算された力を出力4122に渡し、その一方で、格納されている粒子に加えられる力をメモリ4334に格納する。第3のフェーズでは、メモリ4334に格納されているこれらの力は、出力4122にストリーミング出力される。
PPIPのいくつかの実装では、PPIPにより計算することが可能な関数は、区分的解析関数として表される。つまり、引数値の範囲の集合のそれぞれの中で、引数の関数を決定するためにパラメータ付き解析関数が使用される。データ構造体に、引数値の対応する異なる範囲に対する解析関数のパラメータを格納する。引数値の範囲の異なるサイズが解析関数の異なるパラメータに対応しうるように、可変精度アプローチが使用され、例えば、引数値のある範囲の方が、他の範囲よりも、高い精度または正確さが得られる。係数の選択は、2つの段階に分けて実行される。第1に、引数範囲は、N個の粗範囲に分けられ、それぞれ異なるサイズを取ることができる。それぞれの粗範囲は、同じ数n個の部分範囲に分けられ、それぞれの粗範囲内で、部分範囲は同じサイズを持つ。特定の入力引数について、まず最初に、粗範囲が決定され、次いで、解析関数の適切なパラメータを調べるためにその粗範囲内の部分範囲が決定される。したがって、係数の集合はN×n個ある。使用可能な係数の集合が限定された個数だけあるとすると、理想関数に対する関数の正確さは、引数範囲に従って選択されうる。 このような理想関数の1実施例は、ercf(1/R)であり、解析関数の1実施例は、2次関数である。
ミッドレンジ・サブシステムのPPIMアレイは、さらに、本明細書の前の方で説明されているGSE法の電荷拡散および力補間計算にも使用されている。電荷拡散および力補間の両方について(遠隔計算の最初の1/3部分と最後の1/3部分)、第1のフェーズにおいて、粒子がPPIMに分配され、第2のフェーズにおいて、グリッド位置がPPIMを超えてストリーミングされる。隣接するノードのホームボックスに対するグリッド位置がストリーミングされるだけでなく、現在のノードのホームボックスのグリッド位置もストリーミングされることに留意されたい。NT方を使用するこの計算では、粒子相互作用に対する順序付けがあり、2つの等しいが向きが反対の力は一度に計算されないため、「フルプレート」が必要であることに留意されたい。電荷拡散では、データが、第3のフェーズでPPIMにより累算されること、ストリーミング出力されることを必要としないが、力の補間では、PPIMは、第2のフェーズにおいて、出力を行う必要はなく、補間された力は第2のフェーズで累算され、第3のフェーズでPPIMからストリーミング出力される。
柔軟なサブシステム3912は、さらに、サブシステム内に並列性を実装する。図44を参照すると、計算要素4410のグループは、比較的独立して並列に機能する。それぞれの粒子がシステム内の特定のノードに割り当てられるだけでなく(つまり、粒子を保持しているホームボックスに関連付けられたノード)、それぞれの粒子がそのノードの柔軟なサブシステム内の特定のグループ4410に割り当てられる。本発明の実装では、計算要素4410のグループは4つある。
それぞれのグループ4410は、プロセッサ4414を備える。それぞれのプロセッサは、通信リング上でアクセスされるメモリ・システムが裏で働いているデータおよび命令キャッシュ(32KB)4412を備える。多くのアプリケーションにおいて、キャッシュ4412は、反復に必要なすべてのデータを保持することができる十分な大きさである。それぞれのプロセッサは、データをメモリから通信リング上でプロセッサ4414によりアクセス可能なメモリ4416に転送するための直接メモリ・アクセス(DMA)機能を含む機能を実装する、リモート・アクセス・ユニット(RAU)4418を備える。プロセッサが受け持つ粒子データは、メモリ4416内に保持され、RAU 4418は、プロセッサ4414にロードすることなくDMAアプローチを使用してメモリ・サブシステムからそれらの粒子に対する力データを取り出す。RAUは、通信インターフェイスを通じてリング・ステーションに結合されており、出力を集めて、柔軟なサブシステムへの入力を適切な要素に分配する(例えば、受信されたパケットのアドレスに基づく)。
それぞれのプロセッサは、以下で「ジオメトリ・コア」(GC)と呼ぶ多数のスレーブ専用コプロセッサ4420を備える。本発明の実装では、2つのGCがプロセッサ毎にある。それぞれのGCは、4方向SIMDアーキテクチャのDual Issue VLIWパイプライン化ALUを備え、内(「ドット」)積の計算を含む「幾何学的」プリミティブを含む。それぞれのGCは、レジスタがインターリーブ方式でn個のベクトル・レジスタとして、または4n個のスカラー・レジスタとしてアドレス指定可能なベクトル/スカラー・レジスタ・アーキテクチャを使用しており、スカラーの結果は、後の計算に必要な場合のためにレジスタの一部に直接入れることができる。GC用にプロセッサから供給される受け入れキューがあり、GCからの出力は、プロセッサによる処理がなくてもメモリ・システムにフィードバックすることが可能である。
GCは、結合力項を計算するために使用される。それぞれの結合は、特定のGCに割り当てられ、プロセッサは粒子位置データをやり取りし、それぞれのプロセッサは、GCに結合力寄与分の計算をさせるために必要とされるデータを持つ。結合力の寄与分を計算するプロセッサは、その結合された対の粒子のどれをも受け持たなくてもよいことに留意されたい。通信要件を緩和できる最適化として、周期的に(例えば、2000時間ステップ毎に)、プロセッサおよびGCへの結合の再割り当てが実行される。
計算反復において、粒子位置データは、システム全体のノードの柔軟なサブシステムのプロセッサのメモリ4416間に分散される。そこから、粒子位置は、対毎の相互作用の計算のためミッドレンジ・サブシステムに送られ、結合項の計算のため他のプロセッサに送られる。
柔軟なサブシステム3912は、さらに、GCにより計算された値に補正項を加えるために使用される補正プロセッサ4430を備える。補正プロセッサは、一般的な計算アプローチの1例を実装する。一般形式では、データ集合の大部分Aに対し1つの計算が実行され、データ集合の小さな部分bに対し第2の計算が実行され、Aとbが完全なデータ集合の1パーティションを形成し、計算の結果がそのデータ集合にわたって累算(またはより一般的に簡約)される場合、データ集合全体にわたって第1の計算を実行して累算し、次いで、小さな部分bについて、第1の計算の結果を再計算して減算し、第1の計算の結果を計算して加算すると効率的である可能性がある。例えば、部分bでデータ集合の要素を除外しなくてよいようにすることにより、第1の計算は、規則正しい(つまり、条件または例外のない)反復により効率的なものとすることができる。粒子相互作用の背景状況において、データ集合全体(つまり、Aとb)は、相互作用半径以内にある粒子の対の集合に対応する可能性があり、第1の計算は、例えば、PPIMアレイで計算されるような非結合相互作用とすることができ、第2の計算は、GCで計算されるような結合相互作用とすることができる。したがって、PPIMアレイにおける力計算から相互作用半径以内にある粒子の結合対を除外しなくても、粒子間の結合相互作用がGCで計算される場合、補正プロセッサ4430は、粒子のその対についてPPIMで計算される非結合項の負を計算し、それを結合項に加算してから、メモリに送り、累算する。いくつかの実装では、補正プロセッサは、PPIP 4344と同じ計算構造を備え、さらに、全く同じ非結合項が、合計からの減算について必ず計算されるようにする。
一般に、柔軟なサブシステム内にホストされる主要な計算が3つあり、結合力項、制約項、および積分(制約条件なしで実行される)、および制約条件を考慮した最終的に更新される位置である。遠隔力の計算では、プロセッサおよびGCは、さらに、専用FFTサブシステムを備えないシステムのバージョンでFFT計算を実行する。
柔軟なサブシステムを使用してFFT計算を実行するシステムのバージョンでは、遠隔力は、ミッドレンジ・システムを使用して最初に電荷をグリッド位置に分配することにより計算される。これらの分配された電荷は、シミュレーション体積全体にわたるグリッドについて分散FFT計算を実行する柔軟なサブシステムに戻される。FFTは、プロセッサ(および関連するGC)間に分配され、ノード間で中間結果をやり取りする複数のフェーズを必要とする。FFT反復の終わりに、グリッド位置のポテンシャルを表す変換されたデータは、ミッドレンジ・サブシステムに戻され、そこで、そのデータは粒子に対する補間された力を計算するために使用される。次いで、これらの補間された力は、遠隔力項がそれぞれの粒子について計算された他の力項と組み合わされようとされまいと、メモリ・サブシステムに送られる。
本発明のシステムでは、それぞれのノードは、メモリ3954およびリモート・リング・ステーション3930を除き、図39に示されているすべての計算および通信サブシステムを含む特定用途向け集積回路(ASIC)を使用して実装される。バックプレーンを通して相互接続されている複数の回路基板のそれぞれに複数のASICが配列される。したがって、ノード間通信リンク3730は、回路基板のローカルにあるか、またはバックプレーンを通じて引き回される。
11 応用
上述のアルゴリズム技術、またはハードウェアもしくはソフトウェア技術は、さまざまな用途に適用可能であり、そのうち一部は、生体分子シミュレーションに関係し、他はそうではない。応用例としては、例えば以下のものがある。
分子力学、モンテカルロ・シミュレーション、または他のサンプリング技術を使用することに関係する生体分子シミュレーションの応用は、限定することなく、最初に、タンパク質構造予測、タンパク質構造のホモロジー・モデルの精密化、タンパク質折り畳み速度論のモデル化、タンパク質−リガンド結合自由エネルギーの計算、タンパク質の対が相互作用するかどうかの判定、結合部位および結合自由エネルギーの判定、毒性研究、水和自由エネルギーの計算、タンパク質設計、アロステリック変化およびタンパク質機能のモデル化、膜タンパク質のシミュレーション、核酸のシミュレーション、炭水化物類のシミュレーション、上記とそれらの間の相互作用の組合せのシミュレーション、血液脳関門透過を含む、膜透過の予測、分子力場発生、および結晶構造のシミュレーションを含むことができる。
応用は、さらに、材料科学応用、天気シミュレーション、流体力学的シミュレーション、状態方程式シミュレーション、宇宙物理学シミュレーションなどの他の分野も伴うかもしれない。
12 代替え
代替えとして、分散処理のさまざまな配列形態が上述の計算分解とともに使用される。
処理ノードとホームボックスとの間に一対一対応関係がある必要もない。例えば、それぞれのノードは、n×n×nの立方体のホームボックスなどの、ホームボックスの集合に関与しうる。ホームボックスのそのようなより細かな定義の用途の1つは、マルチ・ゾーン・スケジュール・アプローチであり、ゾーン間相互作用のスケジュールを使用することで重複計算の検査の必要をなくしたり、改善された丸めを通じて通信量を低減したりすることが可能である。そのようなより細かなホームボックスの他の用途は、相互作用ゾーンのそれぞれの対に関わる計算をシリアル化し、処理ノードのそれぞれにおける、ローカル・キャッシュ・メモリなどのローカル・メモリを有効に利用することである。メモリ利用の態様は、直列実装に関して以下で詳細に記載される、
並列実装の代替えバージョンでは、それぞれのノードは、ホームボックス内に配置されたものよりも多い粒子に対するデータを保持する。「クローン・バッファ」アプローチは、中間点割り当て規則アプローチとともに使用される。特に、それぞれのノードは、ホームボックスの境界を超えて距離R/2だけ伸びる領域から粒子データを格納する。それぞれの計算フェーズの後、拡張された領域内のすべての粒子に対する力がそのノードに送られ、これにより、粒子の新しい位置を冗長に計算することが可能になる。計算フェーズでは、例えば、中間点割り当て規則または擬似ランダム割り当て規則を使用して、粒子データをさらにインポートすることは必要ないが、その理由は、拡張領域が必要なすべての粒子を含むからである。
上記のアプローチは、ソフトウェア、ハードウェア、またはハードウェアとソフトウェアとの組合せを使用して実装することが可能である。例えば、システムの代替えバージョンは、ソフトウェア、ファームウェア、デジタル電子回路、コンピュータ・ハードウェア、他の実装様式、またはそのような様式の組合せで実装することが可能である。システムは、プログラム可能なプロセッサまたは複数のプログラム可能なプロセッサを備えるシステムにより実行する、磁気もしくは光ディスクまたは半導体メモリなどの機械可読記憶装置デバイスで明確に具現化されたコンピュータ・プログラム製品を含むことができる。プログラム可能なプロセッサは、汎用プロセッサであるか、または例えば、上述の種類の計算用に設計された専用プロセッサであってよい。並列実装では、例えば、専用相互接続ネットワークを使用することができるか、またはより汎用のデータ・ネットワーキング・アプローチを使用することができる。方法ステップは、入力データを操作し、出力を生成することにより命令からなるプログラムを実行して機能を実行するプログラム可能なプロセッサにより実行することが可能である。システムは、データ記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取り、データ記憶装置システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスにデータおよび命令を送るように結合された少なくとも1つのプログラム可能なプロセッサを備えるプログラム可能なシステム上で実行可能である1つまたは複数のコンピュータ・プログラムで実装されうる。それぞれのコンピュータ・プログラムは、高水準手続きプログラミング言語、オブジェクト指向プログラミング言語、または必要ならばアセンブリもしくは機械言語で実装することができる。そのような言語は、コンパイラ言語またはインタプリタ言語としてよい。好適なプロセッサは、例えば、汎用マイクロプロセッサおよび専用マイクロプロセッサのいずれか(または両方)を含む。一般に、プロセッサは、読み取り専用メモリおよび/またはランダム・アクセス・メモリから命令およびデータを受け取る。一般に、コンピュータは、データ・ファイルを格納するための1つまたは複数の大容量記憶装置デバイスを備える。そのようなデバイスは、内蔵ハードディスクおよびリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、または光ディスクを含む。コンピュータ・プログラムの命令およびデータを明確に具現化するのに好適な記憶装置デバイスは、例えば、EPROM、EEPROM、およびフラッシュ・メモリ・デバイスなどの半導体メモリ・デバイス、内蔵ハードディスクおよびリムーバブル・ディスクなどの磁気ディスク、光磁気ディスク、およびCD−ROMディスクを含む、あらゆる形態の不揮発性メモリを含む。前記は、いずれも、特定用途向け集積回路(ASIC)などの特定用途向けハードウェアに組み込まれるか、または補足されることが可能である。
他の実施形態も、付属の請求項の範囲内にある。
尚、国際出願の英文明細書中にJISコードで表記できない箇所があったため、この翻訳文では代替表記を使用した、具体的には、
{A}は、
Figure 2008538441
のように、国際出願の明細書ではオングストロームを意味する記号で表現されていたが、便宜上、翻訳文では{A}と表現した。
さまざま分解方法の非対称的スケーリングの表。 Half−Shell(HS)法に対する領域の斜視図。 Neutral Territory(NT)法に対する領域の斜視図。 Snir’s Hybrid(SH)法に対する領域の斜視図。 Half−Shell(HS)法の簡略化された2次元アナログの領域の図。 Neutral Territory(NT)法の簡略化された2次元アナログの領域の図。 Snir’s Hybrid(SH)法と一部の特性を共有する2次元分解の領域の図。 2次元分解の領域の図。 2次元分解の領域の図。 2次元分解の領域の図。 2次元分解の領域の図。 可換な相互作用に対するHalf−Shell(HS)法の簡略化された2次元アナログの領域の図。 可換な相互作用に対するNeutral Territory(NT)法の簡略化された2次元アナログの領域の図。 可換な相互作用に対するSnir’s Hybrid(SH)法と一部の特性を共有する2次元分解の領域の図。 可換な相互作用に対する2次元分解の領域の図。 丸めを使用する可換な相互作用に対するHalf−Shell(HS)法の簡略化された2次元アナログの領域の図。 丸めを使用する可換な相互作用に対するSnir’s Hybrid(SH)法と一部の特性を共有する2次元分解の領域の図。 丸めを使用する(SNT)法に対する領域の斜視図。 「クラウド」法に対する領域の斜視図。 「シティー」法に対する領域の斜視図。 「フォーム」法に対する領域の斜視図。 2次元マルチ・ゾーン法の領域の図。 図22に例示されている領域に対する計算スケジュール。 図3に示されている分解のマルチ・ゾーン・バージョンに対する計算スケジュール。 図24の計算スケジュールに対応するアルゴリズム。 計算寄与率対並列度のグラフ。 「1/8シェル(ES)」法に対する領域の斜視図。 図27に示されている分解に対する計算スケジュール。 インポート体積対並列度のグラフ。 「スライス1/2シェル」法に対する領域の斜視図。 図30に示されている分解に対する計算スケジュール。 丸めを使用する(SNT)法に対する領域の斜視図。 図32に示されている分解に対する計算スケジュール。 インポート体積対並列度のグラフ。 インポート体積対並列度のグラフ。 2次元擬似ランダム割り当て法の領域の図。 並列実装のブロック図。 流れ図。 処理ノードの複数の要素を含むブロック図。 処理反復におけるデータ・フローを例示する図。 粒子間相互作用モジュール(PPIM)の機能ブロック図。 ミッドレンジ・サブシステムのブロック図。 PPIMの一実装のブロック図。 柔軟なサブシステムのブロック図。 シリアル化実装のブロック図。

Claims (81)

  1. 計算領域内に配置された物体に関連する計算を実行する方法であって、
    該複数の一群の計算の一部のうちのそれぞれの一部について、一群の計算の該一部において該計算を実行することであって、
    該一群の計算の該一部に関連付けられており、該計算領域の一部である複数のインポート領域のそれぞれに配置された物体のデータを受け取ること、
    複数の該インポート領域の所定の複数の組合せのうちのそれぞれの組合せについて、物体の集合に関連付けられている計算を実行すること
    を備え、物体の該集合のそれぞれについて、該集合の少なくとも1つの物体が該組合せの該それぞれのインポート領域に配置されている、方法。
  2. 複数の前記インポート領域の前記組合せの少なくとも一部は、それぞれ、前記インポート領域の対からなる、請求項1に記載の方法。
  3. 一群の計算の前記一部のそれぞれは、マルチ・ノード計算システムの異なるノード上で実行される、請求項1に記載の方法。
  4. 前記インポート領域から物体の前記データを受け取ることは、前記計算システムの前記ノードのうちの少なくとも2つを結合する通信媒体からデータを受け取ることを含む、請求項3に記載の方法。
  5. 一群の計算の前記一部のそれぞれは、計算システム上で順次実行される、請求項1に記載の方法。
  6. 一群の計算の前記一部は、前記計算システムのメモリ制限に従って選択される、請求項5に記載の方法。
  7. さらに、一群の計算の前記一部のそれぞれを計算フェーズの反復シーケンスにおける反復に関連付けることを備える、請求項1に記載の方法。
  8. 前記インポート領域から物体の前記データを受け取ることは、前記反復の前記計算を実行するプロセッサに関連付けられているローカル・メモリ内に前記データをロードすることを含む、請求項7に記載の方法。
  9. 一群の計算の前記一部のそれぞれは、前記計算領域の別の部分領域と関連付けられる、請求項1に記載の方法。
  10. 一群の計算の前記一部のそれぞれについて、前記インポート領域は、前記一部が関連付けられている前記計算領域の前記部分領域から分離している、請求項9に記載の方法。
  11. 一群の計算の前記複数の一部に関連付けられている前記部分領域は、前記計算領域のパーティションを形成する、請求項9に記載の方法。
  12. 前記部分領域は、前記計算領域の正則なパーティションを形成する、請求項9に記載の方法。
  13. 前記部分領域は、前記計算領域の直線的なパーティションを形成する、請求項12に記載の方法。
  14. 計算のそれぞれの一部における前記計算を実行することは、さらに、
    物体の集合に関連付けられている計算を実行することであって、該集合のそれぞれの物体は一群の計算の前記一部に関連付けられている前記部分集合内に配置されている該集合のそれぞれについて、計算を実行すること、
    物体の集合に関連付けられている計算を実行することであって、1つの物体が一群の計算の前記一部に関連付けられている前記部分集合内に配置され、該集合の他の物体が一群の計算の前記一部に関連付けられている前記インポート領域内に配置されている該複数の集合のそれぞれについて、計算を実行すること
    を含む請求項9に記載の方法。
  15. 物体の前記集合のそれぞれの物体が一群の計算の前記一部に関連付けられている前記部分領域内に配置されている物体の該集合に関連付けられている計算を前記実行することは、前記インポート領域からの物体に対する前記データを受け取りながら遂行される、請求項14に記載の方法。
  16. 一群の計算のそれぞれの一部内の前記計算を実行することは、さらに、
    物体の集合に関連付けられている計算を実行することであって、該集合のそれぞれの物体は一群の計算の前記一部に関連付けられている前記インポート領域の1つに配置され、該集合のどの物体も一群の計算の前記一部に関連付けられている前記部分領域内に配置されていない、計算を実行すること
    を含む請求項9に記載の方法。
  17. 一群の計算のそれぞれの一部内で前記計算を実行することは、前記インポート領域に応じて指定された計算のスケジュールを適用することを含む請求項1に記載の方法。
  18. 前記一群の計算における前記計算のそれぞれは、その計算に関連付けられている物体の前記集合の相互作用を特徴付けるデータの計算を含む、請求項1に記載の方法。
  19. 前記一群の計算における前記計算のそれぞれは、その計算に関連付けられている物体の前記集合の識別をデータ構造体に記録することを含む、請求項1に記載の方法。
  20. さらに、前記データ構造体に記録された物体の前記複数の集合のそれぞれの相互作用を特徴付けるデータの計算を実行すること、を備える、請求項19に記載の方法。
  21. 一群の計算のそれぞれの前記一部内の前記計算を実行する際に、物体のどの集合についても、物体のその集合に対する計算は、前記部分集合の高々1つにおいて実行される、請求項1に記載の方法。
  22. 複数のインポート領域の選択された複数の組合せの少なくとも一部では、前記複数のインポート領域のそれぞれにおいて1つの物体のすべての組合せについて計算が実行される、請求項1に記載の方法。
  23. 一群の計算のそれぞれの前記一部内の前記計算を実行する際に、物体のどの集合についても、物体のその集合に対する計算は、前記部分集合の高々1つにおいて実行される、請求項22に記載の方法。
  24. 前記工程は、一連の時間ステップ毎に反復され、それぞれの時間ステップで実行される前記計算は後続の時間ステップで使用する前記計算領域内の前記物体の位置を更新するために使用される、請求項1に記載の方法。
  25. 計算領域内に配置された物体に関連付けられている一群の計算を実行する方法であって、該一群の計算内の該計算のそれぞれは該物体の対に関連付けられ、該方法は、
    複数のゾーンからなる近傍内に配置された物体に対するデータを受け取ること、
    該ゾーンと異なるゾーン内に配置されている物体の対に関連付けられている計算を実行すること
    を備え、
    少なくとも1つの該ゾーンの空間的な広がりは、該ゾーンのうちの他のゾーン内のすべての点からの最小の距離よりも遠く離れている該ゾーンのうちの1つのゾーン内の少なくとも一部の点を排除するように決定される、計算領域内に配置された物体に関連付けられている、方法。
  26. 前記空間的な広がりは、計算が実行される物体の対の間の距離閾値に基づいて決定される、請求項25に記載の方法。
  27. 前記複数のゾーンのうちの1つのゾーンの空間境界は、前記複数のゾーンのうちの他のゾーン内の点までの最小の距離に従って決定される、請求項25に記載の方法。
  28. 前記複数のゾーンのうちの少なくとも1つのゾーンは、非平面境界を含む、請求項25に記載の方法。
  29. 前記計算領域は、複数の正則領域に分割され、前記複数のゾーンのうちの少なくとも1つのゾーンは、該正則領域のうちの1つの領域の全部ではない一部を含む、請求項25に記載の方法。
  30. 前記計算領域は、複数の正則領域に分割され、それぞれの領域は、前記一群の計算の一部に関連付けられる、請求項25に記載の方法。
  31. 前記近傍は、前記複数の正則領域のうちの1つに対応する、請求項30に記載の方法。
  32. 計算領域内に配置された物体に関連付けられている一群の計算を実行する方法であって、該計算領域が複数の正則領域に分割され、該一群の計算内の該計算のそれぞれは該物体の集合に関連付けられ、該方法は、
    該正則領域の少なくとも一部について、該正則領域の、複数のゾーンを含む近傍内に配置された物体に対するデータを受け取ること
    を備え、
    該複数のゾーンは、該計算領域の少なくとも2つの次元に分布している部分と隣接しない少なくとも1つのゾーンを含む、方法。
  33. 前記一群の計算に含おけるそれぞれの計算は、物体の対に関連付けられる、請求項32に記載の方法。
  34. 前記近傍は、2つのゾーンからなり、物体の前記対毎に、前記対の一方の物体が、前記2つのゾーンのうちの異なる1つのゾーン内に配置される、請求項33に記載の方法。
  35. 前記複数のゾーンは、少なくとも1つの隣接ゾーンを含む、請求項32に記載の方法。
  36. 前記隣接ゾーンは、前記正則領域に隣接する、請求項35に記載の方法。
  37. 前記複数のゾーンのうちの少なくとも2つのゾーンは、前記計算領域の1つの次元方向に伸長される、請求項32に記載の方法。
  38. 少なくとも1つの前記ゾーンは、前記計算領域の少なくとも1つの他の次元方向に拡がる、請求項37に記載の方法。
  39. ローカル・メモリに結合されたプロセッサを使用して計算領域内に配置された物体に関連付けられている計算を実行する方法であって、
    複数の一群の計算の一部を反復実行することであって、それぞれの反復において、計算の一群の該複数の一部のうちの一部を実行することは、
    一群の計算の該一部に関連付けられている、該計算領域の一部である複数のインポート領域のそれぞれに配置された物体のデータを該ローカル・メモリにロードすること、
    物体の対に関連付けられている計算を該プロセッサ上で実行することを含み、対毎に、該対の一方の物体が、該インポート領域の第1の部分に配置され、該対の他方の物体が、該インポート領域の第2の部分に配置される、反復実行すること
    を備える方法。
  40. 物体の対に関連付けられている前記計算を前記実行することは、前記インポート領域の前記第1の部分と前記第2の部分の所定の複数の組合せのそれぞれについて実行される、請求項39に記載の方法。
  41. 物体の前記対に関連付けられている前記計算を実行することは、前記対の一方の物体が前記インポート領域の前記第1の部分に配置され、前記対の他方の物体が前記インポート領域の前記第2の部分に配置されている物体の実質的にすべての対に関連付けられている計算を実行することを含む、請求項39に記載の方法。
  42. 計算領域内に配置された物体に関連付けられている計算を実行する方法であって、
    該計算領域の複数の部分領域のそれぞれについて、対応する個別の記憶領域内に該部分領域内の物体のデータを保持することであって、該部分領域は、少なくともいくつかの物体が複数の該記憶領域内に保持されるように重なり合う、データを保持すること、
    該部分領域のそれぞれについて、該対応する記憶領域からその部分領域内の物体の該データにアクセスし、且つその部分領域内の該物体のうちの2つまたはそれ以上の物体の集合に関連付けられている計算を実行すること
    を備える、方法。
  43. 前記個別の記憶領域のそれぞれは、マルチ・ノード計算システムの1つのノードに関連付けられる、請求項42に記載の方法。
  44. 前記部分領域内の前記物体の複数の対に関連付けられている前記計算を実行することは、前記部分領域に対応する前記記憶領域に関連付けられている前記ノードに対し実行される、請求項43に記載の方法。
  45. 前記個別の記憶領域のそれぞれは、異なるノードに関連付けられる、請求項43に記載の方法。
  46. 前記部分領域のそれぞれは、ホーム領域、および前記ホーム領域から少なくとも所定の距離だけ広がっている領域を含む、請求項42に記載の方法。
  47. 前記ホーム領域は、前記計算領域の1つのパーティションを形成する、請求項46に記載の方法。
  48. 前記所定の距離は、物体間の対毎の相互作用について少なくとも相互作用半径の半分となっている、請求項46に記載の方法。
  49. 前記部分領域内の物体の前記複数の対に関連付けられている前記計算を実行することは、前記複数の物体の位置の中点が前記部分領域に対する前記ホーム領域内にある物体の対について計算を実行することを含む、請求項48に記載の方法。
  50. 計算領域内に配置されている物体の集合間の相互作用を計算する方法であって、
    物体の複数の該集合のうちの1つに関連付けられているそれぞれの計算について、該複数の物体のそれぞれの位置から決定された該物体の該集合の中間位置に基づいて前記計算を実行するための複数の計算ユニットのうちから1つの計算ユニットを決定すること
    を備える、方法。
  51. 前記中間位置は、前記複数の物体のそれぞれの物体の前記位置の幾何学的中点に従って決定される、請求項50に記載の方法。
  52. 前記中間位置は、前記複数の物体のそれぞれの物体の前記位置を囲む最小球体の中心に従って決定される、請求項50に記載の方法。
  53. 前記計算ユニットのそれぞれは、マルチ・ノード計算システムの1つのノードに関連付けられる、請求項50に記載の方法。
  54. 前記計算ユニットのそれぞれは、異なるノードに関連付けられる、請求項53に記載の方法。
  55. 前記計算ユニットのそれぞれは、前記複数のノードのうちの1つに関連付けられる、請求項53に記載の方法。
  56. 前記計算領域は、前記複数の計算ユニットのうちの1つの異なる計算ユニットにそれぞれ関連付けられる複数の正則領域に分割される、請求項50に記載の方法。
  57. 物体の前記複数の集合の少なくともいくつかに関連付けられている計算を実行するための前記計算ユニットを決定することは、前記集合の前記中間位置が前記計算ユニットに関連付けられている前記正則領域内にあるかどうかに基づく、請求項56に記載の方法。
  58. 物体の前記複数の集合の少なくともいくつかに関連付けられている計算を実行するための前記計算ユニットを決定することは、前記集合の前記中間位置が前記計算ユニットに関連付けられている前記正則領域内に入る前記計算ユニットを含む一群の計算ユニットから1つの計算ユニットを選択することを含む、請求項56に記載の方法。
  59. 前記一群の計算ユニットは、前記集合内の前記物体のそれぞれが、中間位置が前記少なくとも1つの他の計算ユニットの前記正則領域内に入る物体の少なくとも1つの他の集合に属すような、少なくとも1つの他の計算ユニットをさらに含む、請求項58に記載の方法。
  60. 前記計算ユニットを選択することは、前記複数の計算ユニット全体の計算負荷の分布に従って部分的に実行される、請求項58に記載の方法。
  61. 計算領域内に配置された物体に関連付けられている一群の計算を実行する方法であって、該一群の計算内の該計算のそれぞれは物体の集合に関連付けられ、該方法は、
    複数の一群の計算の該一部のうちの少なくともいくつかについて、一群の計算の該一部における該計算を実行することであって、
    一群の計算の該一部に関連付けられている該部分領域の付近に配置された物体のデータを受け取ること、
    物体の該集合に対する計算を実行することであって、該集合のそれぞれの物体は該部分領域の付近または該部分領域内に配置され、該集合および該部分領域の該物体の配置は指定された基準を満たし、該集合および該部分領域内の該物体の該位置に対する該指定された基準は該集合内の該物体の中間位置が該部分領域内にあることを要求する基準である、物体の該集合に対する計算を実行することこと
    を含む、一群の計算の該一部における該計算を実行すること
    を備える、方法。
  62. 前記集合内の前記物体の前記中間位置は、前記配置を囲む境界球体の中心に基づいて決定される、請求項61に記載の方法。
  63. 前記集合内の前記物体の前記中間位置は、前記配置の平均に基づいて決定される、請求項61に記載の方法。
  64. 物体の前記複数の集合のうちの少なくともいくつかは、2つの物体からなる、請求項61に記載の方法。
  65. 物体の前記複数の集合のうちの少なくともいくつかは、3つの物体からなる、請求項61に記載の方法。
  66. 物体の前記複数の集合のうちの少なくともいくつかは、3つよりも多い物体を含む、請求項61に記載の方法。
  67. 計算領域内に配置された物体に関連付けられている一群の計算を実行する方法であって、該一群の計算内の該計算のそれぞれは物体の対に関連付けられ、該方法は、
    一群の計算の該一部のうちの少なくともいくつかについて、一群の計算の該一部における該計算を実行することであって、
    一群の計算の該一部に関連付けられている部分領域の付近に配置された物体のデータを受け取ること、
    物体の対の計算を実行することであって、該対のそれぞれの物体は該部分領域の付近または該部分領域の中に配置され、該対および該部分領域の該複数の物体の該配置は指定された基準を満たす、物体の対の計算を実行すること
    を含む、該実行すること
    を備える、計算領域内に配置された物体に関連付けられている一群の計算を実行する方法。
  68. 前記指定された基準は、隣接する部分領域の付近にある複数の対の複数の物体の分布に関する情報を組み込む、請求項67に記載の方法。
  69. 対及び前記部分領域内の前記複数の物体の前記配置に対する前記指定された基準では、該対内の前記複数の物体の前記配置の中間点が前記部分領域内にあることが要求される、請求項67に記載の方法。
  70. 幾何学的グリッド内に配列された複数の処理ノードの分子動力学シミュレーションの計算方法であって、
    相互作用半径未満の距離だけ離れている粒子のすべての対に対するデータが少なくとも1つの処理ノード上で利用できるように、処理ノード間で粒子データを交換すること、
    処理ノードで利用可能な、粒子の対について2つまたはそれ以上の種類の計算を実行すること
    を含む、方法。
  71. 前記2つまたはそれ以上の種類の計算は、静電気相互作用、結合力、粒子移動、電荷拡散、および力拡散計算のうちの少なくとも2つを含む、請求項70に記載の方法。
  72. 前記2つまたはそれ以上の種類の計算は、静電気相互作用計算を含む、請求項71に記載の方法。
  73. アイテムの集合を伴う計算を実行する方法であって、
    複数のアイテムのそれぞれを、そのアイテムが属するグループの集合に関連付けること、
    該アイテムの複数の集合を、それぞれの集合に関連付けられている計算を実行するための候補として識別すること、
    該集合内の該複数のアイテムのグループ帰属関係に応じて集合を該計算から除外すること
    を備える、方法。
  74. 前記集合を前記除外することは、うちの複数のアイテムが共通のグループに関連付けられている場合に、集合を除外することを含む、請求項73に記載の方法。
  75. 前記集合を前記除外することは、すべてのアイテムが共通のグループに関連付けられている場合に、集合を除外することを含む、請求項74に記載の方法。
  76. 前記アイテムは、シミュレーション・システムにおいて物体に関連付けられる、請求項73に記載の方法。
  77. 前記物体は、物体がリンクされた集合を形成し、前記グループの少なくとも一部は、それぞれ、物体がリンクされた集合に関連付けられ、物体の前記集合内の前記物体に関連付けられている前記アイテムのそれぞれは、該リンクされた集合に関連付けられている前記グループに関連付けられる、請求項76に記載の方法。
  78. 物体の前記リンクされた集合は、物体が結合された集合を含む、請求項77に記載の方法。
  79. 前記アイテムの前記複数の集合を候補として識別することは、前記関連付けられている物体が所定の相互作用半径内にあるように前記集合を識別することを含む、請求項76に記載の方法。
  80. 請求項1乃至79のいずれか1項に記載のすべての工程を実行するように適合されたソフトウェア製品。
  81. コンピュータ可読媒体上で実施される工程を実行するための命令を含む、請求項80に記載のソフトウェア製品。
JP2008507847A 2005-04-19 2006-04-19 粒子の相互作用の計算のためのゾーン法 Active JP5271699B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US67271705P 2005-04-19 2005-04-19
US60/672,717 2005-04-19
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
PCT/US2006/014782 WO2006113825A1 (en) 2005-04-19 2006-04-19 Scalable method for the evaluation of distance-limited pairwise particle interactions

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013058442A Division JP5592523B2 (ja) 2005-04-19 2013-03-21 多数の物体の相互作用を計算する計算ユニットを決定するための方法

Publications (2)

Publication Number Publication Date
JP2008538441A true JP2008538441A (ja) 2008-10-23
JP5271699B2 JP5271699B2 (ja) 2013-08-21

Family

ID=36685709

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2008507847A Active JP5271699B2 (ja) 2005-04-19 2006-04-19 粒子の相互作用の計算のためのゾーン法
JP2012015530A Active JP6047288B2 (ja) 2005-04-19 2012-01-27 粒子相互作用を計算するための並行計算アーキテクチャ
JP2013058442A Active JP5592523B2 (ja) 2005-04-19 2013-03-21 多数の物体の相互作用を計算する計算ユニットを決定するための方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2012015530A Active JP6047288B2 (ja) 2005-04-19 2012-01-27 粒子相互作用を計算するための並行計算アーキテクチャ
JP2013058442A Active JP5592523B2 (ja) 2005-04-19 2013-03-21 多数の物体の相互作用を計算する計算ユニットを決定するための方法

Country Status (4)

Country Link
US (4) US8126956B2 (ja)
EP (2) EP2447852A3 (ja)
JP (3) JP5271699B2 (ja)
WO (1) WO2006113825A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128793A (ja) * 2010-12-17 2012-07-05 Japan Agengy For Marine-Earth Science & Technology 粒子状態計算装置及び粒子状態計算方法
JP2013026698A (ja) * 2011-07-19 2013-02-04 Jvc Kenwood Corp 映像ノイズ低減装置及び映像ノイズ低減方法

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007022469A2 (en) 2005-08-18 2007-02-22 D.E. Shaw Research, Llc Parallel computer architecture for computation of particle interactions
EP2447852A3 (en) * 2005-04-19 2015-01-07 D.E. Shaw Research, LLC Scalable method for the evaluation of distance-limited pairwise particle interactions
US20070097970A1 (en) * 2005-11-01 2007-05-03 Georgios Margaritis Packet retransmitter
US7769573B2 (en) * 2006-05-26 2010-08-03 Zymeworks Inc. System and method for modeling interactions
WO2008118789A2 (en) * 2007-03-23 2008-10-02 D. E. Shaw Research, Llc Computation of multiple body interactions
US8223155B2 (en) * 2007-04-27 2012-07-17 Sony Corporation Method for simulating large numbers of spherical bodies interacting
US8203560B2 (en) * 2007-04-27 2012-06-19 Sony Corporation Method for predictively splitting procedurally generated particle data into screen-space boxes
US8279227B2 (en) * 2008-04-04 2012-10-02 Sony Corporation Method for detecting collisions among large numbers of particles
JP5417865B2 (ja) * 2009-01-28 2014-02-19 富士ゼロックス株式会社 粒子挙動解析装置およびプログラム
US9418182B2 (en) * 2009-06-01 2016-08-16 Paradigm Sciences Ltd. Systems and methods for building axes, co-axes and paleo-geographic coordinates related to a stratified geological volume
US8711140B1 (en) * 2009-06-01 2014-04-29 Paradigm Sciences Ltd. Systems and methods for building axes, co-axes and paleo-geographic coordinates related to a stratified geological volume
US8600708B1 (en) 2009-06-01 2013-12-03 Paradigm Sciences Ltd. Systems and processes for building multiple equiprobable coherent geometrical models of the subsurface
US8599804B2 (en) * 2009-08-07 2013-12-03 Broadcom Corporation Distributed signal field for communications within multiple user, multiple access, and/or MIMO wireless communications
US8743115B1 (en) 2009-10-23 2014-06-03 Paradigm Sciences Ltd. Systems and methods for coordinated editing of seismic data in dual model
US9098944B2 (en) * 2010-03-04 2015-08-04 Pixar Scale separation in hair dynamics
US20110310088A1 (en) * 2010-06-17 2011-12-22 Microsoft Corporation Personalized navigation through virtual 3d environments
US20120150496A1 (en) * 2010-12-09 2012-06-14 Jiun-Der Yu Simplified Fast 3D Finite Difference Particulate Flow Algorithms for Liquid Toner Mobility Simulations
US10795053B2 (en) 2013-10-29 2020-10-06 Emerson Paradigm Holding Llc Systems and methods of multi-scale meshing for geologic time modeling
WO2015066415A1 (en) * 2013-11-01 2015-05-07 University Of Florida Research Foundation, Inc. Movable type method applied to protein-ligand binding
JP6261130B2 (ja) 2014-06-04 2018-01-17 国立研究開発法人海洋研究開発機構 粒子シミュレーション装置、粒子シミュレーション方法及び粒子シミュレーションプログラム
JP6840668B2 (ja) 2014-11-14 2021-03-10 ディ.イー.ショー リサーチ, エルエルシーD.E.Shaw Research, Llc 結合された粒子間の相互作用の抑制
US9690002B2 (en) 2015-06-18 2017-06-27 Paradigm Sciences Ltd. Device, system and method for geological-time refinement
US10466388B2 (en) 2016-09-07 2019-11-05 Emerson Paradigm Holding Llc System and method for editing geological models by switching between volume-based models and surface-based structural models augmented with stratigraphic fiber bundles
CN106788092B (zh) * 2017-02-28 2019-03-05 南京工程学院 一种基于原子分解法的同步电机参数辨识方法
US10520644B1 (en) 2019-01-10 2019-12-31 Emerson Paradigm Holding Llc Imaging a subsurface geological model at a past intermediate restoration time
US11156744B2 (en) 2019-01-10 2021-10-26 Emerson Paradigm Holding Llc Imaging a subsurface geological model at a past intermediate restoration time
CA3183331A1 (en) * 2020-06-19 2021-12-23 Charlotte SENNERSTEN Data model for mining
JP7408533B2 (ja) 2020-12-09 2024-01-05 株式会社東芝 情報処理装置、情報処理方法およびプログラム
JP2024511077A (ja) * 2021-03-19 2024-03-12 ディ.イー.ショー リサーチ,エルエルシー 多体シミュレーション
CN113806994B (zh) * 2021-09-23 2022-12-20 盐城师范学院 一种活性粒子时空分布监测方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204758A (ja) * 1990-01-06 1991-09-06 Fujitsu Ltd 粒子運動シミュレーション処理方式

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02249083A (ja) * 1989-03-22 1990-10-04 Fujitsu Ltd アレイプロセッサによる粒子シミュレーション方式
US5377129A (en) * 1990-07-12 1994-12-27 Massachusetts Institute Of Technology Particle interaction processing system
JPH0477853A (ja) * 1990-07-13 1992-03-11 Fujitsu Ltd 粒子運動シミュレーション方式
JP2976675B2 (ja) 1992-02-21 1999-11-10 日本電気株式会社 アレイプロセッサのルーティング方法
JPH05274277A (ja) * 1992-03-30 1993-10-22 Toshiba Corp 分子動力学計算装置
JPH05324581A (ja) * 1992-05-22 1993-12-07 Hitachi Ltd 並列多体問題シミュレータ及び当該シミュレータにおける負荷分散方法
JPH07140289A (ja) 1993-11-17 1995-06-02 Toshiba Corp 中性子輸送シミュレータ
WO1997019413A1 (en) * 1995-11-21 1997-05-29 The Trustees Of Columbia University In The City Of New York Fast methods for simulating biomolecular systems with long-range electrostatic interactions by molecular dynamics
FR2742560B1 (fr) * 1995-12-19 1998-01-16 Commissariat Energie Atomique Architecture de systeme en tableau de processeurs a structures paralleles multiples
US6407748B1 (en) * 1998-04-17 2002-06-18 Sandia Corporation Method and apparatus for modeling interactions
US6373849B1 (en) * 1998-06-08 2002-04-16 Excel Switching Corporation Resource interface unit for telecommunications switching node
US6678642B1 (en) * 1998-10-08 2004-01-13 Sandia Corporation Method of and apparatus for modeling interactions
US6373489B1 (en) 1999-01-12 2002-04-16 Schlumberger Technology Corporation Scalable visualization for interactive geometry modeling
US6600788B1 (en) * 1999-09-10 2003-07-29 Xilinx, Inc. Narrow-band filter including sigma-delta modulator implemented in a programmable logic device
US7177867B2 (en) * 2000-10-23 2007-02-13 Sri International Method and apparatus for providing scalable resource discovery
US7096167B2 (en) * 2001-04-26 2006-08-22 International Business Machines Corporation System and method for molecular dynamic simulation
JP3832431B2 (ja) * 2002-12-25 2006-10-11 ソニー株式会社 画像処理装置
US20040225711A1 (en) * 2003-05-08 2004-11-11 Spotware Technologies, Inc. System for administering computers on a computing grid
US7734456B2 (en) * 2004-03-30 2010-06-08 Osamu Fujita Method and apparatus for priority based data processing
EP2447852A3 (en) * 2005-04-19 2015-01-07 D.E. Shaw Research, LLC Scalable method for the evaluation of distance-limited pairwise particle interactions
US7610184B1 (en) * 2006-01-23 2009-10-27 Itt Manufacturing Enterprises, Inc. Sector meshing and neighbor searching for object interaction simulation
US20070233440A1 (en) * 2006-03-29 2007-10-04 International Business Machines Corporation Reduced message count for interaction decomposition of N-body simulations
US7769573B2 (en) * 2006-05-26 2010-08-03 Zymeworks Inc. System and method for modeling interactions

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03204758A (ja) * 1990-01-06 1991-09-06 Fujitsu Ltd 粒子運動シミュレーション処理方式

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200000926019; 林 亮子: '直鎖高分子の並列分子動力学法シミュレーション' 情報処理学会論文誌 Vol.36 No.6, 19980615, pp.1775-1781 *
JPN6012000790; 林 亮子: '直鎖高分子の並列分子動力学法シミュレーション' 情報処理学会論文誌 Vol.36 No.6, 19980615, pp.1775-1781 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128793A (ja) * 2010-12-17 2012-07-05 Japan Agengy For Marine-Earth Science & Technology 粒子状態計算装置及び粒子状態計算方法
JP2013026698A (ja) * 2011-07-19 2013-02-04 Jvc Kenwood Corp 映像ノイズ低減装置及び映像ノイズ低減方法

Also Published As

Publication number Publication date
US8126956B2 (en) 2012-02-28
EP1880327A1 (en) 2008-01-23
JP2013168160A (ja) 2013-08-29
US20120116737A1 (en) 2012-05-10
EP2447852A2 (en) 2012-05-02
EP2447852A3 (en) 2015-01-07
US20130173889A1 (en) 2013-07-04
US9612832B2 (en) 2017-04-04
US20130091341A1 (en) 2013-04-11
JP5271699B2 (ja) 2013-08-21
JP5592523B2 (ja) 2014-09-17
JP2012119008A (ja) 2012-06-21
US20080243452A1 (en) 2008-10-02
WO2006113825A1 (en) 2006-10-26
EP1880327B1 (en) 2021-09-08
US9747099B2 (en) 2017-08-29
US10824422B2 (en) 2020-11-03
JP6047288B2 (ja) 2016-12-21

Similar Documents

Publication Publication Date Title
JP5592523B2 (ja) 多数の物体の相互作用を計算する計算ユニットを決定するための方法
Dryden et al. Improving strong-scaling of CNN training by exploiting finer-grained parallelism
Qiu et al. Cloud technologies for bioinformatics applications
WO2008118789A2 (en) Computation of multiple body interactions
JP2009505299A (ja) 粒子相互作用を計算するための並行計算アーキテクチャ
Wu et al. Upgrade of fpga range-limited molecular dynamics to handle hundreds of processors
Zhang et al. Implementation of parallel genetic algorithm based on CUDA
JP6778728B2 (ja) 粒子相互作用を計算するための並行計算アーキテクチャ
Koanantakool et al. A computation-and communication-optimal parallel direct 3-body algorithm
Stone et al. GPU Algorithms for Molecular Modeling.
Nuttall Parallel implementation and application of the random finite element method
Koanantakool Communication Avoidance for Algorithms with Sparse All-to-all Interactions
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
Deveci Load-balancing and task mapping for exascale systems
Stevens GPU-optimized graph theory analysis of allosteric protein signaling networks
Hu Efficient data-parallel implementations of highly irregular problems
Abraham Efficient load balancing strategies on a network of computers: a case study with two scientific computing problems
Succi et al. A six lecture primer on parallel computing
Rao et al. Cloud Technologies for Microsoft Computational Biology Tools
Edelman et al. 6: 50s A Peek at Parallel Processing from an Applications Perspective
Fang High scalable implementation of SPME using parallel spherical cutoff three-dimensional FFT on the six-dimensional torus QCDOC supercomputer
CHIU ACCELERATING MOLECULAR DYNAMICS SIMULATIONS
Kristensen Towards Parallel Execution of Sequential Scientific Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120417

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120717

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130321

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130321

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130412

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130513

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5271699

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250