5

我目前(主要)在我的研究中使用 C++ 进行计算密集型计量经济学。我一直想搬到一个更有生产力的环境。D 听起来很有希望,但可能还不够成熟,我目前无法充分发挥作用。我最近遇到了 C# 和 NMath 库。这似乎非常令人印象深刻。有人用这些来达到这样的目的吗?你有什么经验?如果它可以提高我的整体生产力(任期时钟正在滴答作响),我愿意放弃一些运行时速度。您的想法和建议表示赞赏!

4

3 回答 3

10

我在一家经济公司 ( EMSI ) 工作,我们使用 D 来满足大部分高性能计算需求。本机速度和效率至关重要,但它提供了比 C 更高级别的抽象,并且比 C++(恕我直言)更少的陷阱。与 BLAS、英特尔 MKL 等接口非常简单,我们使用它们来支持实时 I/O 模型背后的大规模矩阵运算。一个经常被忽视的关于 D 生产力提升的好处是速度极快的编译器——我从不为渐进式构建而烦恼,即使在非常大的项目上也是如此。

于 2012-02-17T17:13:17.580 回答
3

我的建议是ILNumerics。它似乎是最快的图书馆之一。它在几个月前开始商业化,但我多年来一直在使用它,以前是作为开源库。

我们必须转换大量的 Matlab 代码才能将应用程序部署给客户。ILNumerics 是我们的第一个(基本上也是唯一的)选择,因为它使用与 Matlab 相同的语法。此外,它的数组类可以处理 n 维和许多对我们来说也很重要的子数组。你会在这里找到一个很好的代码示例。

在我看来,唯一的缺点是:缺乏专门的工程功能,只实现了基本的统计数据。因此,构建自己的算法(使用 std、cov、var、mean、abs 等)然后开箱即用地解压任何 HILO 指标非常方便。

于 2012-02-17T17:23:43.280 回答
1

我假设您指的是Centerspace 的 NMath产品?

我们最近开始在生产应用程序中使用它们;尽管到目前为止非常轻微(执行线性回归以确定燃气轮机的气体输入 GJ 与 MW 输出之间的关系;从技术上讲,这是 NMath Stats 的一个特征)。到目前为止使用起来很愉快,在等待我们的财务部门处理他们的发票时,他们的支持非常迅速地响应了过期的评估许可证。

就性能而言,它确实在可能的情况下使用了英特尔数学内核库,因此性能应该不错;它并没有对我们有限的使用造成任何负面的性能影响。

我期待在我们的应用程序的其他地方使用该库,因为它是合适的!

于 2012-02-16T23:51:32.390 回答