您现在的位置是:首页 > 快讯

哈工大等被禁用MATLAB,号称可替代它的国产软件实力如何?

2020-06-27 03:00:28

5月22日,美国商务部宣布将北京计算机科学研究中心、奇虎360、哈尔滨工业大学、哈尔滨工程大学、云从科技等33家中国公司和机构列入了“实体清单”。随后在6月初,哈尔滨工业大学和哈尔滨工程大学的师生反应无法使用MATLAB了,一时间引起国内热议。
?
知乎上关于“如何看待哈工大、哈工程受美国商务部[实体名单]影响,被禁止使用MATLAB商业软件”的问题,截止到目前有4075个关注,以及416万的浏览量。
?


图:知乎上关于MATLAB被禁用影响的问答。(来源:知乎)

?
说到MATLAB,可能大多数人并不熟悉。但对于现在的工科生来说,MATLAB已经成为必备神器,其重要性可能与office有得一拼,已经渗透到数值计算、机械化工、建模仿真、汽车航空、电力能源等学术研究和工业制造领域。
?
自从MATLAB被禁用后,不少人也开始担心,CAD、SOLIDWORSK、UNITY3DMAX、ANSYS这些软件在未来也会被禁用吗?对于这个问题,大家的心里都没有底。
?
虽然没有MATLAB,数值计算和可视化等领域可以采用免费的Python、Octave来暂时替代;航天轨道计算和任务规划等领域可以使用General Mission Analysis Tool来应急;信号处理和无线电等领域可以使用GNU Radio;机器人仿真领域则可以使用Robot Operating System,看起来好像影响不大,大师这里的软件没有一款是中国的软件,而且维护开源社区的中坚力量基本上也是以外国人为主,所以押宝开源社区其实也并不那么靠谱。
?
因此,在问答种有个名为Truffer的答主,在回答种表示替代MATLAB的国产软件已经在路上了。且表示半年内就能实现MATLAB科学计算与图形显示的70%,一年内100%全部实现;3年内完全实现Simulink;100%自主版权源代码;无需#openGL#等组件支持的三维、四维图形显示。短期内将在周全性(需要积累)、高性能并行计算(需要厂家支持)、专业的扩展工具箱(第三方支持,大家一起努力)等方面会稍微落后,不过足以应付大家90%的日常科研需求。他承诺,至少在10%的功能,比Matlab更好用、易用。
?
该答主的回答一时引起了知乎网友的高度关注,目前已经有8999人点赞了该回答。里面有鼓励的、也有质疑的。有的已经通过答主获得了他在回答中所说的源代码并进行了分析。
?


图:Truffer在知乎中的回答。
?

Truffer背后的企业是谁?

在知乎关于Matlab 被禁的问题里,这家软件公司展示了 Truffer 的实力:Truffer 完全基于C#编写,100% 自主版权源代码,无需 openGL 等组件即可支持三维、四维图形显示。
?
该软件背后的公司是北京联高软件开发有限公司,据其官网显示,该公司成立于2002年,位于北京海淀高科技园区,属于高科技企业、双软企业,独立自主创新的《VNUC数控加工仿真软件》是历届全国数控技能大赛指定仿真软件,《多可文档管理系统》行销全国各行各业,装机量10万+,此外,还有《联高固定资产管理系统》和《联高小工具》系列免费小软件。
?
通过天眼查还可以看到,该公司的注册资本位300万人民币,人员规模小于50人,参保人数为14人。
?
该公司目前拥有1项“基于社交网络的应急疏散装置和终端”的发明专利,该专利的申请公布日为2016年8月10日。此外,它还拥有11项软件著作权。


图:天眼查显示的北京联高公司信息。

Truffer到底是什么?

根据北京联高在其官网上公布的软件开发团队成员介绍,成员主要有三名资历丰富的“资深程序员”,他们分别有30年、20年和23年的编程经验。遗憾的是,该公司并没有公布这些经验丰富的“资深程序员”的具体照片和中文名。
?


图:北京联高软件开发有限公司官网公布的软件开发团队成员。

?
那在这些“资深程序员”操刀下的Truffer软件现在到什么程度了呢,先看一下它的部分源码树:
?


图:Truffer软件的部分源码树。

