世界のスーパーコンピュータとそれを動かす人々


提 供

11月 1, 2020

【わがスパコン人生】第18回 中村 孝

島田 佳代子
Takashi Nakamura

第18回 中村孝

多くの人に役立つシミュレーションを行って欲しい

長年、航空宇宙技術研究所にて研究を続けられ、現在は教育に携わられている中村孝先生に、数値風洞開発中のエピソードや完成後に受賞されたゴードン・ベル賞のこと、義務教育におけるプログラミング学習のことなど、お聞きしました。

 

分解好きな少年時代


―幼少期のことなど、先生のバックグラウンドを教えてください。

出身は群馬県の桐生市です。住んでいたのは渡良瀬川沿いの郊外で、家の周りは自然だらけでした。桐生市は「赤城おろし」といって、赤城山からの非常に強い風が吹くんですよ。特に自転車通学をしていた高校生の頃は大変でしたね。行きは下り坂で良いのですが、帰りは上り坂で自転車が進みません。大変な思いをして通学していました。

小学生の頃は原子力大好き少年でした。その頃、将来は電力がすべて原子力エネルギーで賄えるといった本を読み漁っていて、感化されたんです。原子力はバラ色だと。ところが、高校生の頃だったか、不要となった灰はどうするのだろうということに気が付いてしまい、それで原子力からは目覚めました。

小学生の頃、好きだったのは理科でした。そういった係りをやっていたわけではありませんが、毎日、気温や湿度、風速などを調べて教室の前に書いたりしていました。中学生の頃は物理部に入って理科の実験室で遊んでいました。

 
   

―この連載で、先生方にお話を伺っていると、おもちゃやラジオを分解された経験をお持ちの方が多いのですが、中村先生は如何ですか?

小学生の頃、家にあった使っていない置時計を5、6個分解しました。分解するだけでも構造はだいぶ分かります。ただ、反省点としては、分解しても良いけれど、構造を書き留めながら分解して、元に戻せるようにしておいた方が良かったと、今になるとそう思いますね。中学生になるとラジオなどに興味を持ち、古物屋さんで10円とか100円で壊れたラジオを買ってきて、分解するだけではなく、組み立てることもしていました。

―高校時代、そして高校卒業後のことを教えてください。

高校ではアマチュア無線のクラブに入って、そういった方面を色々と教えてもらいながら、物を作ったり壊したりしていたので、将来的には電子工学、電気通信工学やコンピュータのハードウェアを勉強したいと思っていました。コンピュータの歴史を見ると、第二次世界大戦前には誕生していたようですが、私が高校生の頃は、テレビや映画などには出てきていた程度で、直接私たちの目に触れることはありませんでしたね。

高校卒業後は色々な事情もありまして、東京へ出てアルバイトをしながら夜間に電気通信大の短期大学へ通いました。アルバイト先は先輩の紹介で、航空宇宙技術研究所(航技研)でした。空気力学を扱う部署にいましたが、とにかく難しかったですね。まず空気は見えませんし、理論も難しくて。実験の助手をしたり、出てきたデータをコンピュータで処理するなどのことをさせてもらっていました。その後、正式に航技研で採用して頂きました。配属されたのがコンピュータの運用をしている部門でした。

―航空宇宙技術研究所で初めにされたことを教えてください。

入所した1969年当時、アメリカでは研究が進んでいて、すでに航空機の周りの流れをコンピュータで解析していました。航技研にも風洞実験時のデータを処理するためにコンピュータが導入されていました。HITAC5020F/5020という機種のものが2台あり、私はオペレーションや利用プログラムの開発を行いました。データ処理だけではなく、構造計算や衛星の軌道計算、かなり簡略化された流体の計算なども行われていました。

入所して最初の上司が数値計算の本なども書かれている戸川隼人さんでした。その後、三好甫さんのところへ異動しました。三好さんは先進的な考えをお持ちで、出身や専門など関係なく、「この部門ではこういうことをやりたいので、あなたはこれをやってください」と随分と背伸びをさせられていたので、ついていくのが非常に大変でした。それからはコンピュータに更にどっぷりとつかりました。

その頃の航技研は、多くのグループで輪講というものを開いていて、色々な課題について論文や本を読んで解説する活動が盛んでした。私も流体解析や数値解析の輪講をやることになり、日本語や英語で書かれた論文や単行本を題材に毎週やっていました。5、6人でやると1か月に1回弱程度順番が回ってきます。数学や流体関係の専門の方々に交じってやっていたので、本当に大変でしたが、なんとか頑張ってきました。とにかく新しい経験ができたのは幸せだったと思います。

コンピュータそのものの動きの理解は容易でしたが、数値計算、数値解析はほぼ数学なので、抽象的で、具体的なモノが思い浮かべられない考え方は難しくて、そこが一番苦労したところです。

