PaStiX Handbook
6.3.1
|
This group describes parameters and constants to control the solver. More...
Typedefs | |
typedef BEGIN_C_DECLS enum pastix_iparm_e | pastix_iparm_t |
Integer parameters. | |
typedef enum pastix_dparm_e | pastix_dparm_t |
Float parameters. | |
typedef enum pastix_task_e | pastix_task_t |
Main steps for the pastix() interface. More... | |
typedef enum pastix_trace_e | pastix_trace_t |
Steps to trace. | |
typedef enum pastix_verbose_e | pastix_verbose_t |
Verbose modes. | |
typedef enum pastix_io_e | pastix_io_t |
IO strategy for graph and ordering. | |
typedef enum pastix_fact_mode_e | pastix_fact_mode_t |
Factorization Schur modes. More... | |
typedef enum pastix_solv_mode_e | pastix_solv_mode_t |
Solve Schur modes. More... | |
typedef enum pastix_refine_e | pastix_refine_t |
Iterative refinement algorithms. | |
typedef enum pastix_factotype_e | pastix_factotype_t |
Factorization algorithms available for IPARM_FACTORIZATION parameter. | |
typedef enum pastix_factolookside_e | pastix_factolookside_t |
Factorization looking side available for IPARM_FACTO_LOOK_SIDE parameter. | |
typedef enum pastix_scheduler_e | pastix_scheduler_t |
Scheduler. | |
typedef enum pastix_ordering_e | pastix_ordering_t |
Ordering strategy. | |
typedef enum pastix_mpithreadmode_e | pastix_mpithreadmode_t |
MPI thread mode. | |
typedef enum pastix_error_e | pastix_error_t |
Error codes. | |
typedef enum pastix_compress_when_e | pastix_compress_when_t |
Compression strategy available for IPARM_COMPRESS_WHEN parameter. | |
typedef enum pastix_compress_method_e | pastix_compress_method_t |
Compression method available for IPARM_COMPRESS_METHOD parameter. | |
typedef enum pastix_compress_ortho_e | pastix_compress_ortho_t |
Orthogonalization method available for IPARM_COMPRESS_ORTHO parameter. | |
typedef enum pastix_split_e | pastix_split_t |
Splitting strategy available for IPARM_SPLITTING_STRATEGY parameter. | |
Functions | |
void | pastix_gendirectories (pastix_data_t *pastix_data) |
Generate a unique temporary directory to store output files. More... | |
char * | pastix_fname (const char *dirname, const char *filename) |
Generate the full filename within local or global directory. More... | |
FILE * | pastix_fopenw (const char *dirname, const char *filename, const char *mode) |
Open a file in the unique directory of the pastix instance. More... | |
FILE * | pastix_fopen (const char *filename) |
Open a file in the current directory in read only mode. More... | |
void | pastixWelcome (const pastix_data_t *pastix) |
Print information about the solver configuration. More... | |
void | pastixSummary (const pastix_data_t *pastix) |
Print summary information. More... | |
void | pastixInitParam (pastix_int_t *iparm, double *dparm) |
Initialize the iparm and dparm arrays to their default values. More... | |
void | pastixInitWithAffinity (pastix_data_t **pastix_data, PASTIX_Comm pastix_comm, pastix_int_t *iparm, double *dparm, const int *bindtab) |
Initialize the solver instance with a bintab array to specify the thread binding. More... | |
void | pastixInit (pastix_data_t **pastix_data, PASTIX_Comm pastix_comm, pastix_int_t *iparm, double *dparm) |
Initialize the solver instance. More... | |
void | pastixFinalize (pastix_data_t **pastix_data) |
Finalize the solver instance. More... | |
void | pastixDumpParam (const pastix_data_t *pastix_data) |
Dump the iparm and dparm parameters in a CSV file. More... | |
int | pastixCheckParam (const pastix_int_t *iparm, const double *dparm) |
Check the values of iparm and dparm arrays. More... | |
pastix_model_t * | pastixModelsNew () |
Create a new model data structure and initialize the values to their default. More... | |
void | pastixModelsFree (pastix_model_t *model) |
Free a model data structure. More... | |
void | pastixModelsLoad (pastix_data_t *pastix_data) |
Load the performance models that will be used by the solver. More... | |
int | pastix (pastix_data_t **pastix_data_ptr, PASTIX_Comm pastix_comm, pastix_int_t n, pastix_int_t *colptr, pastix_int_t *row, void *avals, pastix_int_t *perm, pastix_int_t *invp, void *b, pastix_int_t nrhs, pastix_int_t *iparm, double *dparm) |
Main function for compatibility with former releases. More... | |
Constants compatible with CBLAS & LAPACK & PLASMA | |
The naming and numbering of the following constants is consistent with:
| |
enum | pastix_layout_e { PastixRowMajor = 101 , PastixColMajor = 102 } |
Direction of the matrix storage. More... | |
enum | pastix_trans_e { PastixNoTrans = 111 , PastixTrans = 112 , PastixConjTrans = 113 } |
Transpostion. More... | |
enum | pastix_uplo_e { PastixUpper = 121 , PastixLower = 122 , PastixUpperLower = 123 } |
Upper/Lower part. More... | |
enum | pastix_coefside_e { PastixLCoef = 0 , PastixUCoef = 1 , PastixLUCoef = 2 } |
Data blocks used in the kernel. More... | |
enum | pastix_diag_e { PastixNonUnit = 131 , PastixUnit = 132 } |
Diagonal. More... | |
enum | pastix_side_e { PastixLeft = 141 , PastixRight = 142 } |
Side of the operation. More... | |
enum | pastix_normtype_e { PastixOneNorm = 171 , PastixFrobeniusNorm = 174 , PastixInfNorm = 175 , PastixMaxNorm = 177 } |
Norms. More... | |
enum | pastix_dir_e { PastixDirForward = 391 , PastixDirBackward = 392 } |
Direction. More... | |
typedef enum pastix_layout_e | pastix_layout_t |
Direction of the matrix storage. | |
typedef enum pastix_trans_e | pastix_trans_t |
Transpostion. | |
typedef spm_mtxtype_t | pastix_mtxtype_t |
Matrix symmetry type property. More... | |
typedef enum pastix_uplo_e | pastix_uplo_t |
Upper/Lower part. | |
typedef enum pastix_coefside_e | pastix_coefside_t |
Data blocks used in the kernel. More... | |
typedef enum pastix_diag_e | pastix_diag_t |
Diagonal. | |
typedef enum pastix_side_e | pastix_side_t |
Side of the operation. | |
typedef enum pastix_normtype_e | pastix_normtype_t |
Norms. | |
typedef enum pastix_dir_e | pastix_dir_t |
Direction. | |
#define | PastixGeneral SpmGeneral |
#define | PastixSymmetric SpmSymmetric |
#define | PastixHermitian SpmHermitian |
typedef spm_coeftype_t | pastix_coeftype_t |
Arithmetic types. More... | |
This group describes parameters and constants to control the solver.
typedef enum pastix_task_e pastix_task_t |
typedef enum pastix_fact_mode_e pastix_fact_mode_t |
Factorization Schur modes.
Describe which part of the matrix is factorized or not
typedef enum pastix_solv_mode_e pastix_solv_mode_t |
Solve Schur modes.
Describe which part of the solve is applied with the matrix
\[ A = \left( \begin{array}{cc} L_{11}U_{11} & U_{12} \\ L_{21} & S_{22} \end{array} \right) \]
For the lower part (and symmetrically for upper part):
\[ L_{11} * x_{11} = b_{11} \]
\[ b_{22} = b_{22} - L_{21} * b_{11} \]
\[ S_{22} * x_{22} = b_{22} \]
if S22 has been previously factorized.PastixSolvModeLocal applies only the step 1. PastixSolvModeInterface applies steps 1 and 2. PastixSolvModeSchur applies all steps.
typedef spm_coeftype_t pastix_coeftype_t |
typedef spm_mtxtype_t pastix_mtxtype_t |
typedef enum pastix_coefside_e pastix_coefside_t |
Data blocks used in the kernel.
enum pastix_iparm_e |
Integer parameters.
Enumerator | |
---|---|
IPARM_VERBOSE | Verbose mode (
|
IPARM_IO_STRATEGY | IO strategy (
|
IPARM_NNZEROS | Number of nonzero entries in the factorized matrix Default: - OUT |
IPARM_NNZEROS_BLOCK_LOCAL | Number of nonzero entries in the local block factorized matrix Default: - OUT |
IPARM_ALLOCATED_TERMS | Maximum memory allocated for matrix terms Default: - OUT |
IPARM_PRODUCE_STATS | Compute some statistiques (such as precision error) Default: 0 IN |
IPARM_TRACE | Bitmask of the steps to trace Default: PastixTraceNot IN |
IPARM_MC64 | MC64 operation Default: 0 IN |
IPARM_ORDERING | Choose ordering Default: PastixOrderScotch IN |
IPARM_ORDERING_DEFAULT | Use default ordering parameters with Scotch or Metis Default: 1 IN |
IPARM_SCOTCH_MT | Ordering multi-threaded (see Scotch Manual) Default: 1 (if available) IN |
IPARM_SCOTCH_SWITCH_LEVEL | Ordering switch level (see Scotch Manual) Default: 120 IN |
IPARM_SCOTCH_CMIN | Ordering cmin parameter (see Scotch Manual) Default: 0 IN |
IPARM_SCOTCH_CMAX | Ordering cmax parameter (see Scotch Manual) Default: 100000 IN |
IPARM_SCOTCH_FRAT | Ordering frat parameter (see Scotch Manual) Default: 8 IN |
IPARM_METIS_CTYPE | Metis parameters (see Metis Manual) Default: METIS_CTYPE_SHEM IN |
IPARM_METIS_RTYPE | Metis parameters (see Metis Manual) Default: METIS_RTYPE_SEP1SIDED IN |
IPARM_METIS_NO2HOP | Metis parameters (see Metis Manual) Default: 0 IN |
IPARM_METIS_NSEPS | Metis parameters (see Metis Manual) Default: 1 IN |
IPARM_METIS_NITER | Metis parameters (see Metis Manual) Default: 10 IN |
IPARM_METIS_UFACTOR | Metis parameters (see Metis Manual) Default: 200 IN |
IPARM_METIS_COMPRESS | Metis parameters (see Metis Manual) Default: 1 IN |
IPARM_METIS_CCORDER | Metis parameters (see Metis Manual) Default: 0 IN |
IPARM_METIS_PFACTOR | Metis parameters (see Metis Manual) Default: 0 IN |
IPARM_METIS_SEED | Metis parameters (see Metis Manual) Default: 3452 IN |
IPARM_METIS_DBGLVL | Metis parameters (see Metis Manual) Default: 0 IN |
IPARM_AMALGAMATION_LVLBLAS | Amalgamation level Default: 5 IN |
IPARM_AMALGAMATION_LVLCBLK | Amalgamation level Default: 5 IN |
IPARM_REORDERING_SPLIT | Reordering split level Default: 0 IN |
IPARM_REORDERING_STOP | Reordering stop criterion Default: PASTIX_INT_MAX IN |
IPARM_SPLITTING_STRATEGY | Strategy used to split supernodes Default: PastixSplitKway IN |
IPARM_SPLITTING_LEVELS_PROJECTIONS | Levels of projections Default: 0 IN |
IPARM_SPLITTING_LEVELS_KWAY | Levels of kway Default: PASTIX_INT_MAX IN |
IPARM_SPLITTING_PROJECTIONS_DEPTH | Number of level used for projections Default: 3 IN |
IPARM_SPLITTING_PROJECTIONS_DISTANCE | Distance used for projections Default: 3 IN |
IPARM_SPLITTING_PROJECTIONS_WIDTH | Width used for projections Default: 1 IN |
IPARM_MIN_BLOCKSIZE | Minimum block size Default: 160 IN |
IPARM_MAX_BLOCKSIZE | Maximum block size Default: 320 IN |
IPARM_TASKS2D_LEVEL | 2D Distribution level (-1 for autolevel, 0 for 1D) Default: -1 IN |
IPARM_TASKS2D_WIDTH | Minimal width for 2D tasks with autolevel Default: IPARM_MIN_BLOCKSIZE IN |
IPARM_ALLCAND | Allow all threads to be candidate in the proportional mapping Default: 0 IN |
IPARM_INCOMPLETE | Incomplete factorization Default: 0 IN |
IPARM_LEVEL_OF_FILL | Level of fill for incomplete factorization Default: 0 IN |
IPARM_FACTORIZATION | Factorization mode Default: PastixFactLU IN |
IPARM_FACTO_LOOK_SIDE | Factorization looking variant algorithm Default: PastixFactRightLooking IN |
IPARM_STATIC_PIVOTING | Static pivoting Default: - OUT |
IPARM_FREE_CSCUSER | Free user CSC Default: 0 IN |
IPARM_SCHUR_FACT_MODE | Specify if the Schur is factorized (
|
IPARM_TRANSPOSE_SOLVE | Solve A^t x = b (to avoid CSR/CSC conversion for instance) Default: PastixNoTrans IN |
IPARM_SCHUR_SOLV_MODE | Specify the solve parts to apply (
|
IPARM_APPLYPERM_WS | Enable/disable extra workspace for a thread-safe swap Default: 1 IN |
IPARM_REFINEMENT | Refinement mode Default: PastixRefineGMRES IN |
IPARM_NBITER | Number of iterations performed in refinement Default: - OUT |
IPARM_ITERMAX | Maximum iteration number for refinement Default: 250 IN |
IPARM_GMRES_IM | GMRES restart parameter Default: 25 IN |
IPARM_SCHEDULER | Scheduler mode Default: PastixSchedDynamic IN |
IPARM_THREAD_NBR | Number of threads per process (-1 for auto detect) Default: -1 IN |
IPARM_SOCKET_NBR | Number of sockets for papi energy measure (default: 0) Default: 0 IN |
IPARM_AUTOSPLIT_COMM | Automaticaly split communicator to have one MPI task by node Default: 0 IN |
IPARM_GPU_NBR | Number of GPU devices Default: 0 IN |
IPARM_GPU_MEMORY_PERCENTAGE | Maximum percentage of the GPU memory used by the solver Default: 95 IN |
IPARM_GPU_MEMORY_BLOCK_SIZE | Size of GPU memory pages (for PaRSEC runtime) Default: 32 * 1024 IN |
IPARM_GLOBAL_ALLOCATION | Enables/Disables the global allocation of the coeftab matrix Default: 0 IN |
IPARM_COMPRESS_MIN_WIDTH | Minimum width to compress a supernode Default: 128 IN |
IPARM_COMPRESS_MIN_HEIGHT | Minimum height to compress an off-diagonal block Default: 20 IN |
IPARM_COMPRESS_WHEN | When to compress a supernode Default: PastixCompressNever IN |
IPARM_COMPRESS_METHOD | Compression method (See pastix_compress_method_t) Default: PastixCompressMethodPQRCP IN |
IPARM_COMPRESS_ORTHO | Orthogonalization method Default: PastixCompressOrthoCGS IN |
IPARM_COMPRESS_RELTOL | Enable/Disable relative tolerance Default: 0 IN |
IPARM_COMPRESS_PRESELECT | Enable/Disable compression of preselected blocks Default: 1 IN |
IPARM_COMPRESS_ILUK | Set the ILU(k) level of preselection (-2 for auto-level) Default: -2 IN |
IPARM_MIXED | Enables/Disables mixed-precision Default: 0 IN |
IPARM_FTZ | Enables/Disables Flush-To-Zero for denormal numbers Default: 0 IN |
IPARM_MPI_THREAD_LEVEL | MPI thread level support Default: PastixMpiNone OUT |
IPARM_MODIFY_PARAMETER | Indicate if parameters have been set by user Default: 1 IN |
IPARM_START_TASK | Indicate the first step to execute Default: PastixTaskOrdering IN |
IPARM_END_TASK | Indicate the last step to execute Default: PastixTaskClean IN |
IPARM_FLOAT | Indicate the arithmetics Default: PastixDouble IN |
IPARM_MTX_TYPE | Indicate matrix format Default: -1 IN |
IPARM_DOF_NBR | Degree of freedom per node Default: 1 IN |
enum pastix_dparm_e |
Float parameters.
enum pastix_task_e |
Main steps for the pastix() interface.
Those enums are used of the IPARM_START_TASK and IPARM_END_TASK parameters that configure the pastix() call.
enum pastix_trace_e |
enum pastix_verbose_e |
enum pastix_io_e |
IO strategy for graph and ordering.
enum pastix_fact_mode_e |
enum pastix_solv_mode_e |
Solve Schur modes.
Describe which part of the solve is applied with the matrix
\[ A = \left( \begin{array}{cc} L_{11}U_{11} & U_{12} \\ L_{21} & S_{22} \end{array} \right) \]
For the lower part (and symmetrically for upper part):
\[ L_{11} * x_{11} = b_{11} \]
\[ b_{22} = b_{22} - L_{21} * b_{11} \]
\[ S_{22} * x_{22} = b_{22} \]
if S22 has been previously factorized.PastixSolvModeLocal applies only the step 1. PastixSolvModeInterface applies steps 1 and 2. PastixSolvModeSchur applies all steps.
enum pastix_refine_e |
enum pastix_factotype_e |
Factorization algorithms available for IPARM_FACTORIZATION parameter.
enum pastix_scheduler_e |
enum pastix_ordering_e |
enum pastix_error_e |
Error codes.
Compression strategy available for IPARM_COMPRESS_WHEN parameter.
Compression method available for IPARM_COMPRESS_METHOD parameter.
Orthogonalization method available for IPARM_COMPRESS_ORTHO parameter.
enum pastix_split_e |
enum pastix_layout_e |
enum pastix_trans_e |
enum pastix_uplo_e |
enum pastix_coefside_e |
Data blocks used in the kernel.
Enumerator | |
---|---|
PastixLCoef | Coefficients of the lower triangular L are used |
PastixUCoef | Coefficients of the upper triangular U are used |
PastixLUCoef | Coefficients of the upper/lower triangular U/L are used |
enum pastix_diag_e |
enum pastix_side_e |
enum pastix_normtype_e |
enum pastix_dir_e |
void pastix_gendirectories | ( | pastix_data_t * | pastix_data | ) |
Generate a unique temporary directory to store output files.
[in,out] | pastix_data | On entry, the pastix_data structure associated to the pastix instance. On exit, if not already initialized, pastix_data->dir_global and pastix_data->dir_local are initialized. |
Definition at line 76 of file api.c.
References pastix_data_s::dir_global, pastix_data_s::dir_local, pastix_data_s::inter_node_comm, pastix_data_s::procnbr, and pastix_data_s::procnum.
Referenced by blendCtrlInit(), coeftab_cdump(), coeftab_ddump(), coeftab_sdump(), coeftab_zdump(), coeftabInit(), graphSave(), orderDraw(), pastix_starpu_init(), pastix_subtask_blend(), pastix_subtask_sopalin(), pastix_subtask_symbfact(), pastixOrderSave(), and pastixSymbolDrawMap().
char* pastix_fname | ( | const char * | dirname, |
const char * | filename | ||
) |
Generate the full filename within local or global directory.
[in] | dirname | The pointer to the directory string associated to the instance. It must have been initialized before calling. |
[in] | filename | The filename to create in the unique directory. |
Definition at line 199 of file api.c.
Referenced by graphSave(), and pastix_fopenw().
FILE* pastix_fopenw | ( | const char * | dirname, |
const char * | filename, | ||
const char * | mode | ||
) |
Open a file in the unique directory of the pastix instance.
[in] | dirname | The pointer to the directory string associated to the instance. It must have been initialized before calling. |
[in] | filename | The filename to create in the unique directory. |
[in] | mode | Opening mode of the file as described by the fopen() function. |
Definition at line 242 of file api.c.
References pastix_fname().
Referenced by candSave(), coeftab_cdump(), coeftab_ddump(), coeftab_sdump(), coeftab_zdump(), cpucblk_cdumpfile(), cpucblk_ddumpfile(), cpucblk_sdumpfile(), cpucblk_zdumpfile(), orderDraw(), pastix_subtask_blend(), pastix_subtask_sopalin(), pastix_subtask_symbfact(), pastixDumpParam(), pastixOrderSave(), pastixSymbolDrawMap(), simu_printBlockCtrbNbr(), solverComMatrixGather(), and solverDraw().
FILE* pastix_fopen | ( | const char * | filename | ) |
Open a file in the current directory in read only mode.
[in] | filename | The filename of the file to open. |
Definition at line 289 of file api.c.
Referenced by modelsRead(), pastix_subtask_symbfact(), and pastixOrderLoad().
void pastixWelcome | ( | const pastix_data_t * | pastix | ) |
Print information about the solver configuration.
[in] | pastix | The main data structure. |
Definition at line 318 of file api.c.
References compmeth_shnames, DPARM_COMPRESS_MIN_RATIO, DPARM_COMPRESS_TOLERANCE, IPARM_COMPRESS_METHOD, IPARM_COMPRESS_MIN_HEIGHT, IPARM_COMPRESS_MIN_WIDTH, IPARM_COMPRESS_ORTHO, IPARM_COMPRESS_RELTOL, IPARM_COMPRESS_WHEN, IPARM_GPU_NBR, IPARM_MAX_BLOCKSIZE, IPARM_MIN_BLOCKSIZE, IPARM_MPI_THREAD_LEVEL, IPARM_SCHEDULER, IPARM_SPLITTING_LEVELS_KWAY, IPARM_SPLITTING_LEVELS_PROJECTIONS, IPARM_SPLITTING_PROJECTIONS_DEPTH, IPARM_SPLITTING_PROJECTIONS_DISTANCE, IPARM_SPLITTING_PROJECTIONS_WIDTH, IPARM_SPLITTING_STRATEGY, IPARM_TASKS2D_LEVEL, IPARM_TASKS2D_WIDTH, IPARM_THREAD_NBR, pastix(), PastixCompressNever, PastixCompressOrthoCGS, PastixCompressOrthoQR, PastixCompressWhenBegin, PastixSchedDynamic, PastixSplitKway, and PastixSplitNot.
Referenced by pastixInitWithAffinity().
void pastixSummary | ( | const pastix_data_t * | pastix | ) |
Print summary information.
[in] | pastix | The main data structure. |
Definition at line 386 of file api.c.
References pastix().
Referenced by pastixFinalize().
void pastixInitParam | ( | pastix_int_t * | iparm, |
double * | dparm | ||
) |
Initialize the iparm and dparm arrays to their default values.
This is performed only if iparm[IPARM_MODIFY_PARAMETER] is set to 0.
[in,out] | iparm | The integer array of parameters to initialize. |
[in,out] | dparm | The floating point array of parameters to initialize. |
Definition at line 411 of file api.c.
Referenced by pastix(), and pastixInitWithAffinity().
void pastixInitWithAffinity | ( | pastix_data_t ** | pastix_data, |
PASTIX_Comm | pastix_comm, | ||
pastix_int_t * | iparm, | ||
double * | dparm, | ||
const int * | bindtab | ||
) |
Initialize the solver instance with a bintab array to specify the thread binding.
[in,out] | pastix_data | The main data structure. |
[in] | pastix_comm | The MPI communicator. |
[in,out] | iparm | The integer array of parameters to initialize. |
[in,out] | dparm | The floating point array of parameters to initialize. |
[in] | bindtab | Integer array of size iparm[IPARM_THREAD_NBR] that will specify the thread binding. NULL if let to the system. Each thread i will be bound to to the core bindtab[i] if bindtab[i] >= 0, or not bound if bindtab[i] < 0. If other libraries of the main application are spawning their own threads too (eg. OpenMP), we strongly recommend not to bind the main thread, and let bindtab[0] = -1 to avoid binding impact on other libraries. |
Definition at line 700 of file api.c.
References apiInitMPI(), IPARM_AUTOSPLIT_COMM, IPARM_FTZ, IPARM_MODIFY_PARAMETER, IPARM_MPI_THREAD_LEVEL, IPARM_SCHEDULER, IPARM_SOCKET_NBR, IPARM_THREAD_NBR, IPARM_TRACE, IPARM_VERBOSE, kernelsTraceInit(), pastix(), pastix_parsec_init(), pastix_starpu_init(), pastixInitParam(), pastixModelsLoad(), PastixMpiNone, PastixMpiThreadFunneled, PastixMpiThreadMultiple, PastixMpiThreadSerialized, PastixMpiThreadSingle, PastixSchedDynamic, PastixSchedParsec, PastixSchedStarPU, PastixVerboseNot, and pastixWelcome().
Referenced by pastixInit().
void pastixInit | ( | pastix_data_t ** | pastix_data, |
PASTIX_Comm | pastix_comm, | ||
pastix_int_t * | iparm, | ||
double * | dparm | ||
) |
Initialize the solver instance.
[in,out] | pastix_data | The main data structure. |
[in] | pastix_comm | The MPI communicator. |
[in,out] | iparm | The integer array of parameters to initialize. |
[in,out] | dparm | The floating point array of parameters to initialize. |
Definition at line 896 of file api.c.
References pastixInitWithAffinity().
Referenced by pastix().
void pastixFinalize | ( | pastix_data_t ** | pastix_data | ) |
Finalize the solver instance.
[in,out] | pastix_data | The main data structure. |
Definition at line 919 of file api.c.
References bcscExit(), graphExit(), kernelsTraceFinalize(), pastix(), pastix_parsec_finalize(), pastix_starpu_finalize(), pastixModelsFree(), pastixOrderExit(), pastixSummary(), pastixSymbolExit(), and solverExit().
Referenced by pastix().
void pastixDumpParam | ( | const pastix_data_t * | pastix_data | ) |
Dump the iparm and dparm parameters in a CSV file.
[in,out] | pastix_data | The main data structure. |
Definition at line 1031 of file api.c.
References pastix_data_s::dir_global, pastix_data_s::inter_node_procnum, and pastix_fopenw().
int pastixCheckParam | ( | const pastix_int_t * | iparm, |
const double * | dparm | ||
) |
pastix_model_t* pastixModelsNew | ( | ) |
Create a new model data structure and initialize the values to their default.
Definition at line 490 of file models.c.
Referenced by pastixModelsLoad().
void pastixModelsFree | ( | pastix_model_t * | model | ) |
Free a model data structure.
[in,out] | model | The model structure to free. |
Definition at line 520 of file models.c.
Referenced by pastixFinalize(), and pastixModelsLoad().
void pastixModelsLoad | ( | pastix_data_t * | pastix_data | ) |
Load the performance models that will be used by the solver.
This function initializes the model coefficients with the values stored in the files defined by the environment variables PASTIX_MODELS_CPU and PASTIX_MODELS_GPU. If they are not defined, models are initialized with the embedded default models.
[in,out] | pastix_data | The pastix_data structure in which to store the CPU and GPU models. |
Definition at line 549 of file models.c.
References pastix_data_s::cpu_models, pastix_data_s::gpu_models, modelsInitDefaultCPU(), modelsInitDefaultGPU(), modelsRead(), pastixModelsFree(), and pastixModelsNew().
Referenced by pastixInitWithAffinity().
int pastix | ( | pastix_data_t ** | pastix_data_ptr, |
PASTIX_Comm | pastix_comm, | ||
pastix_int_t | n, | ||
pastix_int_t * | colptr, | ||
pastix_int_t * | row, | ||
void * | avals, | ||
pastix_int_t * | perm, | ||
pastix_int_t * | invp, | ||
void * | b, | ||
pastix_int_t | nrhs, | ||
pastix_int_t * | iparm, | ||
double * | dparm | ||
) |
Main function for compatibility with former releases.
[in,out] | pastix_data_ptr | The pastix data structure of the solver to store the state of the solver at every call. |
[in] | pastix_comm | The MPI communicator to use for the distributed solver. |
[in] | n | The size of the sparse matrix system to solve. |
[in,out] | colptr | The pointer to the column index of the sparse matrix in the CSC format. On exit, the base value of the array might have changed, and/or the pointer might have been freed if IPARM_FREE_CSCUSER is set, and the factorization step is performed. |
[in,out] | row | The pointer to the row array of the sparse matrix in the CSC format. On exit, the base value of the array might have changed, and/or the pointer might have been freed if IPARM_FREE_CSCUSER is set, and the factorization step is performed. |
[in,out] | avals | The pointer to the values array of the sparse matrix in the CSC format. On exit, the pointer might have been freed if IPARM_FREE_CSCUSER is set, and the factorization step is performed. |
[in,out] | perm | The pointer to the permutation array. On entry: the pointer might be allocated to store the generated permutation on exit, or to provide the user permutation. On exit, the permutation used by the solver is returned if perm is not NULL. |
[in,out] | invp | The pointer to the inverse permutation array. On entry: the pointer might be allocated to store the generated inverse permutation on exit, or to provide the user permutation. On exit, the inverse permutation used by the solver is returned if invp is not NULL. |
[in,out] | b | Array of size n -by- nrhs On entry, contains the nrhs vectors of the problem. On exit, contains the nrhs solution vectors of the problem. |
[in] | nrhs | The number of right hand side in the problem. |
[in,out] | iparm | Array of size IPARM_SIZE On entry, contains all the integer parameters of the solver. On exit, the aray is updated with integer outputs of the solver. |
[in,out] | dparm | Array of size DPARM_SIZE On entry, contains all the double parameters of the solver. On exit, the aray is updated with double outputs of the solver. |
PASTIX_SUCCESS | on succesful exit, |
PASTIX_ERR_BADPARAMETER | on incorrect input parameter, |
PASTIX_ERR_NOTIMPLEMENTED | on variadic dofs, |
PASTIX_ERR_UNKNOWN | on undefined behaviors. |
Definition at line 103 of file pastix.c.
References pastix_data_s::csc, IPARM_DOF_NBR, IPARM_END_TASK, IPARM_FLOAT, IPARM_MODIFY_PARAMETER, IPARM_MTX_TYPE, IPARM_START_TASK, IPARM_VERBOSE, PASTIX_ERR_BADPARAMETER, pastix_int_t, pastix_subtask_blend(), pastix_subtask_order(), pastix_subtask_symbfact(), PASTIX_SUCCESS, pastix_task_numfact(), pastixFinalize(), pastixInit(), pastixInitParam(), pastixOrderAlloc(), pastixOrderExit(), PastixTaskAnalyze, PastixTaskInit, PastixTaskNumfact, PastixTaskOrdering, PastixTaskSolve, PastixTaskSymbfact, PastixVerboseNo, pastix_order_s::peritab, pastix_order_s::permtab, and pastix_order_s::vertnbr.
Referenced by apiInitMPI(), pastix_parsec_finalize(), pastix_parsec_init(), pastix_starpu_finalize(), pastix_starpu_init(), pastixFinalize(), pastixInitWithAffinity(), pastixSummary(), and pastixWelcome().