Multi-Threading in Eigen (OpenMP is not used)
在
这是我的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include <QCoreApplication> #include <iostream> #include"Eigen/Core" #include <QDebug> using namespace Eigen; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); Eigen::setNbThreads(6); qDebug() << Eigen::nbThreads( ); int n = 1000; MatrixXd A = MatrixXd::Ones(n,n); MatrixXd B = MatrixXd::Ones(n,n); MatrixXd C = MatrixXd::Ones(n,n); C.noalias() += A*B; std::cout << C.sum() <<"\ "; return a.exec(); } |
无论我在
我在这里读过,但实际上并没有明确说明当
我也做了很多搜索,但是所有搜索都与
发生了什么事?
谢谢!
Eigen \\的内置多线程功能仅适用于已激活的OpenMP。如果未使用OpenMP进行编译,则
您可以在本身是多线程的应用程序中使用Eigen(要注意的主要警告是对
此外,如果您自己的多线程基于OpenMP,但是您不希望Eigen利用多线程,则可以在编译时通过定义