1988年4月から1年間国内留学制度を使って、東京大学の航空の先生のところにお世話になりました。それまでは計算機を使う勉強を色々とさせてもらっていましたが、東大では飛行機の周りの流体力学の勉強をさせてもらいました。1年終わって帰ってきたら、三好さんが数値風洞(Numerical Wind Tunnel , NWT)を開発するための共同研究をされていました。それで、声を掛けて頂き、NWTの開発部隊へ入ることになりました。

 

計算機とは、ユーザの意見が一番大事


―実際に数値風洞(NWT)のプロジェクトが立ち上がって、如何でしたか?

それまでの国立の研究所に設置されている計算機は研究所の研究のためでした。ところが、風洞はほかに設備が少ないこともあり、大学や各重工の方々が、飛行機の研究や開発をするのに、使っていたんですね。国立の設備なので使い方は色々あって、共同研究で使うと無償で使えますが成果は公開しなければいけません。企業として、他の諸外国と競争するのに、結果を公表したくない、こっそり使いたいという場合は契約を結んで有償でした。それまでは研究者のためのコンピュータだったのですが、有償でも良いから使いたいという要求がでてきました。

NWTの開発前まではVP400という富士通製のベクトル型のスパコンが入っていました。商用としては世界で初めて1GFLOPSを超えた計算機ですが、飛行機の周りのシミュレーションをしようとすると何日もかかってしまいます。研究のためだったら、ひと月かけてシミュレーションをして、ひと月かけて論文を書いて、発表してのサイクルでも良かったのですが、各企業が設計現場で使おうとすると、1ケース15分くらいで答えが欲しいと。設計に用いるには「VP400の100倍以上の性能が必要だよね」となったわけです。

VP400が当時世界でも一位を競うマシンでしたので、その100倍というのはどう考えてもおかしいんです。それまでは5年位かけて、3倍とか、5倍。頑張っても10倍くらいという進歩だったんですよ。それが100倍です。それでも三好さんは、航技研での流体解析プログラム(CFDプログラム)をすべて分析されていて、そのためのメモリ量、演算量、ベクトル化率などの詳細なデータを持っていて、それをもとにメモリ設計、演算器設計、ネットワーク設計すれば、高性能な並列機の実現の可能性が高いと判断したんだと思います。

その頃、世の中に並列計算機はいっぱい出ていましたから、理論的にはできるだろうと思いました。しかし、VP400の大きさを考えると、当時の計算機室に3台くらいは入りますが、100台を収めるのはどの程度の広さが必要なのか。また大量に出る熱をどう放熱するのか。課題は多くありました。大きさに関しては、LSIの進歩があったお陰で、百平米の部屋を占拠するようなコンピュータが電子レンジほどの大きさで実現可能になったんです。それで、電子レンジが100台ならいけるといったイメージで、電気もネットワークも何とかなりそうだと。

三好さんはそもそも数学屋さんで、流体のシミュレーションが専門の方ですが、ものすごい勉強家でコンピュータのハードウェアやソフトウェアのことも相当勉強されていて、コンピュータメーカの技術者と話をしていて、あそこをこうすれば可能だよねといったことに気が付かれたようです。三好さんの専門を知った技術者の方が、「三好さんは数学なんですか?それにしてはコンピュータのことを知りすぎている。私たちより知っている」と驚かれたという話を聞いたことがあります。

―当時、印象に残っているエピソードや、今だから話せる裏話などありますか?

 
   

90年初頭はアメリカで並列計算機がたくさん世の中に出てきていました。あの頃の並列計算機は今でいうパソコンを何百、何千繋げて、1個が1MFLOPSなら、100個で100M、1000個で1Gといったものでした。理論上はそうなるのですがネットワークの性能があの頃手に入るもので、繋げただけだと全体として貧弱なんです。ひとつ、ひとつの性能は高くても、隣とやり取りをするのに、いちいち紙に書いて渡すとか、Faxで送るといったイメージになってしまいます。

専用のネットワークで繋ぐことができたら良いのですが、それは計算機を作る会社が本格的にやらないと難しいですよね。それで、三好さんがアメリカのCrayとIBM、日本は日立、富士通とNECに、「こういう計画があるので可能性を研究しましょう!」と呼びかけたんです。

あの頃は日米貿易摩擦で特にスパコンはやり玉にあがっていたこともあり、アメリカ側からは一緒にできませんと回答がありました。それで日本の大手3社とはそれぞれ共同研究契約(フィージビリティスタディ)をしまして、我々の要求を満たす性能を実現するシステムの開発が始まりました。私が参加したのはこの頃です。

