高等物理先進計算必備程式之一,快要沒人維護了。
隨著唯一的長期維護者達到 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 年代的第一批圖形處理工作站。
到上世紀 90 年代初,全球已有超過 200 家機構下載了 FORM,後面這個數字還在不斷攀升。
與此同時,FORM 還發展出了 3 個不同的版本:
-
FORM:順序版,旨在在單個處理器上運行;
-
ParFORM:多處理器版,處理器有自己的記憶體,可以使用叢集和系統,同時為兩個及以上的處理器;
-
TFORM:處理器共用記憶體系統的多執行緒版,主要用於處理器數量有限的系統。
-
FORM 和 FormCalc 是相互補充的,FORM 作為一種通用符號計算和公式管理軟體,而 FormCalc 作為一種特定於高能物理研究的工具。
這麼看來,FORM 貌似一直在茁壯成長。但其實從開發至今,維護 FORM 的人數總共也就十餘人。
到現在,只剩下 73 歲的喬斯孤零零一人還在苦苦支撐。
為什麼會這樣?
一個重要的原因是:在物理學界,開發程式的努力往往被低估了。
喬斯老爺子無奈地表示:
多年來,我一直看到物理學領域中在計算工具開發上花大把時間的人,得不到一個終身職位。
而且相比之下,喬斯及 FORM 還算是挺幸運的,因為他本身有終身職位 —— 荷蘭國家亞原子物理研究所(Nikhef)長期擔任理論組研究員。
而且 FORM 也受到了歐洲研究理事會(ERC)的關注。
光是在 2012 年,ERC 就給 FORM 的相關項目資助了 170 萬歐元。當時喬斯提出把遊戲領域的蒙特卡洛方法,用來求解高能物理方程(這種方程往往要求高精度、計算量巨大)。
並且這是 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 首頁:
GitHub 首頁:
https://github.com/vermaseren/form
參考連結:
本文來自:量子位 (ID:QbitAI)
舉例:
“” -> 「」(全形符號)
PC 機 -> 個人電腦
更易於「訪問」 -> 備份、存取、複製、取得。
可被世界各地「高校」下載 -> 高中、大學、學校。
可被世界各地高校「下載」 -> 備份、複製、取得。