Developer Reference

Contents

Iterative Sparse Solvers based on Reverse Communication Interface (RCI ISS)

Intel® MKL
supports iterative sparse solvers (ISS) based on the reverse communication interface (RCI), referred to here as the RCI ISS interface . The RCI ISS interface implements a group of user-callable routines that are used in the step-by-step solving process of a symmetric positive definite system (RCI conjugate gradient solver, or RCI CG), and of a non-symmetric indefinite (non-degenerate) system (RCI flexible generalized minimal residual solver, or RCI FGMRES) of linear algebraic equations. This interface uses the general RCI scheme described in [ Dong95 ].
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.
RCI ISS Interface Routines
Routine
Description
Initializes the solver.
Checks the consistency and correctness of the user defined data.
Computes the approximate solution vector.
Retrieves the number of the current iteration.
The
Intel® MKL
RCI ISS interface routines are normally invoked in this order:
  1. <
    system_type
    >_init
  2. <
    system_type
    >_check
  3. <
    system_type
    >
  4. <
    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
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
Intel® MKL
installation directory.
  • examples/solverc/source

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804