NetScience Interview Mail 2001/11/01 Vol.163 |
NetScience Interview Mail HOMEPAGE http://www.moriyama.com/netscience/ |
NetScience Interview Mail : Free Science Mailzine | |
---|---|
科学者インタビューを無料で配信中。今すぐご登録を! |
【その他提供中の情報】 | 新刊書籍情報 | | イベント情報 | | おすすめURL | etc... |
◆Person of This Week: |
【牧野淳一郎(まきの・じゅんいちろう)@東京大学大学院 理学系研究科 天文学専攻 助教授】
研究:理論天文学、恒星系力学、重力多体シミュレーション
著書:杉本大一郎編「専用計算機によるシミュレーション」 1994, (朝倉書店、東京)(分担)
Junichiro Makino and Makoto Taiji, Scientific Simulations with Special-Purpose Computers --- The GRAPE Systems 1998, (John Wiley and Sons, Chichester).
牧野淳一郎「パソコン物理実地指導」, 1999, (共立出版、東京)
そのほか
ホームページ:http://grape.astron.s.u-tokyo.ac.jp/~makino/
○理論天文学の研究者で、ずば抜けた性能を持つ重力多体シミュレーションのための専用計算機GRAPE6の製作者・牧野淳一郎氏のお話をお届けします。(編集部)
…前号から続く (第3回)
[06:なぜ速いのか その2] |
データベース |
■それはつまり結局、重力計算しかしないからです。二粒子間の重力を計算するということだけしかしない。それ以外の色んなプログラムを走らせるということは全然考えてないから、固定した順番で演算器を並べちゃうと。そういうことができるわけです。
つまり普通の計算機は「プログラム可能」というのが、もちろんフォン・ノイマン以来の−−フォン・ノイマンの発明というと怒る人もいるでしょうが(笑)−−まあとにかく、それが特徴なんです。プログラムができるということが。
○はあ。
■それはどういうことかというと、一個の演算器が必ずメモリに繋がっているわけです。要するにたくさん演算器を並べるとすると、一個一個の演算器にメモリを準備しないといけなくなる。しかもその、プログラム可能ということは、複数の演算器がそれぞれ何をするかは分からない。だからある瞬間にこいつはあっちに、あいつはこっちに行きたいということが起こる。それをしたいとなると、自分のデータと外のデータとの間の接続が非常に複雑になる。クロスバーとかを使った大がかりなものになる。
これは実は演算器が1つでも本質的には同じ問題があるんです。というのは、実際には一個の命令を入れてから、その答えが出るまでにはペンティアム4とかだと20クロックだかくらい。Athlonだと10クロックくらいかな。ということは十何個かの命令が同時に実行されているわけですね。それがお互いに干渉しちゃいけない。だからそれを防ぐ仕組みも必要になる。
でも、とにかく重力しか計算しないということになると、たくさん演算器があっても、何をするかがあらかじめ決まってる。そうすると干渉を避けるといった問題もない。そして、ほとんどの演算器はメモリと繋がらない。一番最初の引き算をするところだけがメモリと繋がっている。しかもそこは入ってくるだけで吐き出すことはあり得ないと。一番後ろに計算された結果を積算していって、一回吐き出しておしまいと。
○ふむふむ。
■要するに普通の計算機というのは演算器にデータを送り込んで、出てきたデータを引っぱり出してしまうと。そこが回路のほとんどを占めているんです。でも、特定の用途にしか使わないということにすれば、そこを落っことしてしまえるんです。
○なるほど。
■私も最近のマイクロプロセッサがどうしてこんなに大きいのかというのはよく分からないんですが(笑)。GRPAE6のチップの場合は実際に400個くらいの演算器を使って6本くらいのパイプラインプロセッサにしてて、それがクロック毎に重力を計算するということを実際にやっている。メモリからどのくらいのレートでデータを読み出しているのかというと、720メガバイト/secくらいなのかな。
○……?
■これは、もの凄く低いんですよ。普通に、完全に勝手な計算をさせようと思うと、足し算一個するには、二つデータが入ってきて一つ出ていくということになるから、3ワードを動かす。つまり、1ギガフロップスのスピードを実際に出そうと思うと、1ワードというのは8バイトなので、8の3倍、24ギガバイト/secのメモリがついてないと、1ギガフロップスの性能というのは出ない。実際には普通のパソコンは1ギガ/secくらいのメモリしかついてないんだけど、それをキャッシュなどを使ってもうちょっとスピードがあるように見せかけるんです。それでも、キャッシュのバンド幅は10ギガもないはずですが。
○なるほどねー。
■まあ、だから、普通のマシンは、2ワード読み込んで1ワードをメモリに書くといったプログラムではスピードでは出なくて、レジスタにあるデータをうまいこと使ってやるといった形になっているんです。まあとにかく、本来は数ギガバイト/セカンドのメモリがないとギガフロップスの速度は出ない。普通に作った場合はね。
○はい、そこまでは分かりました。
■GRAPEの場合は、おおざっぱな話をすると、3ワード、データが入ってきて、60演算する。それが普通の計算機だと3ワード入ってきて1演算。だからメモリのバンド幅は1/60になる。
さらにGRAPE6チップの場合は、6本パイプラインが入っていて、それに対してメモリから入ってくるデータはみんな同じなんです。そして6本のパイプラインが違う粒子の力を計算すると。だからそこでもう6倍得になる。それで普通の計算機に対して計算速度が同じならメモリの速度は400分の1でいいことになる。 逆にメモリの速度が同じなら計算速度を 400 倍にできる。
実はもう一つ仕掛けがあって、一個のパイプラインが実際には一個の粒子の力を計算するんではなく、一回、メモリから一粒子のデータが来たら、それを8回使って、8個の違う粒子に掛かる力を計算するという小細工をしてるんです。
○どうしてそんなことができるんですか。
■それは単にクロックごとに−−8クロックの間に、メモリから来る方は固定しておいて、レジスタファイルがあって、レジスタファイルから8個の違う座標をクロックごとに出してやると。そしてあとはずっと流れで、クロックごとに違う粒子の流れが計算されていって、一番最後の積算のところでも8個の値をとっておいて、クロックごとに違う粒子の力を積算するという仕掛けになっています。
これでさらにメモリからのデータ転送速度をおさえると。この8倍と、さっきいった400倍をかけて、いちおう、数千倍は、普通の計算機よりも必要なメモリ・バンド幅を減らしてるんです。
○なるほど。
■それがやっぱり一番大きな原因になってるんです。たくさん演算器を突っ込むのは、今の技術ではできるんですけども、それを「使う」ことができないんですよ。使うためには、どうしても外からデータが入ってきて、それを外へ出してやるというの手順が必要ですから。「フォン・ノイマン・ボトルネック」とかいわれる話ですけどね。
つまりいまだと、チップにデータを入れてチップからデータを出すのが大変だと。だから何百個も演算器を入れられるんだけど使えない。それが最近のプロセッサの典型的状況です。
[07:「今あるプログラムが速く動かないといけない」のが正しいのか] |
■実際には、普通のパソコンでたくさん演算器を使わないのはもう一つ理由があって。たくさん演算器を積んでも普通のプログラムは速くならない。非常に特殊な科学計算用で、チューニングして、そのアーキテクチャに合わせたプログラミングを人が書けば、速くできるから本当はそういうものを作って欲しいんですが(笑)、まあ、普通のパソコンを売るとなると、割合と汎用で、普通にベンチマークで使われるようなソフトがある程度速く動くとならないと売れないでしょう。
○でしょうね。
■普通に転がっているプログラムを、何とかコンパイルで頑張ってもらって速くするっていう話だと、演算器が16個とか100個とかあっても、一個しかないやつと比べてもせいぜい2倍とか3倍しか速くならないということがだんだん分かってきたんで、まあそういうことがあって、あんまりたくさんは入れないんです。
○ははあ。
■これは、商品レベルでなくて研究レベルでもなんかそうなっていて、新しいプロセッサの提案とかいう時に例えば SPEC ベンチマークとか、そういうのをシミュレーションで動かしてみてこんな性能がでますみたいなね、そういう評価をするわけです。
まあ、それはそういうのが定量的な評価で、そのあたりをちゃんとするのが計算機アーキテクチャの研究の大事なところだという流れがあって、これはヘネシーとパターソンの有名な教科書があってそれに代表される方向なんですが、まあ、ほんとうにそれでいいの?っていう気もします。
○と仰るのは?
■というのは、それだと「今あるプログラムが速く動かないといけない」になっちゃう。本当は、新しいアルゴリズムとか、そこまでいかなくても単にプログラムの表現を変えて、例えば並列性がもっとハードウェアにわかりやすく表現できていれば速く実行できるとか、そういう可能性はある。
○なるほど。新しい可能性が出てこなくなるわけですね。
■まあ、だからヘネシーなんかは並列計算機用のベンチマークセットとかも作っているわけですが−−うーん、なんていうのかな、当たり前なんですが、ベンチマークというのはいろいろなプログラムを走らせてみて総合的にマシンの性能を判断するわけですね、まあ当たり前なんですが。
で、これはつまり、それぞれのプログラムはそのマシンの機能の一部しか使ってないということでもあるわけです。だから、それならベンチマークごと、っていっても、ベンチマークだけ速くてもしょうがないんで、まあ、ある程度目的毎に違う計算機を作るというのもあるような気がするんですが、あんまりそういう方向には研究がないような気がします。
○ふーん……。
■でも我々が作っているような、それにしか使わないと。そういう奴だったらそこらへんのプログラムは関係ないですから。我々が使うプログラムとその応用だけが動けばいいわけですからね。そこらへんが違いです。
[08: ツリー法] |
○じゃあ、計算のアルゴリズムそのものは88年の頃から変わってないんですか。
■実際にハードウェアに落としているところは変わってないです。
ただ、いろいろと細かい部分での工夫はあります。普通に計算していくと計算量は粒子の自乗で増えていくんですが、もうちょっとごまかして速く計算しようと。これは直接には専用計算機と関係ある話ではないんですけどね。
普通の計算機でやる上で開発された手法なんですが、天文で広く使われる方法で「ツリー法」と呼ばれるものがあります。これは、85年くらいにプリンストン高等研究所、これは大学附属の研究所と思ってる人が多いですが全く独立のものですが、まあそれはともかくそこにいたジョシュア・バーンズとピート・ハットという男二人が連名で論文を書いた、割と有名な手法です。
要するに、遠くにあるものはまとめると。近くにある奴の影響は大きいから個別に計算するんだけど、遠くにある奴はあまり影響もないから適当にまとめてしまおうと。
○なるほど、素人にも分かります。
■まとめ方は遠くにいくほど大きくしてやる。そのためには空間をツリー構造にわけておいて、ツリーを辿っていくことで計算していきましょうと。そんな方法です。ちょうど86年にピートがプリンストンで数値計算の研究会をやりまして。
僕はスーパーコンピュータを使っていたころだったんですが、杉本さんに招待がきて、それで杉本さんが僕に「めんどくさいからお前行ってこい」と(笑)。それで彼らの方法をスーパーコンピュータの上で使えるようにしようというのを、87年か88年くらいにやっていたんです。その方法の応用で、GRAPEの上でもツリー法が使えるようにするというのをやりました。最初はこれは……たぶんあんまり考えてなかったな(笑)。
○それだと、遠くにあるもの近くにあるものといったデータを、一回データベースに見に行かないといけないんじゃないですか。その分遅くなったりはしないんですか。
■ええ、その分のスピードはもちろん落ちます。実際に普通の計算機の上でやるとツリー構造をたどっていきながら計算するから−−たとえば、一個のグループからの力を計算するために、まず距離を計算すると。そしてその距離と力の大きさを比べて、大きさに比べて距離が遠かったら、それはもういいとして計算すると。で、大きさがまだ大きかったら、それの一段下のレベルにおりて計算する。たとえば8個だったらその8個一個一個に対して計算すると。
このように条件判定や分岐とかは非常に増えるので、スピードは落ちます。でもそのかわり計算量が、Nの自乗からNlogNへ落ちるんです。だからこれがもう圧倒的に大きくて100万体くらいだったら100万×100万だったものが、100万×1000くらいですむので、計算量としてだいぶ得をする。たとえば速度が十分の1になっても十分引き合う。
○なるほど。
■ただしもちろん、おおざっぱに計算するから計算精度は落ちます。精度を上げようと思うとどんどん計算量が増えますから、高い精度が必要なものに関してはツリー法ではなくて力任せにやったほうがいい。だから問題によって何を使えばいいかは違うわけです。
[09:分子動力学用の専用計算機] |
○素朴な疑問なんですけど。最初に専用計算機を作ったのはどういう人だったんですか。
■専用計算機といってもいろいろな使い道があるのでなにが最初というのは難しいですが、我々のやってるのに近い多体問題用だと一番最初は分子動力学用のものです。
○次号へ続く…。
[◆Information Board:イベント、URL、etc.] |
■イベント:
◇LEDA + yFiles 無料セミナー
日時:平成13年11月20日(火) 13:30−17:00
場所:住商エレクトロニクス(株)本社9階 セミナールーム
http://www.sse.co.jp/comid/engin/leda/sem_with_yfile.html
◇ナノインテリジェント材料シンポジウム開催のご案内
ナノスペースラボ プロジェクト 〜成果と実用化への道〜
バイオ・ナノ協調材料 〜その方向性と展望〜
参加費無料、資料代3000円。11月13日 青学会館
http://snet.sntt.or.jp/imf/imf-WS22.html
◇文部科学省 平成13年度 21世紀型産学連携手法の構築に係るモデル事業 シンポジウム
「知的財産・産学連携ワークショップ」。11月23日(金)−24日(土)、東大
http://www.ip.rcast.u-tokyo.ac.jp/member/sumikura/workshop2001.html
◇ITX2001(第1回 IPA Technology Expo)
http://www.ipa.go.jp/GA/itx2001/
◇京都大学火山研究センター 一般見学会
日時:2001年11月10日(土) 9:30〜16:00
http://aso.vgs.kyoto-u.ac.jp./news.html
◇裳華房 秋の学会(大会・年会等)一般講演会・公開シンポジウム
http://www.shokabo.co.jp/keyword/2001_9_openlecture.html
◇裳華房 秋の研究所等の一般公開
http://www.shokabo.co.jp/keyword/2001_openday.html
■ U R L :
◇ネットサイエンス・キャンペーン
文献管理・論文作成支援ソフト EndNote(R)
http://www.netscience.ne.jp/banners/usaco/endnote.html
◇最新医学論文の紹介・GRCニュースレター
http://www.metamedica.com/
◇日経ナノテクノロジー 松下電器が独自のバイオナノプロセスを開発、量子ドット作製を安価に
http://nano.nikkeibp.co.jp/members/DM/DMNEWS/20011026/3/
◇zdnet トヨタ&ソニーのITカー「pod」を徹底解剖!
http://cgi4.zdnet.co.jp/g/01_1a0a011f11_/news/0110/25/motorshow_m.html
◇zdnet 各社通信カーナビを一斉展示──モーターショー
http://cgi4.zdnet.co.jp/g/01_1a0a012611_/mobile/news/0110/25/naviex.html
◇zdnet 東京モーターショー,インターネットカーを目指し日産は「ネットビークル」で勝負
http://cgi4.zdnet.co.jp/g/01_1a0a013811_/enterprise/0110/25/01102502.html
◇Nature japan 炭疽菌特集
http://www.natureasia.com/japan/anthrax/index.html
◇CNN 太陽に突入直前! すい星の「最期」をとらえた
http://www.cnn.co.jp/2001/TECH/10/26/soho.sun.comet/index.html
◇CNN 電磁波が「がん抑制ホルモン」阻害 環境研、細胞実験で
http://www.cnn.co.jp/2001/JAPAN/10/28/asahias005.asahi/index.html
◇CNN ヒトゲノム解読の米セレラ社、年内に日本へ本格進出
http://www.cnn.co.jp/2001/JAPAN/10/27/asahibs001.asahi/index.html
◇理研 人間の脳活動を世界で初めて高精度でイメージングすることに成功− 大脳皮質のコラム構造を頭の外から観察 −
http://www.riken.go.jp/r-world/info/release/press/2001/011125/index.html
◇NASDA 国際宇宙ステーション(ISS)ロゴマーク日本案の募集について
http://yyy.tksc.nasda.go.jp/Home/Press/j/200110/iss_011025_j.html
◇NASDA ISS搭乗宇宙飛行士訓練レポート9月分
http://jem.tksc.nasda.go.jp/astro/report/0109.html
◇【産総研オープンハウス2001レポート】ヒューマノイドロボットなど最新の研究成果を一般公開
http://pcweb.mycom.co.jp/news/2001/10/19/16.html
◇科学技術者のための総合リソースガイド・NetScience
http://www.netscience.ne.jp/
*ここは、科学に関連するイベントの一行告知、URL紹介など、
皆様からお寄せいただいた情報を掲示する欄です。情報をお待ちしております。
基本的には一行告知ですが、情報が少ないときにはこういう形で掲示していきます。
なおこの欄は無料です。
発行人:株式会社サイネックス ネットサイエンス事業部【科学技術ソフトウェアデータベース・ネットサイエンス】 編集人:森山和道【フリーライター】 |
interview@netscience.ne.jp moriyama@moriyama.com |
ホームページ:http://www.moriyama.com/netscience/ *本誌に関するご意見・お問い合わせはmoriyama@moriyama.comまでお寄せ下さい。 *メールマガジンへの広告掲載に関するお問い合わせはinfo@netscience.ne.jpまで御願いします。 |
◆このメールニュースは、 ◆<科学技術ソフトウェアデータベース・ネットサイエンス> ◆[http://www.netscience.ne.jp/] の提供で運営されています。 |