?
可以看到这个架构设计和MATLAB部分功能还是很贴近,核心在于矩阵的一些运算。根据官方发布的数据来看,核心运算都能够完成,并且画图的效果非常不错。
?
由于Truffer还未完全成熟,公司表示短期内会在周全性、高性能并行计算、专业的扩展工具箱等方面落后于MATLAB,需要更多第三方的支持,不过Truffer足以应付大家90%的日常科研需求。
?
现在Truffer已经能满足数值拟合的基本功能。比如获取了一些符合伽马分布的数据点,通过拟合曲线算出α和β数值。

?
还有简单物体的三维有限元计算,支持拷贝或粘贴OBJ格式的三维物体点线面数据,点击并运行稀疏矩阵求解,即可自动保存数据到文件。比如自主三维渲染得到洛克希德SR-71飞机的仿真图。


图:通过Truffer三维渲染得到的洛克希德SR-71飞机的仿真图。

?
在这一部分功能里,官方表示三维显示核心是自主知识产权的,没有openGL,也没有用到DirectX。
?
Truffer官方在回应的时候也勾画了一下现行软件的使用场景。
?
第一个是用试验数据绘制曲线,导出公式;科研人员获得了一些数据,希望对其进行画图拟合。第二个是三维有限元计算(简单物体);就是解稀疏矩阵。
?

网友是如何评价这个软件的?

?
看到能够有国内企业站出来勇敢宣布自己可以做出像样的工业软件来,特别是能够替代MATLAB这样的神器时,多少还是有点让人激动的。其中不少人对这个软件还是有很大的期待的。知乎网友们纷纷留下邮箱,申请第一批试用。
?
根据网友接收到的源码,Truffer的三个源文件分别是CMatrix.cs,Complex.cs,Matrix.cs,三份文件大小分别是42K、16K和39K。按照Truffer所说,分别是复数矩阵、复数和实数矩阵的基本运算。
?
有匿名人士在回答中指出,Truffer的这些文件是极其不完整的,没有实现矩阵运算的基本功能,在效率方面也极其低下,不能作为科学计算库使用。而且Truffer并没有实现矩阵求逆、SVD分解、QR分解和特征值等基本操作。
?
甚至连Truffer已经实现的内容,在可扩展性、易用性方面也令人担忧。其一,矩阵的设计中不包含stride,broadcast,view等功能,只是单纯的二维数组,不能扩展到n>2维的情况。
?
从目前常见的numpy、Matlab、Octave、tensorflow、pytorch这些库来看,使用n维数组是一个基本的要求,因为数组的reshape、permutation都是科学计算中的常规操作,vectorize是常用的加速方法。他能想到的只支持二维数组的库是Eigen3,但Eigen3有其特殊性所在:它是C++++的库,而C++的循环代价极低,所以可以由使用者来进行循环。Eigen3付出的代价就是代码简洁性降低。Truffer作为一个意图取代Matlab并以简单好用为目标的软件,没有使用n维数组而使用二维数组,实在是有些令人惊讶。
?
因此,这位网友的结论是Truffer目前还挑不起替代MATLAB的大梁。
?
也有来自哈尔滨工业大学的王霖玮同学表示,大家不要太苛刻,不妨给他们一些时间试试看。

结语

老实说,Truffer也并不是完全没有机会,MATLAB不也是从1个人开始慢慢做起来的吗?想当年,MathWorks在1984年成立时,只有1名员工。第一笔收入是1985年卖给了MIT10个Matlab版权,收入500美元。MathWorks公司早期很不起眼,有个玩笑称它前7年员工数每一年翻一番,1984年1个员工,1985年2个员工,1986年4个员工,直到7年后的1991年也才只有128个员工。和今天很多初创公司相比,这个成长速度就像是蜗牛了。但是他们力出一孔,围绕着Matlab不断增加功能,使Matlab成为一个行业领先的工具软件。1997年,MathWorks的营业额达到了5000万美元,380名员工。如今2019年MathWorks公司营业额是10亿美元,3000多员工,全球有400多万用户。虽然从营业额看并不大,但其实这种模式更值得学习——不断积累,把一项技术做到极致,成为某个细分领域的隐形冠军。
?
未来,希望国内也能多出现一些这样不断积累,把一项技术做到极致的企业。
?