Iterative Sparse Solvers based on Reverse Communication Interface (RCI ISS)
Intel® oneAPI Math Kernel Library
See the
Appendix A Linear Solvers Basics for discussion of terms and concepts related to the ISS routines.
The term
RCI
indicates that when the solver needs the results of certain operations (for example, matrix-vector multiplications), the user performs them and passes the result to the solver. This makes the solver more universal as it is independent of the specific implementation of the operations like the matrix-vector multiplication. To perform such operations, the user can use the built-in sparse matrix-vector multiplications and triangular solvers routines described in
Sparse BLAS Level 2 and Level 3 Routines.
The RCI CG solver is implemented in two versions: for system of equations with a single right-hand side, and for systems of equations with multiple right-hand sides.
The CG method may fail to compute the solution or compute the wrong solution if the matrix of the system is not symmetric and not positive definite.
The FGMRES method may fail if the matrix is degenerate.
Table
"RCI CG Interface Routines"
lists the names of the routines, and describes their general use.
Routine
| Description
|
---|---|
Initializes the solver.
| |
Checks the consistency and correctness of the user defined data.
| |
Retrieves the number of the current iteration.
|
The
RCI ISS interface routines are normally invoked in this order:
Intel® oneAPI Math Kernel Library
- <system_type>_init
- <system_type>_check
- <system_type>
- <system_type>_get
Advanced users can change that order if they need it. Others should follow the above order of calls.
The following diagram indicates the typical order in which the RCI ISS interface routines are invoked.
Typical Order for Invoking RCI ISS interface Routines

See the code examples that use the RCI ISS interface routines to solve systems of linear equations in the
installation directory.
Intel® oneAPI Math Kernel Library
- examples/solverc/source