BiCGSTAB не ускоряется с OpenMPC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 BiCGSTAB не ускоряется с OpenMP

Сообщение Anonymous »

Я хочу использовать OpenMP с решателем Eigen BiCGSTAB.
В документации 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
Я провожу тест для размера матрицы n=1e6, и решение набора уравнений как в последовательной версии, так и в версии OpenMP занимает около 15 секунд.
Компилирую код под Windows.
Я пробовал использовать разные способы установки количества потоков, скачивал еще раз собственный, но ничего не помогло. Кроме того, я знаю, что в стеке есть похожие темы по этой проблеме, но ни одно из решений мне не помогло.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ith-openmp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»