У меня проблема с использованием многопоточности в библиотеке Eigen
.Это мой код:
#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() << "\n";
return a.exec();
}
Что бы я ни делал Eigen::nbThreads( )
всегда возвращает 1 независимо от того, какое число я использовал в Eigen::setNbThreads(6)
!
Я читаю здесь , нов действительности это не говорит о том, как мы можем запустить Eigen
в параллельном режиме, когда OpenMP
отсутствует!
Я также сделал много поисков, но все они используются с OpenMP
!
Что только что произошло?Eigen
поддерживает только OpenMP
для многопоточности или имеет встроенную многопоточность?
Заранее спасибо!