本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
高能物理先進(jìn)計(jì)算必備程序之一,快要沒人維護(hù)了。
【資料圖】
隨著唯一的長期維護(hù)者達(dá)到73歲高齡,計(jì)算系統(tǒng)FORM的命運(yùn)開始變得撲朔迷離起來。
過去30多年,這個(gè)程序被視為粒子物理學(xué)研究的基礎(chǔ)工具之一,可計(jì)算伽馬矩陣、并行計(jì)算、模式匹配等。
計(jì)算費(fèi)曼圖的軟件包FormCalc也是在它的基礎(chǔ)上實(shí)現(xiàn)。
要知道,費(fèi)曼圖能夠用圖像描述大型粒子對撞機(jī)中粒子碰撞的可能結(jié)果,號稱“有助于幫助改變物理學(xué)家看世界的方式”。
除此之外,高階QCD(量子色動力學(xué)) β函數(shù)、多重Zeta數(shù)值(MZV)的數(shù)學(xué)結(jié)構(gòu)研究等也都用到了FORM。
甚至在它誕生十?dāng)?shù)年后,仍舊有大量前沿研究依賴于它。
自2000年以來,平均每隔幾天就有一篇基于FORM的粒子物理學(xué)論文被發(fā)表。
但這樣重要的計(jì)算程序,現(xiàn)在卻只靠一位73歲的退休人員維護(hù)——其開發(fā)者荷蘭粒子物理學(xué)家喬斯·維馬塞倫(Jos Vermaseren)。
如今,隨著老爺子年事已高,其后繼維護(hù)者還沒找到。
而完全能頂替它的程序似乎還沒有出現(xiàn),盡管Mathematica也能計(jì)算,但是速度上完全無法與之相比。
靠硬盤空間求解超長公式簡單理解,F(xiàn)ORM是一個(gè)可以進(jìn)行符號運(yùn)算的程序。
相較于更通用的Mathematica,它更專注于大規(guī)模處理符號表達(dá)式。
但本質(zhì)上FORM還是數(shù)學(xué)代數(shù)系統(tǒng),具體的操作過程大概是醬嬸的:
設(shè)定函數(shù) f 中,在 x 之前如果出現(xiàn)任何參數(shù),都將它們進(jìn)行調(diào)換。
Symbol x;Local E = f(1,2,x,3,4);id f(?a,x,?b) = f(?b,?a);Print;.end
那么FORM輸出的結(jié)果將會是:F=f(3,4,1,2)。
它主要有兩方面特點(diǎn):
第一、計(jì)算快。
FORM建立了一些專業(yè)算法,比如能將費(fèi)曼圖中的某些部分快速相乘;通過重新排列方程減少相乘、相加步驟。
第二、能處理超級大的方程式。
只要硬盤空間夠大,多長都能算。
這正是FORM最特別的地方。
計(jì)算機(jī)的存儲模式可分為兩種。其一是主存,這里常說的是RAM(隨機(jī)存儲器)。它是電腦系統(tǒng)中最重要的存儲器,能和CPU直接交換數(shù)據(jù),隨時(shí)讀寫、速度很快,但存儲空間非常有限。另一種是外存,也就是硬盤、固態(tài)硬盤、磁盤等。它們的優(yōu)點(diǎn)是容量大,但計(jì)算速度慢。
比如一臺筆記本的內(nèi)存只有16GB,但是存儲空間可以到2TB。
如果想要求解超復(fù)雜的物理方程式,那必須要依靠主存。
但問題是,這么小的容量空間,根本無法處理超長公式。更何況FORM生于80年代,那個(gè)時(shí)候的主存容量就更小了。
FORM選擇了一個(gè)巧妙的方法——把硬盤當(dāng)成主存來用。
通過將主存和硬盤空間“分頁”處理,然后將方程式放入到不同的“頁”上,并且為每一個(gè)項(xiàng)都固定一個(gè)存儲位置,程序運(yùn)行時(shí)就能快速找到各個(gè)項(xiàng)的位置將其帶回真正的主存,而不必訪問其他的項(xiàng)。
這樣做的好處是在擴(kuò)大主存的同時(shí),還繞開了低效的內(nèi)存交換操作,可以快速計(jì)算復(fù)雜龐大的方程式。
憑借著這一特點(diǎn),F(xiàn)ORM自誕生后便成為了粒子物理學(xué)中的關(guān)鍵工具之一。
即便放到現(xiàn)在FORM也依舊至關(guān)重要——畢竟計(jì)算存儲發(fā)展的速度,怎么也追不上物理學(xué)方程式加長的速度……
在FORM的GitHub主頁上也寫著:
FORM是高能物理領(lǐng)域中許多最先進(jìn)計(jì)算的必備工具。
值得一提的是,F(xiàn)ORM并不能被視為CAS的加強(qiáng)版,它們的編程邏輯并不相同。
上手FORM可能需要一點(diǎn)門檻,但只要跨過去,就是打開一番新天地了。FORM和CAS配合使用可以解決數(shù)學(xué)、物理中諸多難以計(jì)算的復(fù)雜問題。
蘇黎世大學(xué)教授托馬斯?格爾曼(thames Gehrmann)表示,自己的課題組在過去20年中取得的大多數(shù)高精度結(jié)果,很大程度上都依賴于FORM。
高能物理學(xué)助理教授馬特·馮·希佩爾(Matt von Hippel)在Quantamagazine的文章中也提到,自己的一位同事前不久才使用FORM將一項(xiàng)計(jì)算的精度推到新高度。
被重視程度卻遠(yuǎn)遠(yuǎn)不夠但和想象中不同,這樣一個(gè)為高能物理領(lǐng)域帶來巨大進(jìn)步的工具,一路發(fā)展過來,背后的運(yùn)維卻“冷冷清清”,以至于現(xiàn)在整個(gè)軟件都岌岌可危。
FORM的起點(diǎn)在1984年。當(dāng)時(shí)計(jì)算機(jī)的角色正在迅速變化,PC機(jī)在這個(gè)時(shí)期開始普及。
其前身是一個(gè)名為Schoonschip的程序,由荷蘭物理學(xué)家馬蒂努斯·維爾特曼(Martinus Veltman)創(chuàng)建。
和我們今天許多常用的計(jì)算機(jī)程序不同,當(dāng)時(shí)的程序大都是搭載于外部的ROM芯片中,得把芯片插到電腦上才能運(yùn)行(試想一下光盤)——Schoonschip也不例外。
而喬斯則希望做出一個(gè)更易于訪問的程序,可被世界各地高校下載的那種。
開發(fā)FORM之初,喬斯使用的是FORTRAN語言(也是FORM名字的重要來源),這種語言很擅長“搞數(shù)學(xué)”。
FORTRAN是由IBM為科學(xué)和工程應(yīng)用開發(fā)的,是第一代計(jì)算機(jī)高級語言。
從上世紀(jì)50年代起,F(xiàn)ORTRAN一度成了科學(xué)和工程計(jì)算的首選語言;從60年代末到70年代初,大多數(shù)高性能計(jì)算機(jī)都支持FORTRAN,許多專門的編譯器和工具可以用其編寫算法。
而隨著計(jì)算機(jī)技術(shù)發(fā)展、其它編程語言一個(gè)個(gè)出現(xiàn),F(xiàn)ORTRAN慢慢被C、C++、Python、Matlab等取代,因?yàn)樗鼪]有對象導(dǎo)向編程的支持,且語法比較笨重。
在1989年,F(xiàn)ORM1.0正式發(fā)布前,喬斯改用C語言把FORM重寫了一遍。
但FORM其實(shí)從誕生起就在被逐漸推廣試用了:1984至1986年間, FORM最早支持的是Apollo工作站,這是上世紀(jì)80年代的第一批圖形處理工作站。
到上世紀(jì)90年代初,全球已有超過200家機(jī)構(gòu)下載了FORM,后面這個(gè)數(shù)字還在不斷攀升。
與此同時(shí),F(xiàn)ORM還發(fā)展出了3個(gè)不同的版本:
FORM:順序版,旨在在單個(gè)處理器上運(yùn)行;ParFORM:多處理器版,處理器有自己的內(nèi)存,可以使用集群和系統(tǒng),同時(shí)為兩個(gè)及以上的處理器;TFORM:處理器共享內(nèi)存系統(tǒng)的多線程版,主要用于處理器數(shù)量有限的系統(tǒng)。FORM和FormCalc是相互補(bǔ)充的,F(xiàn)ORM作為一種通用符號計(jì)算和公式管理軟件,而FormCalc作為一種特定于高能物理研究的工具。這么看來,F(xiàn)ORM貌似一直在“茁壯成長”。但其實(shí)從開發(fā)至今,維護(hù)FORM的人數(shù)總共也就十余人。
到現(xiàn)在,只剩下73歲的喬斯孤零零一人還在苦苦支撐。
為什么會這樣?
一個(gè)重要的原因是:在物理學(xué)界,開發(fā)程序的努力往往被低估了。
喬斯老爺子無奈地表示:
多年來,我一直看到物理學(xué)領(lǐng)域中在計(jì)算工具開發(fā)上花大把時(shí)間的人,得不到一個(gè)終身職位。而且相比之下,喬斯及FORM還算是挺幸運(yùn)的,因?yàn)樗旧碛薪K身職位——荷蘭國家亞原子物理研究所(Nikhef)長期擔(dān)任理論組研究員。
而且FORM也受到了歐洲研究理事會(ERC)的關(guān)注。
光是在2012年,ERC就給FORM的相關(guān)項(xiàng)目資助了170萬歐(約合人民幣1235萬元)。當(dāng)時(shí)喬斯提出把游戲領(lǐng)域的蒙特卡洛方法,用來求解高能物理方程(這種方程往往要求高精度、計(jì)算量巨大)。
并且這是ERC給喬斯等Nikhef研究人員的第三筆大額撥款。
但同樣是在粒子物理學(xué)領(lǐng)域,意大利物理學(xué)家Stefano Laporta就沒這么走運(yùn)了。他也開發(fā)了一種很有用的簡化算法,可是整個(gè)職業(yè)生涯中都沒收到什么資助……
如今,即便是曾經(jīng)發(fā)展還不錯(cuò)的FORM,想要找到后續(xù)維護(hù)者都有些難了。
因?yàn)檫@不光會耗費(fèi)精力、往往得不到高收益,還要求開發(fā)人員有過硬的跨學(xué)科能力。(其中一科還是粒子物理...)
有網(wǎng)友指出:
其實(shí)最難的不是寫代碼,而是確保它能正確處理數(shù)據(jù)。
比如,要對國際粒子物理學(xué)委員會編寫的參考書PDG Review of Particle Physics行之有效。
如果后續(xù)維護(hù)不跟進(jìn),F(xiàn)ORM很快就會跟不上計(jì)算機(jī)更新迭代的腳步,變得越來越不可用。
學(xué)者Ben Ruijl最近在嘗試用Rust開發(fā)一個(gè)新版本的FORM——DreFORM,來嘗試減少FORM中的bug。
但是到現(xiàn)在為止新版本還沒有完成,因?yàn)锽en Ruijl不得不因?yàn)樽约褐饕难芯空n題而擱置它。
對此,哥本哈根大學(xué)(尼爾斯·玻爾的母校)的粒子物理學(xué)助理教授Matt von Hippel表示擔(dān)憂:
(假如FORM真不行了,)物理學(xué)者可能不得不只能選擇Mathematica,其速度比FORM慢了好幾個(gè)數(shù)量級。
粒子物理學(xué)可能還會因此停滯不前,只有少數(shù)人能夠勝任最難的計(jì)算工作。
眼下,喬斯老爺子已在積極思考解決辦法。據(jù)說在今年4月份,他會召開一個(gè)FORM用戶峰會,號召大家一起討論后續(xù)維護(hù)問題。
GitHub上,也有不少用戶在一直在為這個(gè)程序找Bug、提意見。
我們發(fā)現(xiàn)最近也有人在更新項(xiàng)目,但似乎代碼出現(xiàn)了一些問題。
FORM主頁:https://www.nikhef.nl/~form/GitHub主頁:https://github.com/vermaseren/form
關(guān)鍵詞: