【问题标题】:Is fortran (still) faster than C++ for scientific computing? [closed]对于科学计算,fortran(仍然)比 C++ 快吗? [关闭]
【发布时间】:2014-05-17 22:57:19
【问题描述】:

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

【问题讨论】:

  • Fortran 和 C++ 是语言。语言没有“速度”,因此很难对这个“问题”给出准确而明确的答案。
  • 科学计算一词的含义非常广泛。
  • 我知道至少有一个 Fortran 编译器可以生成 C 代码。我希望,在大多数情况下,具有相同后端的编译器在速度上会非常相似(例如 gnu fortran 和 llvm fortran)在性能上会非常相似。 Fortran 作为一种语言对别名有一些限制,这些限制不适用于 C 或 C++,这允许好的 fortran 编译器(有时)生成比 C 编译器稍好的代码,但大多数情况下,这种差异可以通过以下方式消除正确使用例如 restrict 关键字。
  • @Kerrek SB 速度是指执行程序的执行时间。 Fortran 具有内置矩阵结构,而 C++ 没有。两种语言都有许多特定于语言的功能。他们做fortran fster吗

标签: c++ fortran scientific-computing


【解决方案1】:

自从 C99 引入 restrict 关键字以来,C 和 Fortran 在速度上已经相当接近了,它允许数组处理函数不必担心输入和输出之间的重叠,而 Fortran 从来没有处理过这种情况。 C++ 还没有restrict,但可能有朝一日,这将允许在编译器中进行同样的小优化。

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

【讨论】:

    猜你喜欢
    • 2012-02-18
    • 2010-11-14
    • 2013-01-29
    • 2013-08-22
    • 2010-09-29
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多