5

我发现 matlab 有很多用途,但我现在的雇主没有 matlab 许可证:有一个用于 Comsol 的许可证,它带有 comsol Script。乍一看,comsol 脚本与 matlab 相同,但过一会儿你会发现令人毛骨悚然的差异。许多图形图形的功能不存在,您无法将图形导出为矢量图形格式。但更糟糕的是,对于繁重的计算,性能似乎要差得多,在琐碎的算法上有很多崩溃。

(当然,comsol 包的用途完全不同,但我对像 matlab 一样使用它感兴趣,因为我们没有 matlab 许可证。)

matlab 和 Comsol 脚本内核有区别吗?

他们处理内存和矩阵计算的方式不同吗?

4

1 回答 1

3

他们处理内存和矩阵计算的方式不同吗?

几乎可以肯定,是的(在实施级别)。comsol 之前没听说过,不过慢一点也就不足为奇了。在过去的几年里,Mathworks 在性能优化上投入了大量精力。使用 JIT 消除了很多解释器开销。他们还做缓存友好的技巧,比如执行

 mybigresult = big1 .* big2 + big1 .* big3

as (C 风格的伪代码)

 for (size_t i=0; i<numelement; i++) {
    mybigresult[i] = big1[i] * big2[i] + big1[i] * big3[i];
 }

而不是创建临时文件和多次扫描内存。最后,在最近的版本中,他们为大部分后端添加了多线程支持。(注意:语义上,Matlab 仍然是单线程的)。

一些免费的 Matlab 替代品:octave(旨在成为开源等价物)、python + numpy(非常不同的语言,但具有相似的基本功能)。

如果 Matlab 让您的工作效率更高,您可能想尝试让您的雇主支付许可证费用...(5 万美元/年工资 * 10% 的生产力提高)= 如果购买了 Matlab,则完成的额外工作价值 5000 美元(只是在这里编数字)。

于 2008-11-28T14:55:12.573 回答