前節で述べた厳密対角化法では、必要となる計算時間、および主記憶 容量が系のサイズに対して指数的に増加するため、扱うことのできる系のサイズ は非常に限られる。前述の並列化手法を用いたとしても、L=34程度が、現在の スーパーコンピュータでの限界である。さらに大きな系を扱う方法として、広く 用いられている方法の一つに「モンテカルロ法」がある。この方法では、広大は 位相空間の中から、代表的な少数の点をある「重み」に従って確率的にサンプリ ングすることにより、系の物理量を求める。
ここでは、量子反強磁性ハイゼンベルグ模型と呼ばれる量子スピン系を考える。 前節で扱ったイジング模型はスピンのもつ量子性を無視した模型であり、スピン は上向き、下向きの2つの自由度しか取り得なかったが、量子スピン系では、不 確定性原理に起因する量子ゆらぎ(あるいは演算子の非可換性と呼んでもよい)の ため、スピンを「単なる方向をもった矢印」として扱うことはできない。現実の 系においても、低温になればなるほどこの量子ゆらぎの効果が強くなり、シミュ レーションにおいてもこの効果を正しく取り入れた模型を考える必要がある。
この量子的にゆらいだスピン状態を計算機の中で表現するために、一般には「経 路積分(path integral)」と呼ばれる手法が用いられる。すなわち、d次元の量 子系を(d+1)の次元をもつ古典系へとマップする手法である。スピン状態はこ の余分な1次元方向(虚時間方向と呼ぶ)にゆらいだ「世界線(world line)」とし て表わされる(図4a)。この世界線の配置は、計算機の中では、 ダブルリンクリストを用いて、時刻0での状態の情報に加え、世界線がジャンプ した時刻と場所を覚えておくことにより表現される。
量子モンテカルロ法では、この世界線の配置を「重み」に従って確率的に変化さ せていくことにより位相空間のサンプリングを行なう。以前は、世界線を局所的 に変形させて量子モンテカルロを行なっていたが、この方法では、非常に低温、 もしくは相転移の臨界点近傍になると、状態の変化が非常に遅くなり、効率的な サンプリングが不可能になる。この問題は「臨界減速(critical slowing down)」 と呼ばれる。最近、この問題を回避する方法として「ループアルゴリズム」が提 案された。この方法では、世界線の配置の更新は、局所的に行なわれるのではな く、グローバルなオブジェクト(ループと呼ばれる)を反転させることにより行な われる。1モンテカルロステップは、具体的には以下のような手順となる。
ループアルゴリズムでは、世界線の配置はダブルリンクリストを用い て表現され、このリストに対してリンクの挿入・削除や、リンクリストを辿ると いった操作が主体となっており、残念ながらベクトル化は全く不可能である。実 際、VPP500では、Alpha チップなどのRISC CPU と比較すると数十分の一から数 百分の一程度の性能しか出ない。ループアルゴリズムを用いた実際のシミュレー ションには、Compaq Alphaワークステーション、SGI Origin 2000、および Hitachi SR-2201 等のスカラ(並列)機を使用している。
一般の局所的な状態更新に基づくモンテカルロ法は、(d+1)次元空 間を各プロセッサに分割し、各モンテカルロステップで境界上のスピン状態を交 換することにより、比較的自明に並列化可能である。一方、ループアルゴリズム では、グローバルな操作が必要なので、並列化は非自明となる。我々は以下に挙 げる方針に基づき、並列化を行なった。
上記の並列化アルゴリズムの理論的な並列化効率は以下のように見積 もることができる。
実空間方向の系のサイズをL、虚時間方向のサイズ(これは系の温度の逆数に比
例する)をとすると、逐次実行の場合の実行時間は、ステップ(1)、(2)、
(3)共に
に比例する。プロセッサで並列実行した場合、
ステップ(1)、(2-1)、および(3)の所要時間は単純に
倍となる。一
方、ステップ(2-2)については、
の時間が必要であるの
で、並列化によるスピードアップは、cをある定数とすると、
図5に、SGI Origin 2000 および Hitachi SR-2201 での実 測例を示す。特にSGI Origin 2000では、非常に高い並列化効率が得られている。 実際のシミュレーションでは、この並列化したアルゴリズムを用いて、256プロ セッサまでの並列計算を行なっている。