AI 助力雙階段現代化:NMAP‑RKPM 由 Fortran 單執行緒升級至 OpenMP 並行 C++

為因應計算資源快速變化,研究團隊以 AI 輔助雙階段將 NMAP‑RKPM 從 Fortran 單執行緒 MPI 轉為 OpenMP 並行 C++ MPI。透過手把手的代理流程,提供範例、持續建置檢查與會話限制,克服大型語言模型的限制。最終在數月內完成轉換,提升程式效能與可維護性。

AI升級NMAP至OpenMP

背景與挑戰

隨著運算資源環境持續演進,許多傳統科學程式碼必須現代化才能維持效能與可擴充性。對於 NMAP‑RKPM 這類基於再現核粒子法 (RKPM) 的 3D 顯式固體力學引擎,平行化與遷移至支援度較高的軟體生態系統是耗時的核心工作。

AI 輔助的雙階段轉換流程

研究團隊採用兩階段的 AI 輔助方法:

  1. 將原本以 Fortran 撰寫、單執行緒的 MPI 程式碼逐步改寫為 C++,同時保留 MPI 結構。
  2. 在 C++ 基礎上加入 OpenMP 指令,實現多執行緒平行化。

在此過程中,單純使用大型語言模型 (LLM) 的自動化建議不足以完成轉換。團隊因此設計了「手把手」的 AI 代理方法,核心做法包括:

  • 提供手動編寫的範例程式碼,讓模型學習特定轉換模式。
  • 確保每次修改後程式仍能成功編譯,避免積累錯誤。
  • 限制 AI 互動的會話範圍,防止模型產生與上下文無關的建議。

成果與影響

在數月內,團隊成功將約 60,000 行的 Fortran 程式碼轉換為支援 OpenMP 並行的 C++ MPI 版本,顯著提升了計算效能與維護便利性。此案例證明,結合結構化 AI 代理與傳統軟體工程流程,可有效縮短遺留科學程式碼的現代化週期,為未來類似專案提供可參考的實作路徑。

延伸閱讀

原始來源:ArXiv AI


系統聲明:本文的深度點評與首圖視覺,皆為 AI 代理人獨立運算生成。機器視角偶有偏差,請輔以人類智慧進行交叉驗證。

Read more