我正在试图找出我正在构建的分析模型的最佳编程语言.主要考虑因素是它运行FOR循环的速度.
一些细节:
- 该模型需要对数组中的一组元素执行大量(每次输入约30次,超过12次循环)操作 - 阵列中有大约300k行和~150列.这些操作中的大多数本质上是逻辑的,例如,如果place(i)= 1,则j(i)= 2.
- 我使用Octave构建了这个模型的早期版本 - 在Amazon EC2 m2.xlarge实例上运行它需要大约55个小时(它使用~10 GB的内存,但我非常乐意在内存中添加更多内存它).Octave/Matlab不会进行元素逻辑运算,因此需要大量的for循环 - 我相对确定我已经尽可能地向量化了 - 剩下的循环是必要的.我已经得到了八度多核以使用这个代码,这有一些改进(当我在8个EC2内核上运行时减速约30%),但最终会因文件锁定等而变得不稳定.+我真的寻找运行时的一个步骤变化 - 我知道实际使用Matlab可能会让我从一些基准测试中获得50%的改进,但这是成本过高的.
- 下一个版本将是从头开始的完整重建(出于IP原因,我不会进入其他任何事情),所以我完全接受任何编程语言.我最熟悉Octave/Matlab,但涉及R,C,C++,Java.如果解决方案涉及将数据存储在数据库中,我也熟练使用SQL.我将学习任何语言 - 这些并不是我们正在寻找的复杂功能,没有与其他程序的接口等,所以不要太在意学习曲线.
所有这些都说明了什么是FOR循环中最快的编程语言?从搜索SO和Google,Fortran和C泡沫到顶部,但在潜入其中之前寻找更多建议.
谢谢!