gpt4 book ai didi

r - 在R中如何控制BLAS并行矩阵乘积中的多线程

转载 作者:行者123 更新时间:2023-12-03 12:44:04 26 4
gpt4 key购买 nike

我有一个关于在 R 中使用 BLAS 并行化矩阵乘积的问题(至少从 R-3.4 开始是默认矩阵乘积,可能更早)。

默认行为(至少在我的机器上)现在是矩阵产品(参见下面的示例)使用机器上的所有可用内核,这可能是一个问题。

您知道如何控制 R 中用于标准矩阵乘积的内核数量吗?

提前致谢

例子:

n=10000
p=1000
q=5000
A = matrix(runif(n*p),nrow=n, ncol=p)
B = matrix(runif(p*q),nrow=p, ncol=q)
C = A %*% B # multi-threaded matrix product

session 信息:
> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.3 LTS

Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/libopenblasp-r0.2.18.so

locale:
[1] LC_CTYPE=fr_FR.utf8 LC_NUMERIC=C
[3] LC_TIME=fr_FR.utf8 LC_COLLATE=fr_FR.utf8
[5] LC_MONETARY=fr_FR.utf8 LC_MESSAGES=fr_FR.utf8
[7] LC_PAPER=fr_FR.utf8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=fr_FR.utf8 LC_IDENTIFICATION=C

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

loaded via a namespace (and not attached):
[1] compiler_3.4.1

最佳答案

包裹RhpcBLASctl就是这样。

从它的描述:

Control the number of threads on 'BLAS' (Aka 'GotoBLAS', 'ACML' and 'MKL'). and possible to control the number of threads in 'OpenMP'. get a number of logical cores and physical cores if feasible.



我们在 CRAN Task View on HPC 中提到了它.

关于r - 在R中如何控制BLAS并行矩阵乘积中的多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45794290/

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