如何解决来自suitesparse的并行SPQR
我正在尝试使用 eigen 中的 sparsesuite SPQR 支持模块来解决启用多线程的系统。
我已经用 -fopenmp 标志和 tbb 编译了相应的库。我正在运行的东西就像
uint n = Eigen::nbThreads();
vec b = ...; //vector of size ~ 10000
Eigen::SPQR<Eigen::SparseMatrix<double>> qr;
qr.setPivotThreshold(1e-6);
qr.compute(H0); //H0 is a Eigen::SparseMatrix<double> 10000 x 1000
vec a = qr.solve(b);
使用不同数量的线程(1、2、4、16)运行它,即使 Eigen::nbThreads() 返回正确的值,我也绝对没有看到加速。
如果我改用共轭梯度,增加线程数有明显的好处。
所以我的问题是:您是否知道为什么使用 SPQR 并行化似乎不起作用?我是不是忘了什么地方?
预先感谢您的回答,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。