问题描述
我使用Julia GLM
包通过交互实现了回归模型:
Reg = lm(@formula(dep_var ~ var1&var2&var3),data,true)
。
满足此公式需要大量RAM(> 80 GB),但是我注意到计算是在一个内核上执行的,尽管我的操作系统(x86_64-pc-linux-gnu)有8个cpu内核。
是否可以使用多处理/并行方法实现线性回归?
我想,它还可以改善模型的运行时间。
解决方法
拟合回归模型基本上是在做很多矩阵运算。默认情况下,Julia使用的是BLAS,最简单的方法是尝试将其配置为多线程。这要求在多线程设置和设置BLAS.set_num_threads()
中运行Julia。
在开始执行Julia运行之前:
set JULIA_NUM_THREADS=4
或在Linux
上export JULIA_NUM_THREADS=4
一旦Julia启动,请运行命令。
BLAS.set_num_threads(4)
您应该观察到线性回归模型的性能有所提高。