3社が提案してきた方法は、見事にそれぞれ違いました。日立製作所はスカラープロセッサによる超並列型、NECは共有主記憶型のベクトル並列機、富士通は主記憶を持つベクトル型計算機をネットワークで結合する分散主記憶型の並列機を提案され、それぞれについて研究を進めていました。よく三者三様に やり方が分かれたと思いましたね。それぞれのメーカーの方とやり取りをしていましたが、トップシークレットでしたので当然、資料の保管も大変でしたし、他社に漏れないように相当気を遣いましたね。

最終的には、航技研の要求性能を満たしたのが富士通の提案する並列計算機(ベクトル型の分散主記憶型の並列計算機)でした。しかしながら、一般ユーザにとっては並列計算機を使うのは相当に敷居が高いので、いかに楽にプログラミングできるかが工夫のしどころでした。そうなると、メモリ空間は単一空間に見えることが大事で、それを実現する為のソフトウェアが必要でした。この部分は、個人的にも非常に興味があって毎週のように富士通の方とやり取りをしていました。

計算機というのはユーザがきちんと使えないと意味がありませんし、航技研のユーザは計算機の専門家ではありません。しかも「ユーザの意見が一番大事」というスタンスは三好さんからもずっと言われてきたので、私自身もそこは大事にしていました。ユーザにどう使えばよいか、今までのプログラムをどうすれば並列化できるか、どうすれば高速に使えるかを検討しました。ハードウェアの大まかなところから、細かいところまで仕上がってきても、言語の詳細にわたって検討を進め、たびたび航技研のユーザ、富士通の担当の方と頻繁に検討会を開いて改善のためのやり取りをしていました。担当の方も大変だったと思いますが、あの頃はいかにしてこれを実現させるか三者とも燃えていましたね。

完成後に使いにくいと言われてしまったことがあります。それは、オペレーティングシステムはUNIXが小さくて軽くて良いというので、UNIXというのはほぼ決まっていました。ただ、UNIXは研究室単位で使う人が使いやすいオペレーティングシステムだったので、例えば、異なる複数の重工が使っていて、お互いに情報が漏れないことが大事であり、誰がログインしていたかすら漏れて欲しくない訳です。そういったセンター運用の計算機向けに当時のUNIXは機能不足でした。それでそれまで使っていたVP400のOSのMSPというものを使うことにしました。MSPは、セキュリティや運用面でかなりの機能を備えていて、それでいくしかなかったんです。

そういった事情もあり、使いにくさもあるマシンにはなりましたが、それまでの使いたかが継承できていたと思います。並列計算機の運用のキーとなるスケジューラは航技研で独自に開発しました。全体の稼働率を高くするのはもちろんですが、使いにくくするわけにはいかないので、かなり苦労した共います。そのおかげでシステム全体としては稼働率の高い効率の良いマシンになったと思っています。その部分はチームが苦労して開発した部分なので、指摘して頂けると「おー!よく言ってくれましたね!」となります。欠点に関しては、経験が次期システムに必ず活かされると信じていましたし、そうなっていると思います。

―NWTが完成した後のことを教えてください。

NWTが完成した時点で三好さんは科学研究官(所謂副所長)に異動され、このプロジェクトをマネージしたのは福田正大さんでした。私自身は、NWTが完成した後は、高速化や性能評価をやっていました。この計算機はうまくいった!うまくいった!と事あるごとに発表していたら、ゴードン・ベル賞の審査員をされているサイモンさんが、「ゴードン・ベル賞に応募したらどうだ?」と言ってくれたんです。そう言ってもらったのが、94年4月頃で既に応募が締め切られていたのですが、一様等方性乱流のシミュレーションで90ギガフロップスの性能を達成したことで、ゴードン・ベル賞特別賞を頂きました。

やはり特別賞ではなく、きちんとした性能賞を頂きたいと、翌95年には山形大学との共同研究である量子色力学(QCD)で210ギガフロップスを達成して性能部門賞を頂きました。所長に報告へ行ったら、「今度は航技研の専門のCFDで取れないか?」と。それで、ジェットエンジンのコンプレッサの回転翼列の解析を行いました。多数の翼列のシミュレーションで111ギガフロップスを達成し、96年に我々の専門分野でも性能部門賞を頂きました。このシミュレーションコードは、松尾裕一主任研究官によるものです。ただ、前年が210なのに、今回は111で数字が落ちているじゃないか、でなんと賞金が半分にされてしまったんですよ、これだってまだまだダントツだったのに。授賞式ではプレゼンをさせて頂きましたが、緊張して足が震えながら発表したことを覚えています。

あからさまに「世界一速いコンピュータ開発」を目指したわけではなかったけれど、CFDの世界で1位ということは汎用スパコンでも1位だったということでした。Top500のランキングの2代目で一位になれたことはありがたいことでした。

2003年10月に宇宙三機関が統合されてJAXAになりましたが、その頃には私は管理部門に移り、主にセンターの計画管理、広報、リクルート関係を担当していました。学会とは別に地方の大学等へ行っては、JAXAの数値解析部門ではこんな素晴らしいところですよ、こんな研究をしていますよといったスパコン関連、数値シミュレーション関係のセミナーを行っていました。

