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

Functions

magma_int_t magma_zcustomicsetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete Cholesky preconditioner. More...
 
magma_int_t magma_zcustomilusetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Reads in an Incomplete LU preconditioner. More...
 
magma_int_t magma_zparictsetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner. More...
 
magma_int_t magma_ziluisaisetup (magma_z_matrix A, magma_z_matrix b, magma_z_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_ziluisaisetup_t (magma_z_matrix A, magma_z_matrix b, magma_z_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_zisai_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_zisai_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_zisai_l_t (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Left-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_zisai_r_t (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Right-hand-side application of ISAI preconditioner. More...
 
magma_int_t magma_ziluisaisetup_lower (magma_z_matrix A, magma_z_matrix S, magma_z_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_ziluisaisetup_upper (magma_z_matrix A, magma_z_matrix S, magma_z_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_zparict (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete Cholesky preconditioner. More...
 
magma_int_t magma_zparilut (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the iterative threshold Incomplete LU preconditioner. More...
 
magma_int_t magma_zicisaisetup (magma_z_matrix A, magma_z_matrix b, magma_z_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_zcumilusetup (magma_z_matrix A, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the cuSPARSE. More...
 
magma_int_t magma_zcumilusetup_transpose (magma_z_matrix A, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU transpose preconditioner via the cuSPARSE. More...
 
magma_int_t magma_zcumilugeneratesolverinfo (magma_z_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_zapplycumilu_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the ILU preconditioner. More...
 
magma_int_t magma_zapplycumilu_l_transpose (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the transpose ILU preconditioner. More...
 
magma_int_t magma_zapplycumilu_r (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the ILU preconditioner. More...
 
magma_int_t magma_zapplycumilu_r_transpose (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the right triangular solves using the transpose ILU preconditioner. More...
 
magma_int_t magma_zparilusetup (magma_z_matrix A, magma_z_matrix b, magma_z_preconditioner *precond, magma_queue_t queue)
 Prepares the ILU preconditioner via the iterative ILU iteration. More...
 
magma_int_t magma_zapplyiteric_l (magma_z_matrix b, magma_z_matrix *x, magma_z_preconditioner *precond, magma_queue_t queue)
 Performs the left triangular solves using the IC preconditioner via Jacobi. More...
 
magma_int_t magma_zapplyiteric_r (magma_z_matrix b, magma_z_matrix *x, magma_z_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_zcustomicsetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Reads in an Incomplete Cholesky preconditioner.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcustomilusetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Reads in an Incomplete LU preconditioner.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zparictsetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the iterative threshold Incomplete Cholesky preconditioner.

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

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ziluisaisetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

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

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ziluisaisetup_t ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_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_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zisai_l ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zisai_r ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zisai_l_t ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Left-hand-side application of ISAI preconditioner.

Transpose.

Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zisai_r_t ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Right-hand-side application of ISAI preconditioner.

Transpose.

Parameters
[in]bmagma_z_matrix input RHS b
[in,out]xmagma_z_matrix solution x
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ziluisaisetup_lower ( magma_z_matrix  A,
magma_z_matrix  S,
magma_z_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_z_matrix input matrix A
[in]Smagma_z_matrix pattern for the ISAI preconditioner
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_ziluisaisetup_upper ( magma_z_matrix  A,
magma_z_matrix  S,
magma_z_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_z_matrix input matrix A
[in]Smagma_z_matrix pattern for the ISAI preconditioner
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zparict ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_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_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zparilut ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_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_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zicisaisetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_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 zgeisai.cpp.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcumilusetup ( magma_z_matrix  A,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the cuSPARSE.

Parameters
[in]Amagma_z_matrix input matrix A
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcumilusetup_transpose ( magma_z_matrix  A,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU transpose preconditioner via the cuSPARSE.

Parameters
[in]Amagma_z_matrix input matrix A
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zcumilugeneratesolverinfo ( magma_z_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_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zapplycumilu_l ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the ILU preconditioner.

Parameters
[in]bmagma_z_matrix RHS
[in,out]xmagma_z_matrix* vector to precondition
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zapplycumilu_l_transpose ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the left triangular solves using the transpose ILU preconditioner.

Parameters
[in]bmagma_z_matrix RHS
[in,out]xmagma_z_matrix* vector to precondition
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zapplycumilu_r ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the ILU preconditioner.

Parameters
[in]bmagma_z_matrix RHS
[in,out]xmagma_z_matrix* vector to precondition
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zapplycumilu_r_transpose ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Performs the right triangular solves using the transpose ILU preconditioner.

Parameters
[in]bmagma_z_matrix RHS
[in,out]xmagma_z_matrix* vector to precondition
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zparilusetup ( magma_z_matrix  A,
magma_z_matrix  b,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

Prepares the ILU preconditioner via the iterative ILU iteration.

Parameters
[in]Amagma_z_matrix input matrix A
[in]bmagma_z_matrix input RHS b
[in,out]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zapplyiteric_l ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

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

Parameters
[in]bmagma_z_matrix RHS
[out]xmagma_z_matrix* vector to precondition
[in]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.
magma_int_t magma_zapplyiteric_r ( magma_z_matrix  b,
magma_z_matrix *  x,
magma_z_preconditioner *  precond,
magma_queue_t  queue 
)

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

Parameters
[in]bmagma_z_matrix RHS
[out]xmagma_z_matrix* vector to precondition
[in]precondmagma_z_preconditioner* preconditioner parameters
[in]queuemagma_queue_t Queue to execute in.