You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在使用mgcv::gam时控制BLAS并行化?

解决GAM模型BLAS自动并行占用过多核心的问题

你的判断没错,核心占用过高是因为OpenBLAS默认会使用全部可用CPU线程,和gam.control()的线程设置无关——后者只控制gam自身的并行逻辑,不影响底层BLAS库的并行行为。以下是具体控制方法:

临时设置(仅当前R会话生效)

在运行gam()模型之前,执行以下代码指定BLAS使用的线程数(示例设为2,可根据需求调整):

Sys.setenv(OPENBLAS_NUM_THREADS = 2)

永久设置(每次启动R自动生效)

方法1:修改R配置文件

编辑用户目录下的.Rprofile文件(如果没有就新建),添加一行:

Sys.setenv(OPENBLAS_NUM_THREADS = 2)

下次启动R时会自动加载该设置。

方法2:系统层面设置环境变量

编辑系统环境变量配置文件/etc/environment,添加:

OPENBLAS_NUM_THREADS=2

保存后重启系统,或执行source /etc/environment使设置立即生效。

验证设置是否生效

执行以下命令查看当前OpenBLAS的线程数:

system("openblas-config --show-threads")

运行模型时再用top命令观察CPU使用率,确认核心占用符合预期。

内容的提问来源于stack exchange,提问作者Ben Bolker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:02:36