大規模計算機システム利用者報告

私達的SX5の使い方
―とにかく、使ってみよう。―
Let’s Use SX5 in Our Own Way

齋藤 賢一(大阪大学大学院工学研究科 機械物理工学専攻)

キーワード: スーパーコンピュータ, SX5, , パーソナルコンピュータ, Alpha マシン, CPU, 分子動力学法, ベクトル化, PSUITE, 計算速度, フェアシェア定額制, 姫野ベンチ

1.はじめに

 SX5 は世界最速のスーパーコンピューター(ス パコン)として有名で、著者の所属している学会で も評判である(1) 。ベクトル機であることが特徴で、 CPU 速度も然ることながら、使用できるメモリー量 が私達の手元にあるパーソナルコンピュータ(PC) やワークステーション(WS) を凌駕しており、いわ ゆる大きな計算(大規模計算)が、気軽に行なえる。 機械工学を専門とする私達の研究グループ(全14 メンバー)でもSX4 を経て昨年度から使っており、 機械材料の分子動力学計算によるミクロ解析や、マ クロ流体・分子流体の数値シミュレーションに利用 している(2) 。例としては、図1 のような“ 原子ク ラスターの合体・構造化の分子動力学解析”の成果 などが得られている。原子クラスターの原子構造(3) 、それらの合体および構造化過程(4) (5) 、結合界面 での格子欠陥の生成と運動(6) などを解析している。 また、SX5 にはアプリケーションも豊富であり、特 に計算結果の可視化に関しては最も将来性のある統 一規格であるOpenGL というグラフィックライブラ リが使えるとあって、スパコンによる対話型シミュ レーションにチャレンジしたりもしてきた(7) (8) 。
 そして、今年度からはフェアシェア定額制が導入 されたので、課金制限や投入ジョブの実行待ちを気 にせずに使えるようになると期待しつつ、積極的に 利用した。一方で、私達の中では比較的小さな計算 をたくさんするような状況(例えば、計算モデルや 計算パラメータを微妙に変えながらのパラメータス タディ)が意外に多くあり、そのような場合には比 較的高速であるPC などに分があると感じるように なってしまった。
 このレポートでは、サイバーメディアセンター (CMC) のSX5 をできるだけ使いこなそうと、今年 度、PSUITE というプログラムチューニングソフト ウェアを用いて計算速度の向上を目指した記録と、 フェアシェア定額制についての感想を述べている。 そして、他の計算機も含めてのベンチマークテスト の結果により、手の込んだチューニングなどしない で私達が普通に使うときにどれくらいの計算速度の 違いが出てくるかを調べ、利用の現状と展望を示そ うと思う。

2.「SX5」でプログラムを速くする

2.1 分子動力学計算

 物質を構成する原子・ 分子の一つ一つの運動をそれらが従う力学法則の式 について数値計算していくのが分子動力学(MD) 法 (9) である。現在では、PC レベルでも数十万個の計 算が行なえるようになった。簡単な場合、原子・分 子の運動方程式は、

のようになる。mi およびri はN 個ある粒子(分子・ 原子)のうちのi の質量と位置である。φ は全粒子 系のポテンシャルエネルギーであり、ri(i = 1 ? N) の関数になる。i に加わる力Fi は、相互作用が二体 間のものに還元される場合、周囲のj から受ける力 Fij(= -∂φij/∂ri) の和となる。とにかく、このFij の足し込みに多くの計算時間が掛かる。

2.2 「PSUITE」を使ってみる

 これまで私 達が研究室で普通に使っていたMD のプログラムが そのままではSX5 ではどうも遅かった。ある例で は、計算時間(User Time) は34.631712sec、ベクト ル化率(V.Op.Ratio) は69.017471%であった。そこ で、PSUITE というプログラム解析ツールがある ので使ってみた。CMC の資料1 を見ながらやれば、 簡単に使えるようになっている。一連のコマンドは、
 % sxf90 -pspa program.f プログラムをPSUITE 用にコンパイル
 % pspfl a.out       モジュールにPSUITE の機能を付加
 % a.out           計算実行(SX5 上で行なう)
 % pspfl a.out.pdf PSUITE の解析する
 (PSperf)analyze     (PSUITE 中の解析実行コマンド)

