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


提 供

7月 1, 2021

【わがスパコン人生】第21回 堀田耕一郎

島田 佳代子
Koichiro Hotta

第21回 堀田耕一郎

スパコンは神様ではないから
きちんとした説明が必要

 

富士通入社当初から長年に渡りコンパイラの開発を続けられた堀田耕一郎さん。幼いころからとにかく物の仕組みに関心があったという堀田さんに、プログラミングの原点、コンパイラ開発の魅力、世間を賑わせた京のこと、現在携わる教育のことなど、お聞きしました。


物の仕組みを追求した少年時代


 ―ご出身はどちらですか?バックグラウンドを教えてください。

出身は東京の文京区、東大の近くです。運動は得意ではなかったけれど、動くのは好きで狭い空き地で野球をやったりはしていましたね。それから、これは今でもそうですが、幼いころからとにかく物の仕組みに興味がありました。

今でもよく覚えていますが、小学校低学年の頃、祖父と叔父が経営していた事務所に月に1回くらいは遊びに行っていました。そこには電話が2、3台あって内線で繋がっていましたが、「どうやったら外からかかってきたかのように内線をかけることができるか。騙すことができるか」と、やたらと電話をいじくりまわしていました。

父が務めていた会社にも時々連れて行ってもらうことがありました。1964年の東京五輪の後位ですかね。そこには電卓がありました。インターフェイス的には電卓と同じだったと思いますが、ガチャガチャ音がしたんですよ。今、思えば中で何か機械が動いていたんでしょうね。当時はそれが電卓だということも分かってはいませんでしたし、私の手元には仕様書なんてものもありませんでした。ただ、どうもこのボタンを押すと、これが起こる、こういうことができるらしいといったことを追求することが大好きでした。カシオミニが数万円でしたが、それよりも10年以上前のことですから、今の金額にすると100万以上はしていたんじゃないでしょうか。貴重なものでしたが、勝手にいじっていたら、幸い怒られなかったので、よく触っていました。壊してしまうと遊べなくなってしまうので、ネジを開けるといったことはあまりしませんでしたが、そうやってなんでもおもちゃにして遊んでいました。

―小学生、中学生の頃に得意だった科目は何でしたか?

 
   

 小学生の頃、国語や作文は苦手でしたが、理科と算数は大好きでした。筆算って習うじゃないですか。筆算で2桁ができれば同じやり方で、3桁でも4桁でもできることに気が付き、もう世の中極めたくらいに思っていました。計算は遅くて大変でしたが。後になって、あれが私の最初のプログラムだったんじゃないかと思いましたね。だって、何桁でも計算できるってことは、そのアルゴリズムが分かったわけですから。小学2年生か、3年生の頃だと思います。

中学と高校は私学の武蔵へ進みました。武蔵では教科書を使わず、先生たちが「面白いでしょ」と、教科書からはかけ離れた話をたくさんしてくれました。私はそれにすっかりはまって、一緒になって多くのことに興味を持ち、理科系魂というのでしょうか。仕組みを追求する気持ちが更にそこで養われた気がしますね。中学生の頃には漠然と将来は理系へ進むんだなと思っていました。

―大学に入学してからの話を聞かせてください。

 ちょうど東大に情報科学科というのが、入学する翌年にできることは知っていたので、そこへ行きたいとは思っていました。それで、入りやすさや勉強したいことなど、色々と考えて理科二類という割と生物、農学系が多いところへ入りました。

東大は今でもそうですが、進学振り分け制度があって、3年生に上がるときに進学先が決まります。それまでは決まりません。教養時代は医学部進学の理科三類も同じクラスだったので、その頃の仲間にはコンピュータ系は殆どいなくて、生物系、医者が多くいます。そこで色々な縁ができたのは良かったですね。

―コンピュータが身近ではない時代に、なぜコンピュータをやりたいと思ったのでしょうか?また初めて使った計算機は覚えていますか?

 きっかけは漫画だったと思います。例えば鉄腕アトムは電子頭脳が入っていることになっているんです。今でいうAIですよね。あれがコンピュータなんだってどこかで結びついたようで、あのコンピュータというのを使ってみたいと思ったのが始まりでした。

