百科问答小站 logo
百科问答小站 font logo



Fortran数值计算真的比C快吗,经测试是一样快的,是不是很多人都在以讹传讹? 第1页

  

user avatar   juzhang_com 网友的相关建议: 
      

写FORTRAN的路过……

我想问楼主运行出来的时间是多少?像你这种只操作循环指标的计算,我怀疑都被编译器优化掉了,压根就没有在算。这个跟编译选项也有很大的关系,因为i的初值是PARAMETER,理论上这是在编译阶段就能确定结果的计算,很可能已经提前算好了。

没比较过FORTRAN和C的具体速度,只想说在编写合理的情况下,FORTRAN应该是接近最快的那一档,当然也很难用满CPU的理论速度。我的直观感受是写FORTRAN的都不是专业程序员,而且很多祖传代码用的FORTRAN77确实有混乱的倾向,但应该说都是程序员的问题,不是语言本身的问题。你也可以养成习惯一上来就IMPLICIT NONE呀。看过很多人贴出组里的FORTRAN代码以证明有多难懂,我只想说写这么烂当然难懂了,你是没写过FORTRAN写得规矩的而已。而且很多FORTRAN示例自身就有问题,比如说整数与实数混用,比如说多维数组不先循环内层等等。像楼主这个示例,DOUBLE PRECISION :: i=2000000000和i=i-1就是潜在很多数据类型转换的,具体编译器怎么操作说不清楚,如果没有任何优化的话,那又是很多看不见的指令在里面了。然而这样的程序还能跑很快,这本身不就是FORTRAN存在的意义么?

我认为尽管有很多新的选择,FORTRAN这种语言还是不应该被淘汰,因为它真的给非专业程序员提供了一个很好的选项,使他们能更好地把精力放在数值方法本身,而不是非要成为一个优秀的程序员。所以用FORTRAN的同学们大可不必被那些C++准程序员们鄙视得抬不起头来,只要能达到目的就OK了。况且咱们做数值计算的,真的用不到那些花里胡哨的功能。FORTRAN是很合适的。




  

相关话题

  Mathematica 比起 Python 如今还有什么优势? 
  如何解方程 sin(cos(x))=x? 
  5⁴³²¹ 与 4⁵³²¹ 哪个更大? 
  科学计算的程序编写和通常所说的码农的编程有多大的区别? 
  为什么 GPU 的通用计算能力高于 CPU?架构原因?内核数量? 
  Fortran数值计算真的比C快吗,经测试是一样快的,是不是很多人都在以讹传讹? 
  如何解方程 sin(cos(x))=x? 
  如何简要介绍 sign problem in quantum Monte Carlo method? 
  如何证明下面这两个较复杂的不等式? 
  不能直接计算导数值时,有什么优化算法? 

前一个讨论
如何看待贵州一贫困县花 8600 万元打造「女神像」,当地回应:未使用国家扶贫资金?
下一个讨论
新型冠状病毒肺炎将在何时结束?如何解决因疫情导致的系列问题?





© 2024-12-18 - tinynew.org. All Rights Reserved.
© 2024-12-18 - tinynew.org. 保留所有权利