mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Doc: explain perf and multithreading issues in sparse iterative solvers
This commit is contained in:
@@ -21,7 +21,7 @@ They are summarized in the following table:
|
||||
<tr><td>ConjugateGradient</td><td>\link IterativeLinearSolvers_Module IterativeLinearSolvers \endlink</td><td>Classic iterative CG</td><td>SPD</td><td>Preconditionning</td>
|
||||
<td>built-in, MPL2</td>
|
||||
<td>Recommended for large symmetric problems (e.g., 3D Poisson eq.)</td></tr>
|
||||
<tr><td>LSCG</td><td>\link IterativeLinearSolvers_Module IterativeLinearSolvers \endlink</td><td>CG for rectangular least-square problem</td><td>Rectangular</td><td>Preconditionning</td>
|
||||
<tr><td>LeastSquaresConjugateGradient</td><td>\link IterativeLinearSolvers_Module IterativeLinearSolvers \endlink</td><td>CG for rectangular least-square problem</td><td>Rectangular</td><td>Preconditionning</td>
|
||||
<td>built-in, MPL2</td>
|
||||
<td>Solve for min |A'Ax-b|^2 without forming A'A</td></tr>
|
||||
<tr><td>BiCGSTAB</td><td>\link IterativeLinearSolvers_Module IterativeLinearSolvers \endlink</td><td>Iterative stabilized bi-conjugate gradient</td><td>Square</td><td>Preconditionning</td>
|
||||
|
||||
@@ -22,8 +22,12 @@ n = Eigen::nbThreads( );
|
||||
You can disable Eigen's multi threading at compile time by defining the EIGEN_DONT_PARALLELIZE preprocessor token.
|
||||
|
||||
Currently, the following algorithms can make use of multi-threading:
|
||||
* general matrix - matrix products
|
||||
* PartialPivLU
|
||||
- general dense matrix - matrix products
|
||||
- PartialPivLU
|
||||
- row-major-sparse * dense vector/matrix products
|
||||
- ConjugateGradient with \c Lower|Upper as the \c UpLo template parameter.
|
||||
- BiCGSTAB with a row-major sparse matrix format.
|
||||
- LeastSquaresConjugateGradient
|
||||
|
||||
\section TopicMultiThreading_UsingEigenWithMT Using Eigen in a multi-threaded application
|
||||
|
||||
|
||||
Reference in New Issue
Block a user