高能物理先進計算必備程序之一,快要沒人維護了。
随着唯一的長期維護者達到 73 歲高齡,計算系統FORM的命運開始變得撲朔迷離起來。
過去 30 多年,這個程序被視爲粒子物理學研究的基礎工具之一,可計算伽馬矩陣、并行計算、模式匹配等。
計算費曼圖的軟件包 FormCalc 也是在它的基礎上實現。
要知道,費曼圖能夠用圖像描述大型粒子對撞機中粒子碰撞的可能結果,号稱 " 有助于幫助改變物理學家看世界的方式 "。
除此之外,高階 QCD(量子色動力學) β 函數、多重 Zeta 數值(MZV)的數學結構研究等也都用到了 FORM。
甚至在它誕生十數年後,仍舊有大量前沿研究依賴于它。
自 2000 年以來,平均每隔幾天就有一篇基于 FORM 的粒子物理學論文被發表。
但這樣重要的計算程序,現在卻隻靠一位 73 歲的退休人員維護——其開發者荷蘭粒子物理學家喬斯 · 維馬塞倫(Jos Vermaseren)。
如今,随着老爺子年事已高,其後繼維護者還沒找到。
而完全能頂替它的程序似乎還沒有出現,盡管 Mathematica 也能計算,但是速度上完全無法與之相比。
靠硬盤空間求解超長公式
簡單理解,FORM 是一個可以進行符号運算的程序。
相較于更通用的 Mathematica,它更專注于大規模處理符号表達式。
但本質上 FORM 還是數學代數系統,具體的操作過程大概是醬嬸的:
設定函數 f 中,在 x 之前如果出現任何參數,都将它們進行調換。
Symbol x;
Local E = f ( 1,2,x,3,4 ) ;
id f ( ?a,x,?b ) = f ( ?b,?a ) ;
Print;
.end
那麽 FORM 輸出的結果将會是:F=f(3,4,1,2)。
它主要有兩方面特點:
第一、計算快。
FORM 建立了一些專業算法,比如能将費曼圖中的某些部分快速相乘;通過重新排列方程減少相乘、相加步驟。
第二、能處理超級大的方程式。
隻要硬盤空間夠大,多長都能算。
這正是 FORM 最特别的地方。
計算機的存儲模式可分爲兩種。其一是主存,這裏常說的是 RAM(随機存儲器)。它是電腦系統中最重要的存儲器,能和 CPU 直接交換數據,随時讀寫、速度很快,但存儲空間非常有限。另一種是外存,也就是硬盤、固态硬盤、磁盤等。它們的優點是容量大,但計算速度慢。
比如一台筆記本的内存隻有 16GB,但是存儲空間可以到 2TB。
如果想要求解超複雜的物理方程式,那必須要依靠主存。
但問題是,這麽小的容量空間,根本無法處理超長公式。更何況 FORM 生于 80 年代,那個時候的主存容量就更小了。
FORM 選擇了一個巧妙的方法——把硬盤當成主存來用。
通過将主存和硬盤空間 " 分頁 " 處理,然後将方程式放入到不同的 " 頁 " 上,并且爲每一個項都固定一個存儲位置,程序運行時就能快速找到各個項的位置将其帶回真正的主存,而不必訪問其他的項。
這樣做的好處是在擴大主存的同時,還繞開了低效的内存交換操作,可以快速計算複雜龐大的方程式。
憑借着這一特點,FORM 自誕生後便成爲了粒子物理學中的關鍵工具之一。
即便放到現在 FORM 也依舊至關重要——畢竟計算存儲發展的速度,怎麽也追不上物理學方程式加長的速度……
在 FORM 的 GitHub 主頁上也寫着:
FORM 是高能物理領域中許多最先進計算的必備工具。
值得一提的是,FORM 并不能被視爲 CAS 的加強版,它們的編程邏輯并不相同。
上手 FORM 可能需要一點門檻,但隻要跨過去,就是打開一番新天地了。FORM 和 CAS 配合使用可以解決數學、物理中諸多難以計算的複雜問題。
蘇黎世大學教授托馬斯•格爾曼(thames Gehrmann)表示,自己的課題組在過去 20 年中取得的大多數高精度結果,很大程度上都依賴于 FORM。
高能物理學助理教授馬特 · 馮 · 希佩爾(Matt von Hippel)在 Quantamagazine 的文章中也提到,自己的一位同事前不久才使用 FORM 将一項計算的精度推到新高度。
被重視程度卻遠遠不夠
但和想象中不同,這樣一個爲高能物理領域帶來巨大進步的工具,一路發展過來,背後的運維卻 " 冷冷清清 ",以至于現在整個軟件都岌岌可危。
FORM 的起點在 1984 年。當時計算機的角色正在迅速變化,PC 機在這個時期開始普及。
其前身是一個名爲 Schoonschip 的程序,由荷蘭物理學家馬蒂努斯 · 維爾特曼(Martinus Veltman)創建。
和我們今天許多常用的計算機程序不同,當時的程序大都是搭載于外部的 ROM 芯片中,得把芯片插到電腦上才能運行(試想一下光盤)—— Schoonschip 也不例外。
開發 FORM 之初,喬斯使用的是 FORTRAN 語言(也是 FORM 名字的重要來源),這種語言很擅長 " 搞數學 "。
FORTRAN 是由 IBM 爲科學和工程應用開發的,是第一代計算機高級語言。
從上世紀 50 年代起,FORTRAN 一度成了科學和工程計算的首選語言;從 60 年代末到 70 年代初,大多數高性能計算機都支持 FORTRAN,許多專門的編譯器和工具可以用其編寫算法。
而随着計算機技術發展、其它編程語言一個個出現,FORTRAN 慢慢被 C、C++、Python、Matlab 等取代,因爲它沒有對象導向編程的支持,且語法比較笨重。
在 1989 年,FORM1.0 正式發布前,喬斯改用 C 語言把 FORM 重寫了一遍。
但 FORM 其實從誕生起就在被逐漸推廣試用了:1984 至 1986 年間, FORM 最早支持的是 Apollo 工作站,這是上世紀 80 年代的第一批圖形處理工作站。
與此同時,FORM 還發展出了 3 個不同的版本:
FORM:順序版,旨在在單個處理器上運行;
ParFORM:多處理器版,處理器有自己的内存,可以使用集群和系統,同時爲兩個及以上的處理器;
TFORM:處理器共享内存系統的多線程版,主要用于處理器數量有限的系統。
FORM 和 FormCalc 是相互補充的,FORM 作爲一種通用符号計算和公式管理軟件,而 FormCalc 作爲一種特定于高能物理研究的工具。
這麽看來,FORM 貌似一直在 " 茁壯成長 "。但其實從開發至今,維護 FORM 的人數總共也就十餘人。
到現在,隻剩下 73 歲的喬斯孤零零一人還在苦苦支撐。
爲什麽會這樣?
一個重要的原因是:在物理學界,開發程序的努力往往被低估了。
喬斯老爺子無奈地表示:
多年來,我一直看到物理學領域中在計算工具開發上花大把時間的人,得不到一個終身職位。
而且相比之下,喬斯及 FORM 還算是挺幸運的,因爲他本身有終身職位——荷蘭國家亞原子物理研究所(Nikhef)長期擔任理論組研究員。
而且 FORM 也受到了歐洲研究理事會(ERC)的關注。
光是在 2012 年,ERC 就給 FORM 的相關項目資助了 170 萬歐(約合人民币 1235 萬元)。當時喬斯提出把遊戲領域的蒙特卡洛方法,用來求解高能物理方程(這種方程往往要求高精度、計算量巨大)。
并且這是 ERC 給喬斯等 Nikhef 研究人員的第三筆大額撥款。
但同樣是在粒子物理學領域,意大利物理學家 Stefano Laporta 就沒這麽走運了。他也開發了一種很有用的簡化算法,可是整個職業生涯中都沒收到什麽資助……
如今,即便是曾經發展還不錯的 FORM,想要找到後續維護者都有些難了。
因爲這不光會耗費精力、往往得不到高收益,還要求開發人員有過硬的跨學科能力。(其中一科還是粒子物理 ... )
有網友指出:
其實最難的不是寫代碼,而是确保它能正确處理數據。
比如,要對國際粒子物理學委員會編寫的參考書 PDG Review of Particle Physics 行之有效。
如果後續維護不跟進,FORM 很快就會跟不上計算機更新叠代的腳步,變得越來越不可用。
學者 Ben Ruijl 最近在嘗試用 Rust 開發一個新版本的 FORM —— DreFORM,來嘗試減少 FORM 中的 bug。
但是到現在爲止新版本還沒有完成,因爲 Ben Ruijl 不得不因爲自己主要的研究課題而擱置它。
對此,哥本哈根大學(尼爾斯 · 玻爾的母校)的粒子物理學助理教授 Matt von Hippel 表示擔憂:
(假如 FORM 真不行了,)物理學者可能不得不隻能選擇 Mathematica,其速度比 FORM 慢了好幾個數量級。
粒子物理學可能還會因此停滞不前,隻有少數人能夠勝任最難的計算工作。
眼下,喬斯老爺子已在積極思考解決辦法。據說在今年 4 月份,他會召開一個 FORM 用戶峰會,号召大家一起讨論後續維護問題。
GitHub 上,也有不少用戶在一直在爲這個程序找 Bug、提意見。
我們發現最近也有人在更新項目,但似乎代碼出現了一些問題。
FORM 主頁:
https://www.nikhef.nl/~form/
GitHub 主頁:
https://github.com/vermaseren/form
參考鏈接:
[ 1 ] https://www.quantamagazine.org/crucial-computer-program-for-particle-physics-at-risk-of-obsolescence-20221201/
[ 2 ] https://www.nikhef.nl/www/news/nikhef-researcher-jos-vermaseren-receives-prestigious-erc-advanced-grant/
[ 3 ] https://news.ycombinator.com/item?id=33818082
[ 4 ] https://arxiv.org/abs/math-ph/0010025