僅剩 1 位 73 歲開發者苦撐,這個能求解超複雜物理方程式的計算程式快要沒人維護了

162 回覆
256 Like 7 Dislike
2023-06-23 00:18:40
僅剩 1 位 73 歲開發者苦撐,這個能求解超複雜物理方程式的計算程式快要沒人維護了


高等物理先進計算必備程式之一,快要沒人維護了。


隨著唯一的長期維護者達到 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 是高能物理領域中許多最先進計算的必備工具。 (https://github.com/vermaseren/form)




值得一提的是,FORM 並不能被視為 CAS 的加強版,它們的程式邏輯並不相同。

上手 FORM 可能需要一點門檻,但只要跨過去,就是打開一番新天地了。FORM 和 CAS 配合使用可以解決數學、物理中諸多難以計算的複雜問題。

蘇黎世大學教授托馬斯・格爾曼(thames Gehrmann)表示,自己的課題組在過去 20 年中取得的大多數高精度結果,很大程度上都依賴於 FORM。

高能物理學助理教授馬特・馮・希佩爾(Matt von Hippel)在 Quantamagazine 的文章中也提到,自己的一位同事前不久才使用 FORM 將一項計算的精度推到新高度。



被重視程度卻遠遠不夠
但和想像中不同,這樣一個為高能物理領域帶來巨大進步的工具,一路發展過來,背後的維運卻冷冷清清,以至於現在整個軟體都岌岌可危。
2023-06-23 00:19:05
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 首頁:

https://www.nikhef.nl/~form/

GitHub 首頁:

https://github.com/vermaseren/form
2023-06-23 00:26:42
2003年第一個Commit
https://github.com/vermaseren/form/commit/b80588f41583a8ebd6e108f7d9a440f1ecfcd969






20年黎都冇900粒星星






全能嘅連登仔可唔可以去派酒
多一粒星星多一份關注
可能某一日就會有神人見到呢個Repo然後接力
2023-06-23 00:27:54
2023-06-23 00:37:45
感覺好似要靠日本人
2023-06-23 00:47:17
https://github.com/vermaseren/form/releases/download/v4.3.1/form-4.3.1-manual.pdf

s     x(:10),y;
L     F=y^7;
id    y=x+x^2;
print;
.end

Expand (x+x^2)^7 到 x^10 只係0.01s
2023-06-23 00:50:49
Ai 救唔救到
2023-06-23 00:53:45


Takahiro Ueda (植田高寛)

Department of Mathematics, Faculty of Medicine, Juntendo University
順天堂大学 医学部 一般教育研究室(数学)

今年一月升咗職做 Associate Professor

專攻 Theoretical Particle Physics

其中兩篇關於FORM嘅論文

Code Optimization in FORM
https://arxiv.org/pdf/1310.7007

Forcer, a Form program for the parametric reduction of four-loop massless propagator diagrams
https://arxiv.org/pdf/1704.06650
2023-06-23 00:55:44
對不起,我沒有找到名為"FORM"的程式語言的任何資訊。可能您提供的程式語言名稱有誤,或者這是一種在我於2021年9月以前的知識切斷日期之後發展出來的語言。如果您能提供更多信息或更正語言名稱,我很樂意提供更多幫助。
2023-06-23 01:02:07
祖國又話好多人才
2023-06-23 01:05:46
我用Wiki 個簡介同佢講完佢就識醒水


FORM is a symbolic manipulation system. It reads text files containing definitions of mathematical expressions as well as statements that tell it how to manipulate these expressions. Its original author is Jos Vermaseren of Nikhef, the Dutch institute for subatomic physics. It is widely used in the theoretical particle physics community, but it is not restricted to applications in this specific field.


Thank you for providing the additional information. FORM is indeed a symbolic manipulation system, and it's used primarily in the field of theoretical particle physics. Its fundamental task is to help scientists manipulate mathematical expressions.

While FORM is not a programming language in the traditional sense, it does have its own syntax and functionality that allows users to perform calculations and manipulate mathematical expressions. Here's a very basic example of FORM's syntax:

Symbol x,y;
Local F = x^2 + y^2;

* Perform a substitution
id x = y;

Print +s;
.end


In this code, the Symbol keyword is used to declare symbols x and y. A local expression F is then defined to be the sum of the squares of x and y. The id function is then used to substitute x with y, effectively replacing all instances of x in the expression with y. Finally, the Print +s; command prints the result of the substitution, and .end signifies the end of the program.

Please note that the actual usage of FORM in theoretical physics involves much more complex operations. The system is capable of handling very large expressions, making it useful for calculations in quantum field theory and other areas of particle physics. If you're interested in using FORM, I recommend checking out the official documentation or other learning resources to get a comprehensive understanding of its capabilities.


然後我問佢拎多啲example

Sure, I can provide a few more examples of FORM syntax. Please note that these are basic examples, and FORM's true power lies in its ability to handle and manipulate complex mathematical expressions, which is especially useful in the field of theoretical physics.

**Example 1: Factorization**

Symbol x,y;
Local F = x^2 - y^2;

* Factorize the expression
Factorize;

Print +s;
.end

In this example, Factorize; command is used to factorize the expression F. The output would be (x - y)*(x + y).

**Example 2: Simplification and Substitution**

Symbol a,b,c;
Local G = a^2 + 2*a*b + b^2;

* Simplify the expression
Simplify;

* Substitute a+b=c
id a+b = c;

Print +s;
.end

In this example, Simplify; command is used to simplify the expression G, which would result in (a + b)^2. Then, id a+b = c; substitutes a+b with c in the expression.

**Example 3: Differentiation**

Symbol x;
CF f;

Local H = f(x);

* Differentiate with respect to x
Derive x;

Print +s;
.end

In this example, the function f(x) is defined and the Derive x; command is used to differentiate H with respect to x.

FORM is a powerful tool for symbolic computation, and these examples barely scratch the surface of its capabilities. For complex tasks in theoretical physics, FORM can perform series expansions, integrations, and a wide variety of other manipulations on mathematical expressions. Please refer to the FORM manual or other resources for detailed information on its syntax and capabilities.



不過好似冇呢啲Command
2023-06-23 01:11:56
到無人維護又用唔到嗰時自然會有人用現代language再寫過架啦 反正幾十億既粒子對撞機都俾錢整 既然無人珍惜咪由佢消失
2023-06-23 01:16:12
On9,program得嘅嘢就有邏輯,有邏輯嘅嘢就可以再寫
2023-06-23 01:17:46
要精通理論粒子物理學嘅Code狗先得
佢同現代language 嘅發展完全係兩條路,冇得轉
現代而家玩到係靠電腦多GPU去到做運算
佢要平民電腦做快速精準計算
2023-06-23 01:19:44
咪由得佢消失 無人用囉
2023-06-23 01:28:50
咁簡單
就派你去啦
重點係無人願意花時間去做呢樣野
有幾多programmer識physics
有幾多physicist 肯放低啲研究去寫program
2023-06-23 01:30:48
有人要用自然有人寫,簡單嘅Supply and Demand
2023-06-23 01:35:06
又要識寫high level programming language
又要識particle physics
依加就係有demand 無supply
2023-06-23 01:37:40
有錢就有supply,依加有條友做爛市點解會覺得有人去做?

你畀錢同時間我100%寫到畀你
2023-06-23 01:41:04
叫ai 搞
2023-06-23 01:49:29
2023-06-23 02:38:47
唔緊要,停咗機真係有人想用嘅就會諗方法….
大家都覺得仲有得用。就無人幫手維護
2023-06-23 03:55:55
ChatGPT 4.5 可能ok
2023-06-23 04:51:34
重點係連物理學家自己都唔重視電算
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