【问题标题】:Comparison of performance between Scala etc. and C/C++/Fortran?Scala 等与 C/C++/Fortran 的性能比较?
【发布时间】:2011-01-18 22:52:24
【问题描述】:

我想知道“现代”多线程专业语言之间是否有可靠的性能比较,例如scala 和“经典”“低级”语言,如 C、C++、Fortran,使用 MPI、Posix 甚至 Open-MP 等并行库。

欢迎任何链接和建议。

【问题讨论】:

  • 我确实相信性能测量是特定于应用程序或区域的。一种语言可能更擅长图形,而另一种语言更擅长搜索。请提供有关您使用这些语言的项目或应用程序的更多信息。
  • 呃,是的,当然,我已经尝试过 Google ;-) 好吧,我只是好奇,没有特殊的应用程序。只是想知道与本机 c/cpp/fortran 二进制文件相比,JVM 会产生一些开销。现在:与原生 c/cpp/fortran 二进制文件相比,使用 Scala 等和 JVM 的优势何时开始?当然,适当的基准设置至关重要。
  • JVM 最好的情况是所有正常情况都被执行一次,将它们编译为本机代码。另外,Java 不是为速度而设计的。通常,便携性和速度在设计表的相对两侧。
  • 查看 Parallel Colt 项目(以及 Piotr Wendykier 的其他软件)。那里有很多快速并行 Java,尽管我看到的相对较少,达到通常通过 MPI 使用的惊人数量的处理器。

标签: c++ multithreading scala fortran mpi


【解决方案1】:

鉴于 Java 以及因此 Scala 可以调用外部库,并且考虑到那些高度专业化的外部库将完成大部分工作,那么只要使用相同的库,性能是相同的。

除此之外,任何这样的比较基本上都是没有意义的。 Scala 代码在具有运行时优化的虚拟机上运行。这种优化可以将长时间运行的程序推向比用其他语言编译的程序更高的性能——或者不是。这取决于用每种语言编写的具体程序。

【讨论】:

    【解决方案2】:

    这是另一个非答案:去您当地的超级计算机中心,询问您感兴趣的每种语言使用了多少 CPU 负载。这只会为您的问题提供一个代理答案,它会告诉您什么关心此类机器的高性能的人在解决他们要解决的问题时使用。但这与您对于如此广泛的问题可能得到的任何其他答案一样具有启发性。

    PS 答案是 Fortran、C 和 C++ 消耗的 CPU 周期超过 95%。

    【讨论】:

      【解决方案3】:

      我会将此类比较视为一小部分。分子是一个常数(我相信大约是 0.00001)。分母是线程数乘以逻辑处理器数。

      IOW,对于单个线程,比较有大约百万分之一的机会。对于运行具有(例如)16 个线程的应用程序的四核处理器,您获得有意义结果的几率只有 6400 万分之一。

      简而言之,毫无疑问,有不少人在研究它,但即使是其中任何一个结果提供有用且有意义的结果的机会仍然极低。更糟糕的是,即使其中一个确实意味着什么,也几乎不可能找到,而且更难以验证到您实际上知道它意味着什么。

      【讨论】:

      • 所以你发明了一个答案?真的吗?这是一种糟糕的做法。
      • @Paul:这被称为在答案中注入最细微的幽默——以这种方式,除了一个完整的混蛋之外,任何人都可以很容易地识别出来。远非糟糕的实践,我对我的许多答案所表现出的创造性程度感到相当自豪。任何不能(也不会)定期发明答案的人都属于其他地方——编程的本质就是发明答案。
      • 好吧,杰瑞,要么你发明了正确的答案,要么你没有。你没有。你凭空得出一个答案,并把它装作是真的。没有暗示或给予幽默。
      • @Billy:在我看来,这是一个“ASCII 一个愚蠢的问题,得到一个愚蠢的 ANSI”的情况......
      • @Rex:这就是问题所在:您无法回答(即使在原则上)构成答案的部分。如果(例如)您发现实现 X(使用 Scala)比实现 Y(使用 Fortran)快 10%,您只能推测您看到的差异确实与 Scala 有关与 Fortran。下周,Y 可能会升级为比 X 快 20%——但不管不是这样,它仍然没有告诉你 Scala 与 Fortran 的区别。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      相关资源
      最近更新 更多