計算科学と計算機科学の二刀流
コンピュータシミュレーションと聞いて何を思い浮かべるだろうか。たとえば、設計した高層ビルが大地震の揺れに耐えられるか。豪雨がやって来たらどんな水害が発生するだろうか。はたまた、どんな形の自動車にすれば空気抵抗が少ないか……などなど、つまりリアルにはとても実験できないことを、コンピュータによって現実そっくりに描き出して試すことが、コンピュータシミュレーションである。現代では、さまざまな科学分野の最前線でこのコンピュータシミュレーションが大活躍しており、これを「計算科学」と呼ぶ。
一方で、「計算機科学」と呼ばれるジャンルがあり、こちらは〝コンピュータの科学〟のこと。つまり、コンピュータを使ってシミュレーションをして科学することが計算科学であるなら、その道具であるコンピュータそのものを科学するのが計算機科学というわけだ。少し、ややこしい。
吉本は、この計算科学と計算機科学の二刀流で、量子力学に支配されるミクロの世界に挑む。だが、それはどうやら、気が遠くなるほど複雑で、難解で、途方もないチャレンジであるようだ。
「そもそも物性物理を学んでいて、大学院では表面物理の研究室に入りました。半導体などがその対象ですね。最初の電子計算機は真空管を電線でつないで作っていました。でも、現代の半導体は写真を印刷するように、物質の表面に回路を印刷して作ります。ですから、ナノ単位で微細かつ高密度な回路を安定的に作るためには物質表面のことを深く知る必要がある。でも、原子の大きさの世界になると、表面で何が起こっているのか実験で調べるのはとても難しくなります。そこで重要になったのが、コンピュータでのシミュレーションだったのです」
そうして博士時代の吉本は、スーパーコンピュータを使い、物質の状態、性質を調べる仕事に没頭する。これが彼の研究における計算科学の側面だとしたら、博士課程修了後の物性研究所では、物性物理のための専用スーパーコンピュータを導入し、同時にプログラムも開発して運用するという計算機科学の面においても吉本は積極的に関わっていく。というのも、実は吉本、少年の頃からコンピュータというものが大好きだったのだ。
「小学校高学年の時にMSX(8ビットCPUの安価なコンピュータ)というオモチャのようなコンピュータを買ってもらいました。なかばゲーム機みたいなもので、それでプログラミングの初歩みたいなことをしていました。このときに、コンピュータの中にはメモリーというものがあるとか、コンピュータの仕組みを少しずつ認識していったのです。もちろん、ゲームもしていましたよ(笑)。高校生になると、父親のPC98(NEC製の16ビットCPUのパソコン)を使わせてもらっていました」
それほどに少年の頃から親しんだコンピュータだったから、学部2年の時に吉本は大いに悩むのである。物理に行くべきか、情報科学に行くべきかと。
「ほんとうに迷ったんです。結果、物理のほうがさまざまな〝未知との遭遇〟があるのではと、そう思って物理を選択しました」
シミュレーションは写実的であるべきだ
さて、原子の世界はいったいどのようにしてシミュレーションするのだろうか。
吉本の研究対象である半導体、金属、誘電体、磁性体などは電子によって性質が大きく変わるが、その電子の振る舞いは量子力学によって支配されている。となれば、量子力学の方程式を用いてシミュレーションをすることになる。つまり、量子力学の基本原理であるシュレディンガー方程式に基づいて、電子の状態を計算しなければいけないのだ。この方法を「第一原理電子状態計算」というのだが、これがとても難しいと吉本は言う。
「面倒くさいことがたくさんあるのです(笑)。シミュレーションするには物体の位置が表せないといけません。原子の世界では、たくさんの粒子(電子)のそれぞれがどこにいるのかという情報を書き出す必要があります。ところが、量子力学では粒子の位置をちゃんと書き出すことができない。なぜなら、量子力学では粒子の位置は波動関数によって確率的に表現されるからです。つまり、あそこにいるかもしれないし、ここにいるかもしれない。そういう世界なのです」
もしもこれが高層ビルなら、梁だとか、柱だとかが、あそこにあるかもしれないし、ここにあるかもしれないしということになり、シミュレーションは不可能である。もちろん、そんなことはないが、量子力学の世界ではそれが当たり前となる。
「しかも粒子1個だけなら3次元の関数が一つですむのでまだしも、3個なら9次元の関数、4個なら12次元の関数とどんどん増えていくのです。この、どんどん次元が増えていく関数をどうやってコントロールするのかというのが一番の問題です。どうするかというと、かけ算で次元をどんどん大きくしていくのではなく、3次元の関数が電子の数だけあるという、足し算で横に増えていくようにして抑制する方法を取っているのです。粒子の数は何百個にも及びます」
吉本は、シミュレーションはなるべく「写実的」であるべきだと言う。
「自動車の様子を調べるのに、子どもが描いた絵のように、箱に車輪が四つついていただけでは、それがバンなのか、セダンなのか、トラックなのかがわからないように、電子の状態もディテールがわかるように写実的である必要があります。それが第一原理電子状態計算の考え方で、その手法にしたがって私たちはプログラムを作っていくわけです。でも、そこに大きな困難がある。写実的に解くというのは、その関数をできるかぎり丁寧に書く必要があるのですが、たとえば原子核のところにはとても大きな引力が働いているので、いわば〝すべてが尖っている〟のです。滑らかなものだと一つの曲線で描けばいいのですが、〝尖っていて、暴れている〟ものを書くにはたくさんの情報が必要になります。そこをいろいろな工夫をして、さまざまなプログラミング技術を詰め込んでいく。そこがとても複雑で難しい過程なのです」
物理学と計算機科学の両方の知識を駆使
ここでコンピュータシミュレーションのプロセスをおさらいしておこう。
まず、解きたい現象を──吉本の場合は原子や電子の振る舞い──方程式を使って表す。これを「モデル化」と言う。このとき、たった一つの方程式ではなく、複数の方程式をさまざまに組み合わせるので、この時点でまず気が遠くなるほど複雑である。
このモデル化した方程式を、コンピュータで計算しやすいような四則演算式に変え、これをいろいろなアルゴリズムを駆使し、効率よく計算できるプログラムとして書いていく。さらに、スーパーコンピュータなど利用する計算機にあわせて分散並列化(何台もの複数のコンピュータを同時に動かして計算すること)するなど、プログラムをさまざまに見直し、最適化していく。
そしていよいよ計算実行。その後、結果の解析を行い、その現象の研究をおこなうわけだ。
二刀流遣いの吉本は、このプロセスのすべてにかかわる。
「先にも言いましたが、原子(粒子)の数が多ければ多いほど計算は大変です。ですから、要点を絞り、大事そうなところを切り出し、その部分の原子の動きだけを決めるような計算をします。原子核は電子によって〝糊付け〟されているのですが、その〝糊〟の性質を精密に計算をすると、原子核がどのへんに固定されるか、あるいはどこに移動するだろうかということがわかるのです。これが写実的に計算するということで、ここにはある種の〝予言力〟がありますので、この計算の結果と実験の結果とを照らし合わせ、そこで何が起こっているのかを考えていくのですね」
ここで言う「糊」の計算こそが、シュレディンガー方程式で表さなければならない、量子力学ゆえの難しさである。こういった困難を物理学の知識と計算機科学の知識の両方を駆使して克服していくのだ。
「うまく計算するためには、一つには物理をどうやって数式として表現するかという問題と、次にそれをどうやってコンピュータ上で表現するかという問題の二つの段階をクリアする必要があります。コンピュータ上でうまく表現するというのは、計算したいことをどういう要素の情報の流れに変換するかということです。現代のコンピュータがややこしいのは、スマホでも〝4コア(同時に4つの計算がCPUでできること)だ、8コアだ〟と言われているように、計算するところが複数箇所あることです。スマホですら計算するコアが一つだと力不足だということですね。ですから、大きなコンピュータになるとそれがケタ違いになる。たとえばスーパーコンピュータの『富岳』なら何十万ということになります。そうなってくると、情報の流れがとても複雑になりますので、それをどうやってプログラミングするか、制御するかというのがとても大きな要素になってくるのです。言いかえれば、大きくて複雑なものを計算するには、分散並列コンピューティングは避けて通れず、これをきちんと認識して、分散並列コンピューティングにふさわしいようにデータを整理しないといけません。こういった意識は、物理の数式だけを見ているだけではなかなか持てないですね」
10年後に〝計算機革命〟が起きる?
コンピュータシミュレーションが新しい発見を生む。それは珍しいことではないと吉本は言う。新しい未知の物質の構造が、シミュレーションによってすでに予言されていたということはすでにいくつもある。ということは、より強力な計算機が登場すれば、より複雑な物質が発見されたり、より複雑な現象が解明されたりということになる。
「ムーアの法則と呼ばれますが、いままでは1.5年に2倍のスピードで計算機の資源量が増えていきました。でも、今後はわかりません。もはや限界だとも言われています。いま、二つの道があると思います。一つは計算機自体の発展に頼らず、上手に計算するという手法においてなんらかのブレークスルーを起こすこと。もう一つは、エキゾチックな計算機を実用化するという方向です」
〝エキゾチック〟とは〝異質な〟という意味であり、既存のコンピュータとはまったく違った原理で動く計算機ということだ。
「たとえば、かつて、微分方程式を解くのに電気回路の電圧や電流などの変化にそのまま焼き直して解くということを試みた時代がありました。アナログ計算機ですね。もう一度、そういったアプローチがなされる可能性もある。そうなると、いまのプログラミングがずいぶんと変わってしまう。あるいは、物理の分野ごとに専門の計算機が建設されるかもしれない。または、計算原理そのものが違う計算機を作るとか……。これからどんなふうに発展していくかについては、私にもわかりません。いずれにしてもいま、計算機の構造そのものが重要な転換点に差しかかっているのは間違いないという気がします」
吉本は、進化の過程で多様な生物が一気に登場した〝カンブリア大爆発〟のように、もしかしたら10〜20年後には数多くのエキゾチックな計算機が登場するのではとも予測する。
「もしも、この読者の方が高校生だったら、社会人になってしばらくした頃には、コンピュータの世界では大きな転換が起きているかもしれませんよ」
そんな〝計算機革命〟を目撃するであろう若者たちに、吉本はこんなメッセージを送る。
「科学の仕事をするのにコンピュータはとても重要な存在です。しかも理学系だけじゃなく、社会科学などでも同様です。ですから、コンピュータが苦手な人もいるかもしれませんが、上手に情報処理ができると、人間の力だけではできないことがたくさんできるようになります。ぜひ、コンピュータとうまく付き合っていってほしいですね。とくに、プログラミングの背後にある計算機とはどんな仕組みなのだろうかということを意識することが大事です。たとえば外国の言語を学ぶとき、その背後にある文化を知ることが大切であるように、コンピュータの中でどんなことが起きているのかを知ることはとても重要だと思います」
さて、研究における喜びは何かをたずねると、こんな答えが返ってきた。
「美しい解法をコンピュータで実現できると、なんか、嬉しいんですね(笑)。どちらかというと、計算結果よりも、解き方自体のほうに興味があるのです。美しいプログラミングができると、それは自然でコンピュータの構造に逆らわないものになっているので、それゆえに分かりやすく、速い。そういうものを目指しています」
ということは、一番の夢は?
「はい。美しい計算手法を見出すことですね」
※2025年取材時
取材・文/太田 穣
写真/貝塚 純一


