gpt4 book ai didi

r - 所有 R 包的并行编程

转载 作者:行者123 更新时间:2023-12-04 18:43:28 25 4
gpt4 key购买 nike

你知道是否有任何计划在 R 中为所有包引入并行编程吗?我知道一些开发,例如 R-revolution 和并行编程包,但它们似乎有专门的功能来取代最流行的功能(线性规划等)。然而,R 的一大优点是每天都有大量专门的软件包,它们使复杂且耗时的分析变得非常容易运行。其中很多使用广义线性模型等非常流行的函数,但也使用结果进行额外的计算和比较,最后整理出输出。据我了解,您需要定义一个函数的哪些部分可以在并行编程中运行,所以这可能就是为什么大多数专门的 R 包没有这个功能,除非代码被编辑,否则不能拥有它。

是否有任何计划(或任何程序包)使所有最流行的 R 函数能够在并行处理中运行,以便包含这些函数的所有不太流行的函数都可以在并行处理中运行?例如,包 difR 的大部分功能都使用 glm 函数;如果 glm 包能够在所有多处理器机器的并行处理中运行(或重写然后在新的 R 版本中发布),那么就不需要重写 difR 包,然后可以运行一些在 Windows PC 上并行编程的帮助下,它最繁琐的过程。

最佳答案

我完全同意保罗的回答。

此外,一个通用的并行化系统需要一些非常重要的校准,即使对于那些可以很容易并行化的函数也是如此:如果你有一个提供并行计算的几个函数的调用堆栈(例如,你正在引导一些模型拟合,模型拟合可能已经提供并行化并且低级线性代数可以隐式并行)?您需要估计(或手动选择)应该在哪个级别进行显式并行化。此外,您可能具有隐式并行化,因此您需要在这些之间进行权衡。

但是,有一种特别简单且通用的方法可以在 R 中隐式并行化计算:使用优化的 BLAS 可以并行化线性代数并显着加快速度。使用它(取决于您的系统)就像告诉您的包管理器安装优化的 BLAS 一样简单,R 将使用它。一旦链接到 R,所有使用基本线性代数函数(如 %*%crossprodsolve 等)的包都将受益。

参见例如Dirk Eddelbüttel 的 gcbd 包及其插图,还讨论了如何使用 GotoBLAS2/OpenBLAS。

关于r - 所有 R 包的并行编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206460/

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