我一直在使用R进行公司财务和资产定价方面的研究,并且由于我在数学和统计方面的背景,我非常喜欢它.到目前为止,我在R中遇到了两个主要的约束.第一个是处理大数据文件,但我有点通过将R与PostgreSQL和Spark结合起来避开它,我相信我可以从高性能计算机或AWS云获得更多内存在将来.第二个约束是执行速度(对于通过刻度安全报价数据处理滴答很重要),我被推荐Julia比R具有巨大的速度优势.我的问题是,由于Rcpp提供了非常快的执行速度,Julia的速度优势仍然存在保持?我在考虑是否应该学习朱莉娅.
此外,R提供了与WRDS,Quandl,TrueFX和TAQ的完美数据库连接,我真的习惯了Hadley Wickham风格的数据清理.作为一名学者,我有点像R得到了像Journal of Stat Software这样的同行评审期刊的支持.我会试试朱莉娅,看看它是如何运作的.感谢所有的答案和评论!
Rcpp和Julia最终会让你到达同一个地方.事实上,类型稳定的Julia将编译为与clang编译的C++基本相同的LLVM IR.设计方面没有什么可以阻止它相同(在类型稳定的情况下),除了一些缺失的优化,因为语言是年轻的(例如,@fastmath默认情况下不添加FMA,所以你必须添加FMA称自己为,而我相信使用fastmath编译的C++将是FMA).但是在给定类型稳定性的情况下,您可以检查@code_llvm并@code_native输出相同的代码.
但是,Rcpp会要求您编写一堆C++代码并测试/维护该代码以及R代码.C/C++的级别要低得多,维护起来也比较困难("双语问题").如果你选择和朱莉娅一起去,你可以在朱莉娅写下这一切.这是主要的区别.
(至于整个"Julia比C慢2倍",应该在这里提一下.通常这是由于类型不稳定代码的一小部分,而不是关闭数组边界检查@inbounds(语言比较来自评论,特别是没有'这样做,这可能会导致紧密循环中的相当大的差异),并依赖于矢量化样式(la R/MATLAB/Python).最后一部分在Julia v0.6中要好得多,但它总会有一个最后,它是选择加入/选择退出的选择,用于简洁的代码和额外的安全检查,从而导致差异.)
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |