第24話 デバッグ
9月初旬。
佐々木は院生室で自分の席に座り、モニターを凝視していた。モニターの周りには、計算用紙は特に散乱していない。佐々木の手元には、キーボードがある。紙の束は机の右の奥に積み上げられていた。
結局、あれから一ヶ月近くかけ、瀬田の助けを借りて、数値計算の技術を学んだ。教科書にあるような簡単な問題から、徐々に難しい問題へと挑戦していき、現在、実際に研究で用いる問題を、自分の数値計算のスキルで解けるめどがついた。
ということで、佐々木はここ一週間、研究に使う数値計算のプログラムを書いている。
修士論文の結果のグラフを描くときに、簡単な数値積分のプログラムを書いていたので、プログラミングは今回が初めてというわけではなかった。
今回は、ある連立微分方程式を高精度に数値的に解く必要があり、佐々木は自分でせっせと書いていた。プログラミング言語はFortran90だ。Fortranは非常に古いプログラミング言語で、パンチカードと呼ばれる紙に穴を開けたものをコンピュータに読み込ませてプログラムを実行していた頃からある。物理学の数値計算では数十年以上使われ、今でも最先端の研究で使われている。書き方は最近のプログラミング言語よりも原始的だが、速いことがその特徴となっている。長らく最先端の数値計算で使われているため、計算を速くするための知見が大量に蓄積されている。各国のスーパーコンピューターの性能を最大限発揮させるにはFortranかC言語が良い、とも言われている。
佐々木のモニターには、テキストエディタが表示されており、そこにはびっしりとFortranでプログラムコードが書かれていた。佐々木は午前中からずっとそのコードを眺めている。計算結果が非常に変な結果になっており、多分コードのどこかにバグがある。
あるいは、佐々木の脳内に、バグがある。
今数値計算しようとしているのは、先行研究で使われた方程式を佐々木が拡張した式だ。数値計算が正しく動いているかどうかを確認するためには、手計算で解けるようなケースを探し出して、その結果と数値計算結果が合っているか調べなければならない。しかし、手計算で解けるようなケース自体も佐々木が導出しているため、その手計算が間違っている可能性もある。また、方程式を解くための数値計算手法の選択のところで、有効ではない手法を選んでいる可能性もある。これらの、実際のプログラムコードの上にはないバグのことを、瀬田は「脳内バグ」と呼んでいた。
「うーん」
佐々木は両手を上にあげ背伸びをする。時計を見ると、午後1時を過ぎている。まだ昼ごはんを食べていない。
「佐々木サン、お昼ご飯まだでしたら、一緒に行きませんか?」
留学生のジョンが佐々木に英語で声をかけた。ジョンも研究室に来て四ヶ月経ち、大分日本に慣れてきていた。英語で人の名前を言う時、「佐々木サン」とか「鵜堂センセイ」とかサンやセンセイをつけるようになっている。ジョンは今日本語を勉強中らしい。
ジョンと二人で購買部への道を歩く。外は蒸し暑く、セミが大量にジージー鳴いていた。
「ジョン、研究テーマはどうなりましたか?」
「鵜堂センセイと相談したのですが、まだ決まっていません。『博士課程の学生なら自分で見つけてこないといけない。私はアドバイスしかできない』、と言われました」
「それは大変ですね」
佐々木は実感を込めながら言った。修士論文の研究テーマは、瀬田がいなかったら見つけられなかったかもしれなかった。鵜堂の研究能力は非常に優秀で、研究進捗セミナーなどでの議論では佐々木も大変お世話になっている。しかし、研究テーマに関しては、自分で見つけてこい、の一点張りだ。それを留学生にもしているらしい。
「佐々木サンの研究の進捗はどうですか?」
「私は、今、プログラムのデバッグしているのですが、なかなかバグが取れなくて...」
佐々木はジョンが研究についていろいろと話をしているうちに、購買部に到着した。
店の出入り口近くには、高校生とみられる制服を着た集団がたくさんいる。どうやら中にもいるらしく、購買部は大混雑のようだ。
「ちょっと、入りにくいですね」
と店の方を見ながらジョンが言う。
「多分、修学旅行かなんかのイベントで観光に来た高校生だと思います。午後1時を過ぎている時はいつもはこんなに混んでいませんから」
「ですね」
「ジョン、多分レジもすごく並んでいますので、学食に行きませんか」
「いいですね。わかりました」
「修学旅行生がいなそうな、もみの木・サブウェイ食堂はどうですか?」
「わかりました」
もみの木・サブウェイ食堂、通称サブ食は、購買部のすぐ近くにある階段を降りた地下にある。最初にジョンに紹介した学食はT大で一番有名な食堂だが、このサブ食も人気がある。地下でわかりにくい場所にあるため観光客があまり訪れず、少し落ち着いた雰囲気がある。
佐々木とジョンは、入り口近くのガラスケースの前に立ち、たくさん並んだ食品サンプルを眺めた。
「ジョンは来たことありますか?」
「ないです」
「ここで食べたいものを選んで、選んだものをそこのレジで言うと、食券がもらえますよ」
サンプルの一つ一つの下には、名前と値段が書いてある。日本語で書かれたメニューの下には、英語のメニュー名も書いてある。といっても、
二人とも注文を決め、レジへ。
佐々木はラーメンを頼む。色が赤くて辛くて有名なラーメンだ。ジョンはうどんを注文。
それぞれがラーメンとうどんを乗せたトレーを持ち、最寄りのテーブルに着席。やはり昼の一番忙しい時間は過ぎているので、人はそんなに多くない。
佐々木のラーメンはやはり赤い。そしてとても辛い。
ジョンはうどんをすすっている。
「ジョン、研究したい対象とかはあるのですか?」
「佐々木さんと同じく、超伝導がやりたいです。ちょっと気になる超伝導体があって...」
佐々木はジョンの話を聞きながらラーメンを食べている。
ジョンは、新しく発見された超伝導体の研究がやりたいようだ。しかも、聞いていると、佐々木が修士論文で作った理論が使えそうな雰囲気がある。しかし、ジョンはそれに気がついていない。
食べ終わった佐々木は腕組みをして考える。
ジョンは、話すのに夢中でうどんにほとんど手をつけていなかった。
「...それで、その超伝導体の比熱の温度依存性が面白いのです」
「なるほど」
ジョンに言うべきか。
もしジョンにそのことを言うと、教えてくれ、と言われるに違いない。今自分の研究が行き詰まっているのに、そんな余裕はあるだろうか。
ジョンは話し終わったようで、うどんを食べ始めた。佐々木はラーメンの汁をレンゲで少しずつ掬い、口に運ぶ。辛い。
『運命の女神
M1(修士課程1年)の頃、サブ食で猪俣と一緒の昼食をとった時、彼が赤いラーメンを食べながらそう言っていたのを思い出した。猪俣は、『本当に好き勝手に研究できるのは大学院生の頃だけなんだから、興味があることは何でもやってみるといいよ』と言っていた。
佐々木は目を上げて、ジョンを見る。
「ジョン、その超伝導体の比熱の話、前に僕が瀬田さんとやった理論を使えばうまく説明できるかもしれませんよ」
ジョンのうどんを食べる手が止まる。身を乗り出すように佐々木を見る。
「本当ですか?どんな理論ですか?」
「ええと、まず、磁場中の超伝導体を取り扱う時には...」
佐々木達は昼ご飯を食べた後もその場で議論し続けた。ジョンがボールペンを持っていたので、二人で、近くに置いてあった紙ナプキンに数式やグラフを書いて議論した。佐々木が予想していた通り、ジョンの興味のある超伝導体の実験結果は佐々木と瀬田の理論で説明できそうで、ジョンは是非共同研究にしたいと言ってきた。佐々木は快諾した。
その後ジョンとはかなりの時間一緒に議論した。自分の研究のほかに人の研究に関わるのは、精神衛生上とても良いことだと佐々木は気がついた。共同研究なので、ジョンの研究にも責任がある。その責任が、ジョンの研究を他人事にしなかった。両方が同時に行き詰まることはあまりないので、日々少しずつ前に進んでいる実感ができた。
9月の終わり頃には、佐々木の数値計算の研究も結果が出始めた。
あえて数値計算で調べたことにより、手計算では絶対入れられない効果を入れることができ、その効果が今回の研究で非常に大事だったことがわかった。
10月下旬。5月ごろに応募していた、月額20万円プラス研究費100万円の学振特別研究員の合否の結果がやってきた。落ちていた。
瀬田には『私も一度も通らなかったわよ』などと言われなぐさめられた。
その後しばらく佐々木は、順調に研究生活を過ごした。
(続く)
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます