gpt4 book ai didi

R 和 RStudio 在 macOS 上运行缓慢

转载 作者:行者123 更新时间:2023-12-05 04:48:45 27 4
gpt4 key购买 nike

我在等待 R 4.1。和原生 Apple 芯片支持,以针对其他平台进行一些基准测试。我在配备 M1 芯片的 MacBook Pro 上的结果让我感到不安。让我们从 Mac 开始:

> sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Big Sur 11.4

Matrix products: default
LAPACK: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base

loaded via a namespace (and not attached):
[1] compiler_4.1.0 tools_4.1.0

基准测试的结果是:

> N <- 20000
> M <- 2000
> X <- matrix(rnorm(N*M),N)
> system.time(crossprod(X))
user system elapsed
49.954 0.109 50.056

有趣的是,sessionInfo 在 R 控制台中有不同的输出,但结果是相同的:

> sessionInfo()
R version 4.1.0 (2021-05-18)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Big Sur 11.4

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRblas.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats graphics grDevices utils datasets methods base

loaded via a namespace (and not attached):
[1] compiler_4.1.0

显然 R 使用了 Acclerate 框架的 BLAS 库,但基准测试是相似的:

> system.time(crossprod(X))
user system elapsed
49.909 0.117 50.015

在 Windows 下使用我的 Thinkpad E 580 是一个完全不同的故事:

R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19042)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base

other attached packages:
[1] microbenchmark_1.4-7 RevoUtils_11.0.2 RevoUtilsMath_11.0.0

loaded via a namespace (and not attached):
[1] compiler_4.0.2 tools_4.0.2 grid_4.0.2 lattice_0.20-41

计算速度更快:

> system.time(crossprod(X))
user system elapsed
2.60 0.03 0.70

Windows 使用 Microsoft R Open,这可以解释差异。在 Ubuntu 或 Fedora 上,在同一台笔记本电脑上使用 OpenBlas,结果与 Windows 类似。我不知道这是否符合预期。对我来说,macOS R 慢得莫名其妙。

最佳答案

我错了,在我的例子中,R 使用了更快的 vecLib 库。来自R for Mac OS FAQ :

Currently the default is to use the R BLAS: this is recommended forprecision

如果从 CRAN 安装常规 R,就会出现这种情况。解决办法是换成苹果的Accelerate BLAS:

cd /Library/Frameworks/R.framework/Resources/lib
ln -sf /System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/Current/libBLAS.dylib libRblas.dylib

如许多来源中所述,例如 here .

随着 BLAS 的改变,MacBook 比 Thinkpad 快得多:

> system.time(crossprod(X))
user system elapsed
0.491 0.059 0.553

我想我是在自欺欺人,因为在 Fedora 上,openblas 是默认启用的,而我也期望如此。此外,必须阅读文档。

关于R 和 RStudio 在 macOS 上运行缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67923576/

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