であった。これで解析していくと、以下の部分が時間 の掛かるループであり、まずいことがわかった(これ は少し複雑なポテンシャル関数を持つシリカ(SiO2) の計算プログラムになる)。
    ----前略----
 do k=1,km3
   i=il2(k)
   j=jl2(k)
   ----中略----
  dv2dr(k)= \
 & -etaij*aaa*((sigmai+sigmaj)**etaij)    |時間が
 & *(r1(k)**(-etaij-1d0))           | 掛かる
 & +(-(zi*zj)/r1(k)*(1d0/r1(k)+1d0/xlam)   |高価な
  & *dexp(-r1(k)/xlam)             | 部分
 & +0.5d0*(alphai*zj*zj+alphaj*zi*zi)    |
  & /(r1(k)*r1(k)*r1(k)*r1(k))         |
 & *(4d0/r1(k)+1d0/zeta)*dexp(-r1(k)/zeta)) |
 & *eleunit /
     ----中略----
  dv2dr(k)=dv2dr(k)/r1(k) 上のi=,j=の部分と
  fx(i)=fx(i)-dv2dr(k)*dx(k) |この部分のために
  fy(i)=fy(i)-dv2dr(k)*dy(k) | ベクトル化され
  fz(i)=fz(i)-dv2dr(k)*dz(k) | ないので、
  fx(j)=fx(j)+dv2dr(k)*dx(k) | 後ろに別ループ
  fy(j)=fy(j)+dv2dr(k)*dy(k) | とする。
  fz(j)=fz(j)+dv2dr(k)*dz(k) / enddo
----後略----  

粒子のペアに対する粒子登録法を用いているが、 この、力(エネルギーも同様)の足し込みをするルー プがベクトル化されない(理由:k のループ開始時 に足し込む配列要素(fx(i)) などが決まらないため)。 この例ではポテンシャル関数の導関数dv2dr(k) の 計算は、特に時間がかかるがペアについてそれぞれ 求めれば良いものである。そこで、足し込みだけを 別ループとした。その結果、ベクトル化率は改善さ れ(90.014009%)、計算時間も19.487818 sec と半 分近くなった。
 SX5 ではPSUITE で時間の掛かるループを見つ けて、ベクトル化できるところをそうすれば、かな り速くなる。

3.フェアシェア定額制の感想

 SX5 は共同利用する計算機なので、フェア(な) シェアの意義は多いにあると思う。利点と欠点とし ては、
(利点)  バッチジョブが比較的すぐ走る。
(利点) フロントエンドのWS(特にaa01?aa08)が 使える。これは速いマシンなのでデータ解析 にも重宝する。
(欠点) 現在のグループのシェアの度合がすぐにわか らないこと。つまり、計算が終る時間が予測 し辛い。
(欠点) 限られた予算ではシェア率が低く、コストパ フォーマンスについては今のところ?である。
などが挙げられる。課金制限が無いので、「課金上限 まで使い切る」という考え方を改めなければならな かったが、一年度目の今年度はなかなかそうもいか なかったように感じている。つい、小さな計算に制 限してaa01?aa08 だけ利用してしまうことも多く あった。

