知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

对于科学计算,C++ 和 Matlab 计算速度哪个快?

发表时间:2022-03-25来源:网络

来来来 小哥先看下这俩回答:
http://www.zhihu.com//31028195/answer/121655849

http://www.zhihu.com//20111076/answer/34883235

题中所讲,写有限元差分网格大点就卡了是因为嵌套几个大大for循环(雾)

所谓推荐Fortran手写差分格式无可厚非,如果差分格式是所讨论的关键点的话(算法类研究项目)

但是一般情况下,所对应的情形都是有现成工具的比如pdetool解偏微分方程,同样密度的网格速度肯定秒瞎手写差分格式的Fortran给出的结果

第一版和第二版MATLAB的计算底层是Fortran写的,后面版本中加入c++,在引用了所能见到的通用计算库mkl一类的矩阵加速之后又做了指令集层面的优化,所以说如果有类似数值积分求偏微分方程数值解一类的任务在计算中密集出现的话,MATLAB里现有的轮子肯定比自己写计算格式快的


题中所说的大矩阵相乘相加是并行的是没错的,而且放GPU里会更快(前提是有n卡)

2018年12月追加


极致追求速度的话在C++可以尝试引入MKL库,如果有硬件可以进行GPU计算,那肯定是GPU上是最快的。

正如上面所说MATLAB面向科学计算的部分是mathworks几千精英怼红眼做出来的,如果没有非常深层优化需求直接MATLAB或者MATLAB调用Cuda就可以实现很高的速度

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