PaStiX Handbook  6.3.2
Factorization step

This group describes all the routines of the internal block CSC and the solver matrix structure before applying the numerical factorization step. More...

Modules

 Sparse matrix blocked CSC structure
 Describe all the internals routines to manipulate the internal block csc.
 
 Solver matrix coefficient structure
 
 Factorization kernels
 
 PaRSEC support for the numerical factorization
 
 StarPU support for the numerical factorization
 

Functions

int pastix_subtask_spm2bcsc (pastix_data_t *pastix_data, spmatrix_t *spm)
 Fill the internal block CSC structure. More...
 
int pastix_subtask_bcsc2ctab (pastix_data_t *pastix_data)
 Fill the internal solver matrix structure. More...
 
int pastix_subtask_sopalin (pastix_data_t *pastix_data)
 Factorize the given problem using Cholesky or LU decomposition. More...
 

Detailed Description

This group describes all the routines of the internal block CSC and the solver matrix structure before applying the numerical factorization step.

Function Documentation

◆ pastix_subtask_spm2bcsc()

int pastix_subtask_spm2bcsc ( pastix_data_t pastix_data,
spmatrix_t *  spm 
)

Fill the internal block CSC structure.

This internal block CSC can be used by the refinement step with or without the preconditioner obtained by the numerical factorization.

This routine is affected by the following parameters: IPARM_VERBOSE.

Parameters
[in,out]pastix_dataThe pastix_data structure that describes the solver instance. On exit, the internal block CSC is filled with entries from the spm matrix.
[in,out]spmThe sparse matrix descriptor that describes problem instance. On exit, if IPARM_FREE_CSCUSER is set, the spm is freed.
Return values
PASTIX_SUCCESSon successful exit,
PASTIX_ERR_BADPARAMETERif one parameter is incorrect,
PASTIX_ERR_OUTOFMEMORYif one allocation failed.

Definition at line 93 of file pastix_task_sopalin.c.

References pastix_data_s::bcsc, bcscExit(), bcscInit(), pastix_data_s::dparm, DPARM_A_NORM, pastix_data_s::inter_node_procnum, pastix_data_s::iparm, IPARM_FACTORIZATION, IPARM_FREE_CSCUSER, IPARM_SCHEDULER, IPARM_VERBOSE, pastix_data_s::ordemesh, PASTIX_ERR_BADPARAMETER, pastix_int_t, PASTIX_SUCCESS, PastixFactLDLH, PastixFactLDLT, PastixFactLU, PastixSchedDynamic, PastixSchedParsec, PastixVerboseNo, PastixVerboseNot, pastix_data_s::sched, pastix_data_s::solvglob, pastix_data_s::solvloc, pastix_data_s::solvmatr, and pastix_data_s::steps.

Referenced by pastix_task_numfact().

◆ pastix_subtask_bcsc2ctab()

int pastix_subtask_bcsc2ctab ( pastix_data_t pastix_data)

Fill the internal solver matrix structure.

This step is linked with the pastix_subtask_sopalin() since this structure is only used during the numerical factorization.

This routine is affected by the following parameters: IPARM_VERBOSE, [IPARM_FACTORIZATION.

Parameters
[in,out]pastix_dataThe pastix_data structure that describes the solver instance. On exit, the internal solver structure is filled with entries from the internal block CSC matrix.
Return values
PASTIX_SUCCESSon successful exit,
PASTIX_ERR_BADPARAMETERif one parameter is incorrect,
PASTIX_ERR_OUTOFMEMORYif one allocation failed.

Definition at line 213 of file pastix_task_sopalin.c.

References pastix_data_s::bcsc, coeftabExit(), coeftabInit(), pastix_lr_s::compress_method, pastix_lr_s::compress_min_height, pastix_lr_s::compress_min_width, pastix_lr_s::compress_preselect, pastix_lr_s::compress_when, pastix_lr_s::core_ge2lr, core_get_rklimit, core_get_rklimit_begin(), core_get_rklimit_end(), pastix_lr_s::core_rradd, pastix_data_s::dparm, DPARM_COMPRESS_MIN_RATIO, DPARM_COMPRESS_TOLERANCE, solver_matrix_s::factotype, solver_matrix_s::flttype, ge2lrMethods, pastix_lr_s::ilu_lvl, pastix_data_s::inter_node_comm, pastix_data_s::iparm, IPARM_COMPRESS_ILUK, IPARM_COMPRESS_METHOD, IPARM_COMPRESS_MIN_HEIGHT, IPARM_COMPRESS_MIN_WIDTH, IPARM_COMPRESS_ORTHO, IPARM_COMPRESS_PRESELECT, IPARM_COMPRESS_RELTOL, IPARM_COMPRESS_WHEN, IPARM_FACTORIZATION, IPARM_MIXED, IPARM_SCHEDULER, solver_matrix_s::lowrank, pastix_data_s::parsec, parsec_sparse_matrix_init(), PASTIX_ERR_BADPARAMETER, pastix_lr_minratio, pastix_lr_ortho, pastix_parsec_init(), PastixCompressNever, PastixCompressWhenBegin, PastixCompressWhenDuring, PastixCompressWhenEnd, PastixFactLDLH, PastixFactLDLT, PastixFactLLH, PastixFactLLT, PastixFactLU, PastixGeneral, PastixHermitian, PastixLCoef, PastixLUCoef, PastixSchedParsec, PastixSymmetric, pastix_data_s::procnbr, rraddMethods, pastix_data_s::solvmatr, pastix_data_s::steps, pastix_lr_s::tolerance, and pastix_lr_s::use_reltol.

Referenced by pastix_task_numfact().

◆ pastix_subtask_sopalin()

int pastix_subtask_sopalin ( pastix_data_t pastix_data)

Factorize the given problem using Cholesky or LU decomposition.

The user can call the pastix_task_solve() to obtain the solution.

This routine is affected by the following parameters: IPARM_VERBOSE, IPARM_FACTORIZATION, IPARM_COMPRESS_WHEN.

Parameters
[in,out]pastix_dataThe pastix_data structure that describes the solver instance. On exit, the solver matrix structure stores the factorization of the given problem.
Return values
PASTIX_SUCCESSon successful exit,
PASTIX_ERR_BADPARAMETERif one parameter is incorrect,
PASTIX_ERR_OUTOFMEMORYif one allocation failed.

Definition at line 412 of file pastix_task_sopalin.c.

References pastix_data_s::bcsc, coeftabMemory, pastix_data_s::cpu_models, pastix_data_s::dir_local, pastix_data_s::dparm, DPARM_A_NORM, DPARM_EPSILON_MAGN_CTRL, DPARM_FACT_ENERGY, DPARM_FACT_FLOPS, DPARM_FACT_RLFLOPS, DPARM_FACT_THFLOPS, DPARM_FACT_TIME, DPARM_MEM_FR, DPARM_MEM_LR, solver_matrix_s::flttype, pastix_data_s::gpu_models, pastix_data_s::inter_node_comm, pastix_data_s::inter_node_procnum, pastix_data_s::iparm, IPARM_FACTORIZATION, IPARM_STATIC_PIVOTING, IPARM_TRACE, IPARM_VERBOSE, kernelsTraceStart(), kernelsTraceStop(), PASTIX_ERR_BADPARAMETER, pastix_fopenw(), pastix_gendirectories(), pastix_int_t, PastixTraceNumfact, PastixVerboseNot, solver_matrix_s::restore, solverBackupExit(), solverBackupInit(), solverBackupRestore(), solverDraw(), pastix_data_s::solvmatr, and pastix_data_s::steps.

Referenced by pastix_task_numfact().