重庆一家公司开发了一个叫北太天元的软件,英文名称叫Baltamatica。愿景是实现MATLAB的国产化平替。截止目前,这个软件最新版本为4.1,版本号升级挺快,但试了一下发现功能尚处于萌芽阶段。确切地说,从公布的更新日志来看,现在处于基本语法还没定型的阶段。找了几个以前开发的程序试了一下,稍微有点实际功能的没有一个能顺利跑通。
对其效率进行了简单测试,来看看跟MATLAB的差距。
For循环
早期MATLAB最为用户诟病的就是其For循环效率低下。来看看二者的差距:
for循环差了1200多倍。
内存管理
在MATLAB中,数组是列优先存储的。通过预分配内存,按列索引数据,可以提高数组的访问效率。来比较一下二者:创建一个500*500的整数数组。
可以看出,MATLAB预分配内存&列优先,效率是最高的。最好和最差情况的效率有大约19倍的差距。而北太天元,显然还没有对内存进行优化。预分配内存没有影响,按行/按列访问也没有影响,整体比MATLAB慢17549多倍。虽然测试程序中也用到了for循环,但这个差距显然不仅是for循环造成的。
根据本人20多年使用MATLAB的经验,程序的效率瓶颈大多与内存的使用有关,软件如果在底层没有考虑这个问题,效率就会这么惨。现在不知道这个软件底层是什么架构,看这效果,比JAVA/Python的效率都差,就不用说C++/C语言啦。希望不是套壳。
总结
MATLAB历经几十年的发展,想从零开始平替它不是一件容易的事情,并且目前已经有些性能不错的开源的替代选项。
北太天元从零开始搞闭源平替,其成长需要软件架构师、程序员、数学家、工程人员的合力贡献。目标很远大,道阻且长。希望这个众多院士、数学家领衔的项目,早日能达到“能用”的水平,千万不要像当年“汉芯”那样 ,沦为大佬撬动国家资源的工具。加油!
MATLAB在发展初期,曾作为免费工具,在数学课堂上使用了多年。现在Baltamatica的水平就开始闭源、以正式版本号发布、搞商业化运营,怕是不利于快速吸引用户,毕竟连UI的逻辑都还没调试好。