初めて使ったのは情報科学科に入った3年生の時で、MELCOM の確か7000でした。ただ、使ったというよりは、カードリーダーにカードを挿しただけで、コンピュータそのものは見ていなかったと思います。

不思議なことに当時の東大では文系の学生は1年生、2年生の時にコンピュータに触れる授業があるのに、なぜだか理系の学生にはその授業がありませんでした。だから、初めてコンピュータを使ったのは、3年生の4月にまずこのプログラムを打ってみなさいと言われた時でしたね。

最初は100までの素数を求めるプログラムを配られて、説明されて同じものを写して、パンチして、自分で計算して持ってきなさいというのが宿題でした。あまり大きくするとメモリが足りなくなるので出来ませんでしたが、100までだったのを1000とか、1万と数を変えるなど、ちょっとだけアレンジして遊んでみました。

その後、大学の学科にもHITAC8800だったか、8700がありまして使いました。使ったと言っても、やっぱりおもちゃのように、こんなことしたらどうなるということをプログラムの上で遊んでいました。

 

コンパイラ一筋


―大学卒業後に入社された富士通で、プロセッサやシステムではなく、コンパイラを選んだのはなぜでしょうか?また。実際にコンパイラをやってみて如何でしたか?

コンパイラの方が直接使うから外に見えている気がしたんですよね。最適化という話も聞いていましたし、プログラムだけでできる方が面白そうだなと思ったんです。

入社後は希望が叶ってスーパーコンピュータのコンパイラを作っているチームに配属されました。コンパイラは沼津にあったんです。沼津工場ができて2年目、3年目かな。東京生まれで、東京を離れたことがなかったので、最初の2、3年は東京に戻りたくて,何とかしてハードへ移れないかな、蒲田のSEに戻れないかななんて考えていましたね。でも、住めば都でしたし、コンパイラの仕事はすごく刺激的でした。

自動ベクトル化というスパコンをスパコンのようにする機能を作るチームでしたが、当時はCrayもまだ自動ベクトル化が弱く、各社が頑張っていた時代だったので、俺たちが一番になるという意識が強かったんですよね。

ハードウェアがまだできていなかったので、新人教育のプロジェクトとしてまずシミュレーターを作りました。命令だけ先に出しておいて、シミュ―レーターへかければスパコンのプログラムが動くようなものを作ったんです。これは終わってから、そのまま製品の一部に組み込まれたり、ハードが来る前のテストに使用されたので、ただの新人の作業ではなく、ある意味役に立つことができました。

シミュレーターを作るのにはハードウェアのこと、少なくとも命令は知らないといけません。1年やっているうちに慣れましたし、おそらくソフトのメンバーの中では、一番ハードウェアのことも答えられるような立場にもなりました。

それから、人前で話すなんてしたことがなかったのに、お客様にVPのプレゼンをするようになりました。しかも最初は得意でもない英語で!ハードやOSの人たちと一緒に説明に行くのですが、他の方は課長、部長クラスだったんですよね。私だけ20代の若造。凄く偉くなった気がしました。そんなことも含めて、色々なことを経験できましたし、お客様に「すごいね」と言ってもらえるのは嬉しかったですよ。物も作ったし。それに、色々な縁もそこででき始めました。大学の後輩にも結構、この分野の有名人がいるんですが、彼らともことあるごとに関わりましたね。

―入社当時の開発について、どんな思いで仕事をされていたのでしょうか?

 当時担当していたFACOM VPシリーズのコンパイラチームでは、それまでのメインフレーム(汎用機)向けのプログラムを『ただ再コンパイルするだけで』スパコン向けのプログラムにできることを主張していました。

つまり、スパコン向けにプログラムを直す必要がないということです。それを実現するためには、コンパイラによる強力な自動ベクトル化機能を持つことが必要でした。

そのために、多くのプログラムを調べて必要な機能を洗い出し、コンパイラに実装していました。そうは言っても、実際にお客様と接していてプログラムを見ると自動ベクトル化できないところが出てきます。そんなとき、高速化するためにはプログラムを修正してベクトル化しやすいように書き換えるチューニングを行いました。

しかし、それと平行して私はコンパイラを修正し、元のプログラムのママでもベクトル化できるように改良を重ねていました。プログラムはすでに修正されているので必要性の少ない作業ではあるのですが・・。

