Есть ли способ улучшить производительность умножения собственных матриц, используя OpenMP или любой другой подход для обеспечения многопоточности? В настоящее время включение OpenMP ничего не дает.
inline void multiply1(
Eigen::MatrixXd &m,
std::vector<double> &vector,
std::vector<double> &result
)
{
int size = (int)vector.size();
result.resize(size);
Eigen::Map<Eigen::VectorXd> Evector(vector.data(), size);
Eigen::VectorXd a;
a.noalias() = m * Evector;
Eigen::VectorXd::Map(&result[0], a.size()) = a;
}
Эта функция вызывается множество раз во время выполнения, поэтому она очень сильно влияет на общее время вычислений.