В документации Eigen сказано, что он поддерживается, но я не могу понять, почему это не сокращает время решения линейных уравнений.
Это фрагмент кода, который я использую:
Код: Выделить всё
SparseMatrix A(n, n);
// filling in A matrix
int n_t = 8;
omp_set_num_threads(n_t);
BiCGSTAB solver;
solver.setTolerance(1e-10);
solver.setMaxIterations(1000);
solver.compute(A);
VectorXd x = solver.solve(b);
Код: Выделить всё
g++ -I "C:/CPP/eigen-3.4.0" -o parallel_solve -O3 -fopenmp solver_test_parallel.cppКомпилирую код под Windows.
Я пробовал использовать разные способы установки количества потоков, скачивал еще раз собственный, но ничего не помогло. Кроме того, я знаю, что в стеке есть похожие темы по этой проблеме, но ни одно из решений мне не помогло.
Подробнее здесь: https://stackoverflow.com/questions/786 ... ith-openmp
Мобильная версия