私としては、プログラムをチューニングするのにはあまり気が乗らず、ひたすら自動的に高速化できることを追求していたのです。この思いは、最近の分散メモリ型のスーパーコンピュータではなかなか通用せず、時代は終わったとも感じています。若手からは「自動化原理主義者」と揶揄されることもありました。しかし、自動ベクトル化で世界一のソフトウェアを持っているという意識が強かったので、自信もつきましたし、富士通での時間は本当に楽しかったですね。

―富士通に在籍された39年間、本当に色々なことがあったとは思いますが、特に印象に残っていることを教えて下さい。

 
   

 やっぱり京ですね。自分自身が一番輝いていたと思うのはVPの最初の頃ですが、特筆することをと言われれば京です。あれだけの騒ぎにもなりましたからね。当時はコンパイラを書く現場からは距離を置いていたので、そういった意味では開発者ではありませんでしたが、すぐ近くで観ていましたので大変面白い経験でした。

コンパイラをやっていると、VPの頃から、「ここをこうして欲しい」と、ハードに言わせてもらえたんですよ。これが例えば、今のパソコンもそうですけれど、インテルになんだかんだ言えないですよね。スパコンに関してはそれができたんです。いっぱい言わせてもらうことができ、それがすごく面白かったんです。ただ、あるものを作るんじゃないですよということです。京の時も結構言わせてもらいました。私にとってはそれが最後の花でしたね。

京の時に色々言えたのは、若かりし頃に言ってきたのと同じなので、当たり前だと思っていたんです。ところが、当時の20代、30代の人たちは、「こんなにハードに口を出せるんですね」と驚いていました。そういった経験を彼らにさせてあげられたことはコンパイラ部隊としては大きなことでした。

京はある意味、今も引きずっていて、色々なところでお話をする機会があります。これが一番という意味なんだろうなと思いましたね。本当に良いものができても2番だったら、こんなに長いこと京の話をする機会はなかっただろうと思います。

富士通を退社する直前は企業博物館を見ていましたが、そこでも皆さん、京の説明には食いついてこられましたね。やっぱり1位というのは大きいですね。エンジニアとしては1位だろうと2位だろうと、使われないと意味がありません。使われるものを作ろうと思いますが、企業としてはやはり1位は目指すべきだとは思いますね。

2010年に情報処理学会の50周年記念大会が東大で行われ、私も富士通の代表として安田講堂で話をさせてもらいました。東大の安田講堂で話ができるなんて、貴重な経験でしたがそれも京のお陰でしたね。色々とありましたが、京はとにかく良い機会だったし、関わった人間は皆、やりがいがあったんじゃないかと思いますよ。

―堀田さんにとってスパコンとは?

 おもちゃです。こんなに面白いおもちゃはなかったですね。もちろん、パソコンだって、他のコンピュータだって、同じ問題を解くのに早くなったり、遅くなったりはありますが、スパコンはそれが極端に違うんですよね。

問題を解くためにどうやったら速くできるか。それはアプリケーションの人も考えますが、コンパイラの人はプログラムを変えずに、こうしたら、ああしたらと速いやり方を考えます。特定のプログラムに合わせてパターンマッチングのようにコンパイラをチューニングすることもずいぶんしました。著名な性能評価用プログラムの性能を出す時など、あまりにも特殊な機能で、これはずるいんじゃないか?と思うようなこともありました。仲間内では‘ドーピング’と呼んでいました。何がずるくて、何がずるではないかは微妙なところですが、一般化して,ずるくないと言える範囲で速くする方法を考えます。それがすごく面白くてやっていました。日本国内だけではなく海外のユーザーさんと話をしていても、何とかして速くしたいという意識は同じでしたね。

―今後のスパコンに期待することを教えてください。

使われるべきだし、役に立つことです。お金がかかるのはほぼ間違いありません。どうしても税金が入ってきます。だからこそ余計に、こんなことができるようになりましたとアピールしなければいけないと思うんです。

