如何解决Julia中线性回归的并行/多线程版本
我使用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)
您应该观察到线性回归模型的性能有所提高。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。