Performance 最快的数学编程语言?

Performance 最快的数学编程语言?,performance,math,compression,Performance,Math,Compression,我有一个需要数百万减法和余数的应用程序,我最初在C#Net中编写了这个算法,但处理这些信息需要五分钟,而且我需要更快的速度 我考虑过perl,现在它似乎是最好的选择。Vb.net的测试速度较慢。C++也可以更好。任何建议都将不胜感激。是我迄今为止使用过的最好的。它是用C写的。一些计算规则足以从GPGPU中获利:最近的图形卡本质上是专门的大规模并行数字协处理器。例如,您可以将数字内核编码为。否则,学习(不是某些早期版本的C++标准)或C.,在很多情况下,它可以和C++一样快,但是更容易用.< 也许

我有一个需要数百万减法和余数的应用程序,我最初在C#Net中编写了这个算法,但处理这些信息需要五分钟,而且我需要更快的速度


我考虑过perl,现在它似乎是最好的选择。Vb.net的测试速度较慢。C++也可以更好。任何建议都将不胜感激。

是我迄今为止使用过的最好的。它是用C写的。

一些计算规则足以从GPGPU中获利:最近的图形卡本质上是专门的大规模并行数字协处理器。例如,您可以将数字内核编码为。否则,学习(不是某些早期版本的C++标准)或C.,在很多情况下,它可以和C++一样快,但是更容易用.< 也许你的问题可以由我来解决,或者,我不太明白,不能提供更多帮助

您还可以利用多核处理器,例如使用或


最后,Linux操作系统也许更适合处理大规模计算。今天大多数超级计算机都使用它,这一点很重要。

工程中数学数值运算的标准工具通常是Matlab(或者作为免费的替代品octave或已经提到的scilab)

如果执行速度是最高优先级,则通常意味着Fortran

>P>需要一个编译语言,如FORTRAN、C或C++。其他语言旨在为您提供灵活性、面向对象或其他优势,并假定绝对最快的性能不是您的最高优先级

  • 了解如何从单个线程中获得最大性能,完成后,请研究如何跨多个内核共享工作,例如使用MPI。为了在单个线程中获得最大性能,我要做的一件事是在机器指令级别单步执行它,以确保它不会在可以删除的内容中浪费时间


  • 试着看一看。该程序调用Java库。Java虚拟机可以为您优化长时间的数学计算。

    试试看:它的杀戮功能很容易以高级简洁的方式编写代码,同时保持与Fortran/C相同数量级的性能。

    C#通常在小数据集上获得不错的数学速度。C或C++用于更大的。Perl几乎从来没有更快过。Haskell或Mathlab或类似的东西可能会带来显著的收益,但需要大量的翻译。我首先对C++进行基准测试。“过早优化是万恶之源。”-也许你应该发布你的问题和/或算法。大多数情况下,对算法进行调整所带来的好处远不止切换编程语言(尤其是您已经在使用C#.Net,而C#.Net并不是最慢的)。如果你想切换到一种经常用于数字的编程语言,可以使用老式的FORTRAN(但不要说,我们没有警告过你)。由于语言的某些属性,通常可以进行优化,而这在标准C/C++代码中是不可能的。好主意,将其从至少部分编译的语言移动到解释的语言。这将极大地提高性能!通常,讽刺之后是一个有用的建议。特别是在问答网站上,在我做科学计算时,Fortran用来运行C和C++两个圆。从那以后,他们的语言发生了很大的变化,所以我不知道这是否仍然是真的。@duffymo:事实上,我可以质疑这一点,因为我和他们都做了很多工作。这一切都取决于谁生成了最好的汇编代码。当然,Fortran有一个很大的领先优势。我的主要同事是Fortran的忠实信徒,我必须不断地向他展示,与其说它是一种语言,不如说它是一种程序的实际功能,在这个过程中遇到了困难。@duffymo:LAPACK例程是我的典型例子。优化到牙齿,对吗?好吧,如果你在不是很大的矩阵上使用它,你会发现它花费了很大一部分时间(一半或更多)在调用上。当我看到这一点时,我只是编写了一个特殊用途的例程并节省了所有的时间。