本文へ移動
YOBITSUGI AIメディア
AI ニュース人が監修しながらAIを活用して執筆

Gemini 4 Argon、Fortranの海洋モデル中核を59分でRustへ

執筆・監修: 佐々木 航公開 更新 4 分で読めます

共有XFacebookLINEはてブ

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とC883ミリ秒1.00倍11.84MB
安全なRust682ミリ秒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の機能です。

出典

共有XFacebookLINEはてブ