fortran(仍然)在科学计算方面比C ++快吗? 您所在的位置:网站首页 码农很难吗 fortran(仍然)在科学计算方面比C ++快吗?

fortran(仍然)在科学计算方面比C ++快吗?

2024-06-30 14:44| 来源: 网络整理| 查看: 265

我没有遇到任何明确的统计数据,说C ++比fortran慢。 也许我没有彻底搜索。 我想知道对于科学计算而言,fortran是否仍然比C ++快?

相关讨论 Fortran和C ++是语言。语言没有"速度",因此很难对这个"问题"给出准确而明确的答案。 科学计算一词具有非常广阔的前景。 这个问题可能会帮助您:stackoverflow.com/questions/146159/is-fortran-faster-than-c 我知道至少有一个生成C代码的Fortran编译器。我希望在大多数情况下,具有相同后端的编译器在速度上会非常相似(例如gnu fortran和llvm fortran)在性能上会非常相似。 Fortran作为一种语言,对别名具有一些限制,这些限制不适用于C或C ++,这使一个好的fortran编译器(有时)生成比C编译器更好的代码,但是在大多数情况下,可以通过正确使用来消除这种差异。例如restrict关键字。 @Kerrek SB所谓速度,是指执行程序的执行时间。 Fortran具有内置的矩阵结构,而C ++没有。两种语言都有许多特定于语言的功能。他们使fortran fster吗 在Ars Technica上有关该主题的最新文章:"为什么某些编程语言比其他语言快?科学家们使用Fortran是因为它的速度很快,但是为什么会如此呢?"由Peter Bright-2014年5月11日,美国东部时间下午3:00 FORTRAN编译器通常生成最快的代码有很多结构上的原因。未提及的一项功能是编译器生成固定调用块的能力。如果我有一个带有10个参数的函数,则非递归函数可以简单地推入调用块的地址,然后进行函数调用。在C语言中,一条指令将变为至少10条指令。所不同的是,几乎每个分子建模应用程序都仍在FORTRAN中。 速度差异始终很小,我们Fortran程序员通常还有其他理由将其用作简单性,数组支持及其在该领域中的普遍存在。

自从C99引入了restrict关键字以来,C和Fortran的速度已经相当相等,它使数组处理功能不必担心输入和输出之间的重叠,而Fortran则不必处理。 C ++还没有restrict,但是有朝一日可能会在编译器中进行相同的次要优化。

许多C ++编译器(例如g ++)提供对专有__restrict__等关键字的支持,尽管这些关键字可以以兼容性为代价实现相同的结果。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有