Gemini 4 Argon、Fortranの海洋モデル中核を59分でRustへ
執筆・監修: 佐々木 航公開 更新 4 分で読めます
17万4,000行のFortranのコードから、中核部分を59分でRustに移しました。Googleは11月3日、Gemini 4 ArgonをGoogle Antigravityで動かしたこの社内試験の詳細を公開しました。対象は沿岸の海洋シミュレーションFVCOMで、手作業の移植なら数年かかる仕事だとしています。Antigravity側の提供については、TECHNOVAの記事で確認できます。
指示は1回、条件は4つ
Googleが出した指示は1回で、条件を4つ付けました。
- Rustの安全でないコード(unsafe)を一切使わない
- 計算の繰り返しの中でメモリを確保しない
- 1ファイルを400行未満にし、モジュールごとに動くドキュメントのテストを付ける
- 分岐の95%以上をテストし、乱数の種を変えた100回で、元のFortranと数値の差をゼロにする
実行は3段階です。元のコードを動かして基準の出力を記録するのに11分、264ファイルを調べて設計書を作るのに3分、Rustへの移植と検証に45分かかりました。
| 段階 | 時間 | 速さ | メモリ |
|---|---|---|---|
| 元のFortranとC | 883ミリ秒 | 1.00倍 | 11.84MB |
| 安全なRust | 682ミリ秒 | 1.29倍 | 6.39MB |
| メモリの確保を減らす | 548ミリ秒 | 1.61倍 | 5.83MB |
| 実行の記録で最適化 | 469ミリ秒 | 1.88倍 | 5.48MB |
大きく効いたのは、時間ステップごとに8つの一時配列を24回確保して解放していた処理です。これを、あらかじめ確保した領域に置き換えました。
古いコードの不具合を6つ指摘
設計の段階で、Gemini 4 Argonは元のコードの不具合を6つ挙げました。配列の範囲を超える書き込み、32ビットの掛け算のあふれ、初期化していない値の読み取り、負になりうる塩分の平方根などです。
テストでは、37個の単体テストのうち1個が失敗しました。水の層が1つしかない浅い海で、配列の範囲を超えたためです。エージェントは人に尋ねずに原因を見つけて直し、42個のテストをすべて通しました。分岐の網羅率は96.8%です。元のFortranとの比較も、100回すべてで小数点以下12桁まで一致しました。
17万行すべてを移したわけではない
数字を読むときに、いくつか気をつけたい点があります。
まず範囲です。17万4,774行はリポジトリ全体の行数で、移したのは中核のソルバーです。Rustは13モジュールで、どれも240行未満とされています。計算すると、合計でも3,120行未満です。
次に規模です。速さの比較は1回883ミリ秒、メモリ12MBほどの実行で測りました。ブログは、実際に使う大きな計算で同じ比率になるかには触れていません。
一致の基準も、条件と結果で少し違います。条件は「差ゼロ」でしたが、結果の差は3.91×10⁻¹³です。公開された手順の説明も、許容する誤差を記録して確かめる形です。また、見つけた6つの不具合をRustで直したのか、同じ動きのまま残したのかは書かれていません。直したのなら、なぜ結果が一致するのかも説明が要るところです。
さらに、これはGoogle自身の試験で、費用やトークン数は載っていません。移植後のRustのコードを公開したとの記述もありません。第三者の評価では、Vals AIのCode Migration 1.1で、Gemini 4 Argonは74.4%でした。Claude Sonnet 5.5の87.4%やClaude Opus 5.5の80.5%を下回ります。
ここからは編集部の見方です。この試験で真似しやすいのは、モデルの性能より手順です。先に元のコードの出力を記録し、移植後の出力と自動で比べる仕組みがあるから、エージェントが自分で直し続けられます。一方、「午後のうちに終わる」というGoogleの言葉は、中核のソルバーの話として読むのが妥当でしょう。全体の移植なら、周辺の機能や入出力まで含めた計画が別に要ります。
試すには
同じ流れは、Apache 2.0のmigrate-to-rustとして公開されました。Antigravityで /migrate-to-rust <リポジトリのURL> と打つと動きます。対象はFortran、C、C++、Java、Python、シェルです。外部のコードを動かす前には、利用者の確認を求めます。自動の修正は5回までで、直らない分は報告に残します。
発表は、日本語のコメントや文書を含むコードには触れていません。YOBITSUGI AIではGoogleのGemini 4 Argonを使えます。今回の移植の流れは、Google Antigravityの機能です。
出典
- Modernizing 40-year-old scientific code with Gemini 4 Argon(Google Antigravity Blog・2026年11月3日)
- migrate-to-rust(GitHub)
- Vals Index(Vals AI)