gpt4 book ai didi

c - 在实践中 C 比 R 快多少?

转载 作者:太空狗 更新时间:2023-10-29 17:05:26 24 4
gpt4 key购买 nike

我在 R 中编写了一个 Gibbs 采样器,并决定将其移植到 C 中以查看它是否会更快。我看过的很多页面都声称 C 会快 50 倍,但每次我使用它时,它只比 R 快五六倍。我的问题是:这是预料之中的,还是有哪些我没有使用的技巧会使我的 C 代码比这快得多(比如如何使用矢量化加速 R 中的代码)?我基本上采用了代码并用 C 语言重写了它,用 for 循环替换了矩阵运算并使所有变量成为指针。

此外,从 R 程序员的角度来看,有人知道 C 的好资源吗? Matloff 有一本名为The Art of R Programming 的好书,但它似乎是从已经了解 C 的人的角度写的。

此外,当我的 C 代码在适用于 Windows 的标准 R GUI 中运行时,屏幕往往会卡住。它不会崩溃;一旦代码运行完毕,它就会解冻,但它会阻止我在 GUI 中做任何其他事情。有谁知道我该如何避免这种情况?我正在使用 .C() 调用该函数

最佳答案

许多现有的帖子都有明确的例子你可以运行,例如 Darren Wilkinson 在他的博客上有几篇文章用不同的语言分析了这个,后来甚至在不同的硬件上(例如比较他的高将笔记本电脑连接到他的上网本和 Raspberry Pi)。他的一些帖子是

在他的网站上还有更多——这些通常比较 C、Java、Python 等。

现在,我还使用 Rcpp 将其转换为一个版本-- 参见 this blog post .今年夏天,我们在 useR 上的 Julia、Python 和 R/C++ 之间的比较中也使用了相同的示例,因此您应该找到大量其他示例和引用资料。 MCMC 被广泛使用,并且“容易挑选”以实现加速。

鉴于这些示例,请允许我补充一点,我不同意您收到的两个较早的评论。速度将相同,在这样的示例中很容易做得更好,而您的 C/C++ 技能将主要决定好多少。

最后,一个经常被忽视的方面是 RNG 的速度 非常重要。运行循环并添加东西是很便宜的——做“好”的绘制不是,而且很多系统间的变化也来自于此。

关于c - 在实践中 C 比 R 快多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com