苦撑多年,老爷子 70 多!大规模符号运算计算程序 FORM 快要没人维护了

news2024/9/20 8:08:54

0x01

在粒子物理学的发展过程中,有这样一个计算软件,它一度被视为粒子物理学研究的基础工具之一。

它就是:FORM

图片

众所周知,高能物理学领域中涉及很多超长且复杂的方程和公式,这时候就需要有一个能满足特定需求的计算软件(或者程序)来完成对应的工作。

而 FORM 则是一个可以进行大规模符号运算的计算程序,可以计算伽马矩阵、并行计算、包括模式匹配等。

图片

多年来 FORM 一直扮演着粒子物理学领域关键工具的角色,并支撑着领域的研究和发展,行业内甚至有很多软件包都依赖于它。

但是就是这样一个领域必备的软件工具,其维护人现在都已经 70 多岁了,而如今却快要落得没人维护的田地了。。

0x02

FORM 自 1984 年就开始开发,距今已经有好几十年的历史了。

FORM 的开发者是来自于荷兰的粒子物理学家乔斯・维马塞伦(Jos Vermaseren),也是现在该程序的维护者,现如今也已经 70 多岁高龄了。

图片

而作为一个源自上世纪 80 年代的程序,彼时计算机方开始普及,软件工具也才逐渐开始兴起。

FORM 的前身是由荷兰物理学家马蒂努斯・维尔特曼(Martinus Veltman)所创建的一个名为 Schoonschip 的程序,但是受限于当时的存储和外设条件等一系列原因,使用起来并不方便。

于是 Jos Vermaseren 开始着手研究该如何做出一个更易于获取和使用的工具程序。

起初 Jos Vermaseren 使用的是 FORTRAN 语言来写的这个程序,但是后来在 FORM 1.0 版本正式发布以前,Jos Vermaseren 又重新使用 C 语言把该工具给重写了一遍。

就这样,从最早的 Apollo 工作站到后来的奔腾 PC,这个程序慢慢开始被推广使用并流行起来。

图片

经过多年的发展,目前 FORM 支持的版本如下:

  • FORM:顺序版,可以在单个处理器上运行;
  • ParFORM:多处理器版本,它可以使用集群和系统,处理器有自己的内存;
  • TFORM:支持处理器共享内存系统的多线程版本,主要用于处理器数量有限的系统。

0x03

聊回到 FORM 项目 70 多岁的维护人 Jos Vermaseren 老爷子,说实话还是非常佩服的。

