R语言
blas.thread.test
位于 mgcv
包(package)。 说明
大多数 BLAS 实现都是线程安全的,但某些版本的 OpenBLAS 则不是。该例程是一个诊断辅助函数,如果您不设置 nthreads>1
,您将永远不需要它,即使这样也不太可能需要。
用法
blas.thread.test(n=1000,nt=4)
参数
n |
并行 BLAS 调用代码运行的迭代次数。 |
nt |
要使用的并行线程数 |
细节
虽然单线程 OpenBLAS 0.2.20 是线程安全的,但版本 0.3.0-0.3.6 不是线程安全的,并且从版本 0.3.7 开始,单线程 OpenBLAS 的线程安全需要使用选项 USE_LOCKING=1
来实现。参考 BLAS 是线程安全的,MKL 和 ATLAS 也是如此。此例程从多线程代码中重复调用 BLAS,足以检测单线程 OpenBLAS 0.3.x 中的问题。
多线程 BLAS 通常并不比单线程 BLAS 快,但在调用 BLAS 的代码中明智地使用线程仍然可以提供适度的速度改进。因此,通常最好使用单线程 BLAS 和 bam
或 gam
的 codenthreads 选项。对于bam(...,discrete=TRUE)
,使用多个线程可以带来很大的好处,特别是对于参考 BLAS。
MKL BLAS 默认是多线程的。在Linux下,在启动R之前设置环境变量MKL_NUM_THREADS=1
给出单线程操作。
作者
Simon N. Wood simon.wood@r-project.org
相关用法
- R bandchol 带对角矩阵的 Choleski 分解
- R bam.update 为新数据更新严格附加的 bam 模型。
- R bam 适用于非常大数据集的广义加性模型
- R betar GAM beta 回归家族
- R vcov.gam 从 GAM 拟合中提取参数(估计器)协方差矩阵
- R gam.check 拟合 gam 模型的一些诊断
- R null.space.dimension TPRS 未惩罚函数空间的基础
- R gam.reparam 寻找平方根惩罚的稳定正交重新参数化。
- R extract.lme.cov 从 lme 对象中提取数据协方差矩阵
- R scat 用于重尾数据的 GAM 缩放 t 系列
- R choldrop 删除并排名第一 Cholesky 因子更新
- R smooth.construct.cr.smooth.spec GAM 中的惩罚三次回归样条
- R gam.side GAM 的可识别性边条件
- R cox.ph 附加 Cox 比例风险模型
- R mgcv.parallel mgcv 中的并行计算。
- R gamm 广义加性混合模型
- R pdTens 实现张量积平滑的 pdMat 类的函数
- R Predict.matrix GAM 中平滑项的预测方法
- R Predict.matrix.soap.film 皂膜光滑度预测矩阵
- R smooth.construct.bs.smooth.spec GAM 中的惩罚 B 样条
- R gamlss.gH 计算回归系数的对数似然导数
- R plot.gam 默认 GAM 绘图
- R mvn 多元正态加性模型
- R gfam 分组家庭
- R smooth.construct GAM 中平滑项的构造函数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 BLAS thread safety。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。