4.エンドユーザーとしての計算速度評価

 私達の研究室には、CPU がAlpha チップやPentium (R)4 であるWCやPCなどが幾つかあり、CMC に導入されているSX5 をはじめとした各計算機と、 計算プログラムの実行速度を比較評価してみたい と思っていた。そうしている間に、インテル(R) 社 が提供するフォートランコンパイラーは秀逸である との情報を得たため、とりあえずこの評価を実施し た。プログラムは、数値流体力学計算のベンチマー クで有名な姫野ベンチ(10) の小規模のプログラム (himenobmt98s src.f) と、私達の研究室で開発し、 利用している水分子用のMD プログラムである。結 果をそれぞれ表1 および表2 に示す。計算プログラ ムのベンチマークは、オプションの設定だとか、ベ クトル化のような特殊な機能だとか、並列化してい る場合には通信速度など、諸々の性能についての判 断も加味して慎重に行なうべきだが、ここではエン ドユーザーの立場で、「この計算機ではこのプログラ ムを実行させるとこれくらいでおわるよ」という程 度の情報として捉えて欲しい。
 IPC・ ・ ・、APC・ ・ ・ というのは研究室にあるコン ピューターで、それぞれインテル(R) 社のPentium(R) シリーズ(AMD 社Athlon(TM) も含む)とコンパッ ク社のAlpha21264 のCPU を搭載したものを表わ している。小文字で始まるものは、CMC で利用可 能なものである。表1 から、姫野ベンチではSX5 は桁違いに速いことがわかる。”ifc”は、インテル(R) 社が提供するフォートランコンパイラー(Intel(R) Fortran Compiler for Linux) を用いており、Linux のオペレーティングシステムを用いることで利用で きる。これは、Alpha チップよりも速い結果が得ら れ、実際のところ驚いている4。 MD プログラムは、水分子を剛体として扱う(自 由度=6)もので、SPC ポテンシャルを使っており、 クーロン力の計算はエバルト法による。分子数は 512、計算ステップ数は200 としている。プログラ ムの書き方のせいもあるだろうが、表2 のように SX5 はあまり良い結果を出さなかった。ここでは、 Pentium(R)4 ではとび抜けた速さを得た。


5.結論/おわりに

 私達の研究で(私達的に)は、SX5 は、大規模 計算を気軽に行ないたいのならば最適であると結論 4もっとも、Alpha チップはインテル(R) のチップに統合さ れるようなので、もし私が買うならば、現在では迷い無くインテ ル(R) のチップを選ぶことができる。 5ちなみに今年度利用したフェアシェア定額制の料金は、この Pentium(R)4 のPC 約4 台分に相当する。このチューニング無 しのMD 計算では、コストパフォーマンスの軍配はどうしても PC 側にあがってしまう!
づけられる。特にPSUITE によるチューニングはそ れほど手間がかからない。最新のPC の速さには驚くべきものがあるのも事実で、扱う計算の規模に応 じてPC クラスターなどの並列マシンを用意していくのも良いと思うが、マシンの選定・調達・保守管 理・リプレースの可能性、どれをとっても面倒になる。私達の研究室の規模くらいであっても複数の研 究者・学生が同時に使うので、そのような管理のコストや手間の面から考えると、現在のSX5 のフェア シェア定額制は手軽であり、今後期待が持てる。ただし、小さな計算に限って言えば、計算機の使い勝 手ではPC に存在感があり、それらは研究室のマシンでちゃちゃちゃちゃとやってしまうのが現状では 良いみたいである。

謝辞 稲葉武彦教授をはじめ研究室の皆様にはプ ログラム開発や利用の協力などで、お世話になりま した。また、サイバーメディアセンターの方々には、 定額制度による共同利用をはじめ、ファイルシステ ムやジョブクラスなど利用しやすいシステム環境を つくって頂いていることに感謝いたします。

参考文献
  1. 日本機械学会第14 回計算力学講演会のセッションで紹介されてい ました。
  2. 当研究室の研究については、以下を御覧ください。 http://www-gcom.mech.eng.osaka-u.ac.jp/research.html
  3. 齋藤賢一, 材料, 49-3(2000), 263-268.
  4. 齋藤賢一, 日本材料学会第50期学術講演会講演論文集, (2001), 267-268. .
  5. 齋藤賢一・駒谷政男・稲葉武彦, 日本機械学会論文集, A 編, 68-666(2002), 掲載予定.
  6. 齋藤賢一, 日本機械学会関西支部第77 期通常総会講演会(2002.3.23, 神戸) にて発表予定.
  7. 齋藤賢一・土肥隆・駒谷政男・稲葉武彦, 大阪大学サイバーメディ アセンター年報, 2000 年度, No.1,-No.1(2001), 57-60.
  8. 齋藤賢一・土肥隆・駒谷政男・稲葉武彦, 可視化情報, 20-S.No.1(2000), 43-46.
  9. 北川浩・北村隆行・渋谷陽二・中谷彰宏, 初心者のための分子動 力学法入門, (1997), 1, 養賢堂.
  10. 以下の、理化学研究所の姫野氏のウェブを御覧ください。 http://w3cic.riken.go.jp/HPC/HimenoBMT/index.html 3