富岳はコロナ関連のシミュレーションをやっていますよね。それで多くの方に、「富岳」を知ってもらうことができました。富岳じゃなくてもできるよと言う人もいるんですが、アピールってものすごく大事だと思うんです。学者さん、メーカーのエンジニアもそういったアピールがあまり得意ではないので、そこは皆さんに話をしていくのは重要なことだと思います。

先日、京の成果を調べてみたところ、1/3位は星の誕生のように自分の身には直接関係がないテーマだったのですが、2/3はタイヤだったり、産業だったり、すでに役に立っているものでした。私はすぐに役に立たなくても、やるべきであり、それがサイエンスへの貢献だと思っています。来年儲かる話ばかりをやっていたら、世の中は衰退していくと思うんですよね。星の誕生はもちろん知りたいですけれど、それは夢であって、いかに役に立つ話を入れられるかが大事だと思います。2、3年後に役立つ話が8割、残りがもう少し短いスパンとか。役に立たないかもしれない話は1割で、そこに100年後に役に立つかもしれないものを含められれば、それが広報の仕事じゃないでしょうか。

最近はあまり聞きませんが、以前は、「コンピュータで出ているので、これは正しいです」という説明をする人がいました。あれは、「俺は分からない」と言っているのと同じですよね。スパコンを使ったらお墨付きだという人もいますが、それも同じです。スパコンは神様ではないのできちんと説明をしなければいけません。物を速くするのはもちろんですけれど、広報も含めて説明を頑張るのが、それがあって、スパコンを作りましたになると思います。

―今後はどういったことを、やっていきたいですか?

 今、iU(情報経営イノベーション専門職大学)という2020年に開学されたばかりの大学で教員をやっています。学生たちに「起業しよう」「仕事を興そう」と、世の中にイノベーションを起こしていく人材を育成しようとしている面白い大学です。好奇心のある若者が何か新しいことをやってくれる、そのお手伝いをしたいなと思っています。

私は学生の頃から勉強をやらされた感は全くなく、本当に楽しくやっていて、勉強していたつもりもなかったのですが、結果的には勉強をしたことになっていたんでしょうね。富士通にいる間もずっとそうでした。面白いからやっていた。それが勉強になっていたし、生活ができました。常に、面白がる気持ちがありました。それが良かったと思います。だから、あまり仕事と遊びの区別もしていませんでした。

そういう意味では、勉強とか仕事っていう言い方はやめた方がいいんじゃないかと思います。勉強とか仕事だと思うと、途端に面白くなくなるんですよね。勉強が嫌いだという人は大勢いますけれど、皆、何かしら興味があることはあると思うんですよ。「えっ、何これ?!」というのがあると、勉強も仕事も面白くなります。だから、なんでもいいから面白がって欲しいんです。遊んでいたつもりだけれど、実は役に立っていた、勉強になっていたということを探し出して欲しいです。

面白いと思うことは人それぞれなので、それがコンピュータでなくても良いですし、iUの学生の中からスパコンへ進む学生はひとりもいないかもしれません。でも、私はコンピュータを教えていますので、200人中20人くらいにはコンピュータって面白い。こんなおもちゃってないよねって思って新しいことを考えてもらえないか。なんとかして面白さを伝えようとしています。

まだ2年生しかいないのでどうなるか分かりませんが、去年も選択科目だったアーキテクチャの講義を3割程の学生が取ってくれました。4年生になるとスパコンという講義もあります。ここで10人残ったらいいなと思っています。あくまでも選択性なので、負担に感じず、面白いと感じてくれたらいいし、なんとかして好奇心を繋ぎとめたいと思っています。

 

Koichiro Hotta

堀田耕一郎氏 略歴

1980年 東京大学理学部情報科学科卒業
1980年 富士通(株)入社
  FACOM VPシリーズ向け自動ベクトル化コンパイラ開発担当
  以後,富士通マシン向けコンパイラ開発を中心として
  CPUアーキテクチャの設計にも関与
2001年 カナダ McGill大学にてMaster of Management
2005年 OpenMP ARBのDirector of Board就任(~2013)
2014年 富士通の技術史を保全,展示する「富士通DNA館」館長
2015年 北陸先端科学技術大学院大学にて博士(知識科学)
2019年 富士通(株)退職
2020年 iU (情報経営イノベーション専門職大学)教授就任

写真:小西史一