我有一个需要数百万减法和余数的应用程序,我最初在C#.Net中编写了这个算法,但是处理这些信息需要5分钟,我需要它比这更快。
我考虑过perl,这似乎是现在最好的选择。 Vb.net测试速度较慢。 C ++也可能更好。任何建议都将不胜感激。
答案 0 :(得分:8)
您需要一种编译语言,如Fortran,C或C ++。其他语言旨在为您提供灵活性,面向对象或其他优势,并假设绝对最快的性能不是您的最高优先级。
了解如何从单个线程中获得最大性能,并在完成此操作后,调查多个核心之间的工作共享,例如使用MPI。为了在单个线程中获得最大性能,我做的一件事就是在机器指令级别单步执行,以确保它不会在可以移除的东西中徘徊。
答案 1 :(得分:5)
有些计算足以使GPGPU获利:最近的图形卡本质上是专门的大规模并行数字协处理器。例如,您可以在OpenCL中编写数值内核代码。否则,请学习C++11(不是C ++标准的某些早期版本)或C.在许多情况下,Ocaml几乎与C ++一样快,但更容易编码。
也许您的问题可由scilab或R处理,我不太了解它可以提供更多帮助。
您可以通过以下方式利用您的多核处理器使用Pthreads或MPI
最后,Linux操作系统可能更适合处理大量计算。重要的是,大多数超级计算机今天都使用它。
答案 2 :(得分:4)
如果执行速度是最高优先级,那通常意味着Fortran。
答案 3 :(得分:0)
PARI/GP是迄今为止我用过的最好的。它是用C语言编写的。
答案 4 :(得分:0)
工程中数学数值运算的标准工具通常是Matlab(或者作为自由替代八度或已经提到过的scilab)。
答案 5 :(得分:0)
尝试查看DMelt mathematical program。该程序调用Java库。 Java虚拟机可以为您优化长时间的数学计算。
答案 6 :(得分:0)
尝试Julia:它的杀戮功能很容易以高级简洁的方式编码,同时保持与Fortran / C相同数量级的性能。