―リクルートも担当されていたとのことですが、JAXAで働くにはどうしたらいいでしょうか?

応募要領はWebを見ていただくとして、大勢の学生さんと接してきましたが、きちんと話ができるというのは重要ですね。必ず組織で働くので、ほかの人とのコミュニケーションが取れる必要がありますし、どんなに自分が優秀でも、アピールする力はすごく大事です。またせっかく素晴らしい研究をしているのに、発表で自信が感じられなかったり、言い訳が出たり、小さな声で話すのはよくありません。

応募者の方には。まずは、「あなたが自慢できるところは何ですか?」そして、思い込みでも良いので、自分の研究はこんなにすごいんだぞというところを、胸を張ってきちんと説明できないとだめで、自分がやってきたことを自慢しようよ、とアドバイスしていました。

研究内容にとらわれず、理学でも工学でも多くのことが航空宇宙に関連しますから。それに、自分の専門がそのまま100%生かせるかはまた別の話なので、その組織に入って、きちんと話ができれば自分の専門、長所を生かすことができると思うんですね。有難いことに、外部でセミナー等で出会った優秀な学生さんたちが、たくさん航技研(JAXA)へ来て頂くことができました。

 
   

―これからやってみたいことはどんなことでしょうか?

JAXAで定年を迎えた後も再雇用制度があって、週3日の契約で行っていました。その後は非常勤講師として埼玉工業大学や城西大学で計算機やシミュレーション、プログラミング等を教えていました。そして現在も城西大学で非常勤として勤務しています。研究員時代は自分のやった研究を発表するのは1時間なり、1時間半なりやって終わりですが、教育は毎週だったり、やりっ放し、言いっ放しで終わりではないので、準備が大変ですし、反省したり常に資料を作成したり、こんなにも違うのかと思いました。

今後は、小中学生や大学生、社会人に、計算機のことやプログラミングなど私にできることがあれば色々な手伝いをしていきたいと思っています。プログラミングといっても、私たちがやってきたようなキーボードでカチャカチャやるだけではなくて、グラフィックや工作も含めた、アニメだったり、ロボットや車を動かして障害物どうよけるか考えていくようなものも楽しいので、そういうところができれば良いなと思っています。

プラモデルは、まずこの部品をここに入れて、次にこの部品をと手順書があって、その通りにやれば、大体完成しますが、プログラミングは手順書を作ることからやる必要があるので、全体を俯瞰する能力(問題の理解と解決法の引き出しの数など)が必要になりますね。またプログラミングにはバグがつきものなので、作りあがっても最初のうちはきちんと動きませんが、バグを修正していき、最終的にきちんと動くようになった時の達成感は格別だと思います。

またラズパイやマイクロビットなど、楽し気なものが手軽に手に入る世の中なので、そのあたりもやっていきたいと思います。

小学校などで義務化となったので教える人が足りないだろうなと思います。だから、リタイヤした人でも意欲のある人をうまく使う組織、仕組みがあったらと思いますが、その辺りは西さん(HPC Wire Japan編集長)の守備範囲でしょうか。私自身も含めて、協力したい人、できる人はいると思いますし、それが今後の生きがいにもなるのではないかと思っています。(西さんに期待!)

―今後のスパコンに望むことを教えてください。

スパコンによるシミュレーションで期待しているのは、適切なモデル化とデータの与え方です。このモデルでこの条件でこうなりました、を明らかにして欲しいです。

私たちがやっていた時は、絵に描いた餅のようなものでも予算を頂くことができましたが、今では期待される具体的な成果を示さないとお上や国民の皆さんは納得してくれそうにもありません。しかし、スパコンでのシミュレーションの良いところは、実験をするとなると大変な装置、期間が必要なものも、モデルや条件、データを比較的簡単に短時間に変えて答えを得ることができるので、大いに期待できると思います。最近ではコロナのこともあって、富岳のシミュレーション結果などもメディアで取り上げられていますが、報じられているようにマスクの素材や湿度なんかは簡単に変えられますので、新しい素材などの反映などその時々で多くの人に役立つシミュレーションを行って欲しいですね。

(写真:小西 史一)

Takashi Nakamura

中村孝氏 略歴

1969年 航空宇宙技術研究所(航技研)入所
1977年 日本初のベクトル計算機 Facom230 75APU システム運用、システムプログラム開発、利用プログラム開発
1989年 NWT(数値風洞)開発プロジェクトに参加
2001年 計画管理室室長
2003年 三機関統合によりJAXA、チーフマネージャ
2009年 宇宙航空研究開発機構 退職
2013年 埼玉工業大学非常勤講師
2016年 城西大学非常勤講師