gpt4 book ai didi

c++ - 并行使用 Eigen BICGSTAB 求解稀疏矩阵

转载 作者:行者123 更新时间:2023-12-01 14:29:29 45 4
gpt4 key购买 nike

我正在尝试使用特征 BICGSTAB 并行求解形式为 Ax=b 的线性方程组。

initParallel();
int n=4;
omp_set_num_threads(n);
setNbThreads(n);

BiCGSTAB <SparseMatrix<double>> solver;
solver.compute(A);
x = solver.solve(b);

我还在 visual studio 中启用了 OpenMP。但是当我增加线程数时,我看不到 CPU 使用率有任何增加。结果,我看不到它的性能有任何提高。

但是,当我使用 LeastSquaresConjugateGradient 作为求解器时,当我增加线程数时 CPU 使用率会增加,这意味着我可以成功并行它,但正如我所说,它不适用于 BiCGSTAB。

initParallel();
int n=4;
omp_set_num_threads(n);
setNbThreads(n);

LeastSquaresConjugateGradient <SparseMatrix<double>> solver;
solver.compute(A);
x = solver.solve(b);

任何人都可以告诉我为什么它不能与 BiCGSTAB 并联以及如何做到这一点?

最佳答案

并行 Eigen BICGSTAB:

int n=4;
omp_set_num_threads(n);
setNbThreads(n);

BiCGSTAB <SparseMatrix<double>,RowMajor> solver;
solver.compute(A);
x = solver.solve(b);

关于c++ - 并行使用 Eigen BICGSTAB 求解稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58875483/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com