MAGMA  2.3.0
Matrix Algebra for GPU and Multicore Architectures
 All Classes Files Functions Friends Groups Pages
single-complex precision

Functions

magma_int_t magma_ccustomicsetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete Cholesky preconditioner. More...
 
magma_int_t magma_ccustomilusetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete LU preconditioner. More...
 
magma_int_t magma_ciluisaisetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More...
 
magma_int_t magma_ciluisaisetup_t (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More...
 
magma_int_t magma_cisai_l (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_cisai_r (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_cisai_l_t (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_cisai_r_t (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_ciluisaisetup_lower (magma_c_matrix A, magma_c_matrix S, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More...
 
magma_int_t magma_ciluisaisetup_upper (magma_c_matrix A, magma_c_matrix S, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves. More...
 
magma_int_t magma_cparict (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner. More...
 
magma_int_t magma_cparilut (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete LU preconditioner. More...
 
magma_int_t magma_cicisaisetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares Incomplete Cholesky preconditioner using a sparse approximate inverse instead of sparse triangular solves. More...
 
magma_int_t magma_ccumilusetup (magma_c_matrix A, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the cuSPARSE. More...
 
magma_int_t magma_ccumilusetup_transpose (magma_c_matrix A, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU transpose preconditioner via the cuSPARSE. More...
 
magma_int_t magma_ccumilugeneratesolverinfo (magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU triangular solves via cuSPARSE using an ILU factorization matrix stored either in precond->M or on the device as precond->L and precond->U. More...
 
magma_int_t magma_capplycumilu_l (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the ILU preconditioner. More...
 
magma_int_t magma_capplycumilu_l_transpose (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the transpose ILU preconditioner. More...
 
magma_int_t magma_capplycumilu_r (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the ILU preconditioner. More...
 
magma_int_t magma_capplycumilu_r_transpose (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the transpose ILU preconditioner. More...
 
magma_int_t magma_cparilusetup (magma_c_matrix A, magma_c_matrix b, magma_c_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the iterative ILU iteration. More...
 
magma_int_t magma_capplyiteric_l (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the IC preconditioner via Jacobi. More...
 
magma_int_t magma_capplyiteric_r (magma_c_matrix b, magma_c_matrix *x, magma_c_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the IC preconditioner via Jacobi. More...
 

Detailed Description

Function Documentation

magma_int_t magma_ccustomicsetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Reads in an Incomplete Cholesky preconditioner.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ccustomilusetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Reads in an Incomplete LU preconditioner.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ciluisaisetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ciluisaisetup_t ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

This is the transpose preconditioner setup needed e.g. for BiCG, QMR, LSQR...

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cisai_l ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cisai_r ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cisai_l_t ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Transpose.

Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cisai_r_t ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Transpose.

Parameters
[in]bmagma_c_matrix input RHS b
[in,out]xmagma_c_matrix solution x
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ciluisaisetup_lower ( magma_c_matrix  A,
magma_c_matrix  S,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

This routine only handles the lower triangular part.

Parameters
[in]Amagma_c_matrix input matrix A
[in]Smagma_c_matrix pattern for the ISAI preconditioner
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ciluisaisetup_upper ( magma_c_matrix  A,
magma_c_matrix  S,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares Incomplete LU preconditioner using a sparse approximate inverse instead of sparse triangular solves.

This routine only handles the upper triangular part.

Parameters
[in]Amagma_c_matrix input matrix A
[in]Smagma_c_matrix pattern for the ISAI preconditioner
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cparict ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete Cholesky preconditioner.

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2016.

This function requires OpenMP, and is only available if OpenMP is activated.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cparilut ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete LU preconditioner.

The strategy is interleaving a parallel fixed-point iteration that approximates an incomplete factorization for a given nonzero pattern with a procedure that adaptively changes the pattern. Much of this new algorithm has fine-grained parallelism, and we show that it can efficiently exploit the compute power of shared memory architectures.

This is the routine used in the publication by Anzt, Chow, Dongarra: ''ParILUT - A new parallel threshold ILU factorization'' submitted to SIAM SISC in 2017.

This function requires OpenMP, and is only available if OpenMP is activated.

The parameter list is:

precond.sweeps : number of ParILUT steps precond.atol : absolute fill ratio (1.0 keeps nnz constant) precond.rtol : how many candidates are added to the sparsity pattern 1.0 one per row < 1.0 a fraction of those > 1.0 all candidates

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cicisaisetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares Incomplete Cholesky preconditioner using a sparse approximate inverse instead of sparse triangular solves.

This is the symmetric variant of cgeisai.cpp.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ccumilusetup ( magma_c_matrix  A,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the cuSPARSE.

Parameters
[in]Amagma_c_matrix input matrix A
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ccumilusetup_transpose ( magma_c_matrix  A,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU transpose preconditioner via the cuSPARSE.

Parameters
[in]Amagma_c_matrix input matrix A
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ccumilugeneratesolverinfo ( magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU triangular solves via cuSPARSE using an ILU factorization matrix stored either in precond->M or on the device as precond->L and precond->U.

Parameters
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_capplycumilu_l ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the ILU preconditioner.

Parameters
[in]bmagma_c_matrix RHS
[in,out]xmagma_c_matrix* vector to precondition
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_capplycumilu_l_transpose ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the transpose ILU preconditioner.

Parameters
[in]bmagma_c_matrix RHS
[in,out]xmagma_c_matrix* vector to precondition
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_capplycumilu_r ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the ILU preconditioner.

Parameters
[in]bmagma_c_matrix RHS
[in,out]xmagma_c_matrix* vector to precondition
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_capplycumilu_r_transpose ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the transpose ILU preconditioner.

Parameters
[in]bmagma_c_matrix RHS
[in,out]xmagma_c_matrix* vector to precondition
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_cparilusetup ( magma_c_matrix  A,
magma_c_matrix  b,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the iterative ILU iteration.

Parameters
[in]Amagma_c_matrix input matrix A
[in]bmagma_c_matrix input RHS b
[in,out]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_capplyiteric_l ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the IC preconditioner via Jacobi.

Parameters
[in]bmagma_c_matrix RHS
[out]xmagma_c_matrix* vector to precondition
[in]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_capplyiteric_r ( magma_c_matrix  b,
magma_c_matrix *  x,
magma_c_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the IC preconditioner via Jacobi.

Parameters
[in]bmagma_c_matrix RHS
[out]xmagma_c_matrix* vector to precondition
[in]precondmagma_c_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.