进入 Jos Vermaseren 的 GitHub 主页 (https://github.com/vermaseren) 可以看到,老爷子早在 2013 年就加入了 GitHub 社区。

图片

并在同期创建了他个人的首个 GitHub 仓库,也就是 form。

图片

截止到目前,这也是 Jos Vermaseren 在 GitHub 上的唯一一个维护的项目仓库。

图片

不过比较遗憾的是,这个开源项目不管是访问量还是 star、fork 数,都十分惨淡。

0x04

既然这个软件如此重要且无法完全被替代,那为什么现如今想找一些后继的维护人都不那么容易呢?

关于这个问题,Jos Vermaseren 本人也曾说过:

“这么多年我一直都有看到,在计算工具上花费大量时间的科学家却无法得到一个物理学领域的终身职位。”

Jos Vermaseren 表示自己还算是幸运的,拥有一个在荷兰国家亚原子物理研究所的终身职位,并且还有一个欣赏这个项目的老板,然而很多相关的研究者却不一定都能这样了。

所以这么看来,这也算是被一些现实的问题,所困扰到了。

投入大量精力却得不到对应的回报,而且还要求维护人员有跨学科的知识技能,不少相关领域的研究者也望而却步了。

而且在物理学术界,大家对于物理学本领域的成果产出和论文发表普遍比较看重,而程序开发的努力和关注度则往往被低估了。

可能这也某一程度上导致了像 FORM 这种软件工具想要找到持续的维护者都变得不那么容易了。

所以说到底,这也算是一个 “坐冷板凳” 的现实问题了。

最后这里也附上和 FORM 项目相关的地址,分享给大家,感兴趣的同学也可以上去研究看一看。

  • FORM 主页:https://www.nikhef.nl/~form
  • GitHub 主页:https://github.com/vermaseren/form

via:

  • 苦撑多年,老爷子 70 多!这个软件快要没人维护了。原创 CodeSheep 2024 年 07 月 18 日 08:54 江苏

    https://mp.weixin.qq.com/s/y_oLciAzfuJVEKkRLC_R2A

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++/STL】:set和map的介绍及基本使用

目录 前言一,树形结构的关联式容器二,set1,set 的介绍2,set 常用接口的使用(1) set 的插入,迭代器遍历(2) set 的区间构造,范围for(3) set 的删除 三,multiset1, multiset 的介绍2,m…

python:sympy 求解 y=arcsin(x)和y=arccos(x)的曲线交点坐标

python sympy 先求解 sin(x)cos(x) 首先,你需要导入SymPy库,然后使用symbols功能创建一个符号变量x,并用solve功能来求解方程。 from sympy import symbols, sin, cos, solve# 创建符号变量x x symbols(x) # 创建方程 sin(x) - cos(x) 0…

[web]-反序列化漏洞-easy入门

打开网站看到代码&#xff1a; <?php highlight_file(__FILE__); class easy{ public $cmd; public function __wakeup(){ system($this->cmd); } } unserialize($_GET[pop]); ?> 是一个简单的反序列化题目&#xff0c;在本地启动php_study,生成序列化字符串&…

RK3568笔记四十:设备树

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 设备树 (Device Tree) 的作用就是描述一个硬件平台的硬件资源&#xff0c;一般描述那些不能动态探测到的设备&#xff0c;可以被动态探测到的设备是不需要描述。 设备树可以被 bootloader(uboot) 传递到内核&#x…

论文复现:Predictive Control of Networked Multiagent Systems via Cloud Computing

Predictive Control of Networked Multiagent Systems via Cloud Computing论文复现 文章目录 Predictive Control of Networked Multiagent Systems via Cloud Computing论文复现论文摘要系统参数初始化系统模型观测器预测过程控制器设计系统的整体框图仿真结果 论文摘要 翻译…

巧用Vue3 composition api的计算属性实现扁平化tree连线

本示例节选自vue3最新开源组件实战教程大纲&#xff08;持续更新中&#xff09;的tree组件开发部分。将进一步把基于Vue3 composition api的computed计算属性特性应用到组件开发实战中&#xff0c;继续以最佳实践的方式呈现给大家。 下面我们要实现的是扁平化的dom结构所呈现的…

大模型面经

大模型知识 基础算法 机器学习 常见经典公式推导 LR手推、求导、梯度更新 SVM原形式、对偶形式 FM公式推导 GBDT手推 XGB推导 AUC计算 神经网络的反向传播 常见通用问题 评价指标 分类 结合混淆矩阵 准确率&#xff08;Accuracy&#xff09; 识别对了的正例&am…

Qt Style Sheets-入门

Qt 样式表是一种强大的机制&#xff0c;允许您自定义小部件的外观&#xff0c;这是在通过子类化QStyle已经可行的基础上的补充。Qt 样式表的概念、术语和语法在很大程度上受到 HTML级联样式表 (CSS)的启发&#xff0c;但适用于小部件的世界。 概述 样式表是文本规范&#xff0…

SpringBoot增加网关服务

一、新建gateway项目 二、添加依赖 dependencies {implementation org.springframework.cloud:spring-cloud-starter-gateway:4.0.0 } 三、增加路由规则配置 一个web服务、一个service服务 bootstrap.yaml&#xff1a; server:port: 80 spring:application:name: gatewayc…

Java核心(六)多线程

线程并行的逻辑 一个线程问题 起手先来看一个线程问题&#xff1a; public class NumberExample {private int cnt 0;public void add() {cnt;}public int get() {return cnt;} }public static void main(String[] args) throws InterruptedException {final int threadSiz…

循环算法--整数反转

目录 一.前言 二.算法的核心原理 三.算法的核心代码及注释详解 一.前言 算法要求&#xff1a;给定一个整数n,要求对其中的数字进行反转。例如&#xff0c;当给定一个整数123的时候&#xff0c;反转的结果就为321。 二.算法的核心原理 通过仔细观察&#xff0c;我们不难发现&a…

扫描某个网段下存活的IP:fping

前言&#xff1a; 之前用arp统计过某网段下的ip&#xff0c;但是有可能统计不全。网络管理平台又不允许登录。想要知道当前的ip占用情况&#xff0c;可以使用fping fping命令类似于ping&#xff0c;但比ping更强大。与ping需要等待某一主机连接超时或发回反馈信息不同&#x…

非线性规划例题

求解非线性问题的函数&#xff1a; 操作步骤&#xff08;最优&#xff09;&#xff1a; 1、先试用蒙特卡洛模拟优先求出最优的初始值X0 2、使用函数&#xff1a;fincon求解最优解 clc,clear % 设置蒙特卡洛模拟的次数&#xff1a; n 10000000; fmin inf; x1 unifrnd(-10…

昇思MindSpore 应用学习-FCN图像语义分割-CSDN

日期 心得 昇思MindSpore 应用学习-FCN图像语义分割 (AI 代码解析) 全卷积网络&#xff08;Fully Convolutional Networks&#xff0c;FCN&#xff09;是UC Berkeley的Jonathan Long等人于2015年在Fully Convolutional Networks for Semantic Segmentation[1]一文中提出的用…

链表(4) ----跳表

跳表&#xff08;Skip List&#xff09;是一种随机化的数据结构&#xff0c;用于替代平衡树&#xff08;如 AVL 树或红黑树&#xff09;。它是基于多层链表的&#xff0c;每一层都是上一层的子集。跳表可以提供与平衡树相似的搜索性能&#xff0c;即在最坏情况下&#xff0c;搜…

JMX 反序列化漏洞

前言 前段时间看到普元 EOS Platform 爆了这个洞&#xff0c;Apache James&#xff0c;Kafka-UI 都爆了这几个洞&#xff0c;所以决定系统来学习一下这个漏洞点。 JMX 基础 JMX 前置知识 JMX&#xff08;Java Management Extensions&#xff0c;即 Java 管理扩展&#xff0…

verilog基础语法入门

文章目录 前言一、模块定义1. 模块声明2. 端口定义3. 信号类型声明4. 逻辑功能定义 二、运算符与表达式1. 算术运算符2. 逻辑运算符3. 位运算符4. 关系运算符5. 等式运算符6. 缩减运算符7. 移位运算符8. 条件运算符9. 位拼接运算符 三、语句1. 赋值语句2. 块语句3. 条件语句4. …

第1关 -- Linux 基础知识

闯关任务 完成SSH连接与端口映射并运行hello_world.py ​​​​ 可选任务 1 将Linux基础命令在开发机上完成一遍 可选任务 2 使用 VSCODE 远程连接开发机并创建一个conda环境 创建新的虚拟环境lm3 可选任务 3 创建并运行test.sh文件 参考文档 文档&#xff1a;https://g…

tcp协议下的socket函数

目录 1.socket函数 2.地址转换函数 1.字符串转in_addr的函数:​编辑 2.in_addr转字符串的函数&#xff1a;​编辑 1.关于inet_ntoa函数 3.listen函数 4.简单的Server模型 1.初步模型 1.sock函数和accept函数返回值的sockfd的区别 2.运行结果和127.0.0.1的意义 2.单进…

如何设计数据中心100G网络光纤布线

随着全球企业对带宽的需求呈指数级增长&#xff0c;数据中心需要升级以增强其计算、存储和网络能力。数据中心从10G/25G向100G迁移成为必然趋势。随着网络升级&#xff0c;数据中心的光纤布线系统也需要随之优化。本文将指导您如何设计数据中心100G网络光纤布线。 100G以太网的…