PaStiX Handbook  6.3.2
pastix_parsec.h
Go to the documentation of this file.
1 /**
2  *
3  * @file pastix_parsec.h
4  *
5  * PaRSEC support for the numerical factorization and solve of PaStiX.
6  *
7  * @copyright 2016-2023 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
8  * Univ. Bordeaux. All rights reserved.
9  *
10  * @version 6.3.2
11  * @author Mathieu Faverge
12  * @author Pierre Ramet
13  * @date 2023-07-21
14  *
15  * @addtogroup pastix_parsec
16  * @{
17  * This module describes the functionnality provided by the runtime system
18  * PaRSEC for the numerical factorization and solve.
19  *
20  **/
21 #ifndef _pastix_parsec_h_
22 #define _pastix_parsec_h_
23 
24 #include <parsec.h>
25 #include <parsec/data_distribution.h>
26 
27 /**
28  * @name PaRSEC sparse matrix descriptor
29  * @{
30  */
31 
32 /**
33  * @brief PaRSEC descriptor stucture for the sparse matrix.
34  */
36  parsec_data_collection_t super; /**< Every PaRSEC descriptors must inherit from parsec_desc_t */
37  int typesze; /**< Arithmetic size */
38  pastix_mtxtype_t mtxtype; /**< Matrix structure: PastixGeneral, PastixSymmetric or PastixHermitian. */
39  SolverMatrix *solvmtx; /**< Solver matrix structure that describes the problem and stores the original data */
40  void **gpu_blocktab; /**< Pointer to GPU arrays that contains frownum,lrownum of each block for Fermi */
42 
44  int typesize, pastix_mtxtype_t mtxtype,
45  int nodes, int myrank );
47 
48 /**
49  * @}
50  * @name PaRSEC control function
51  * @{
52  *
53  */
55  int *argc, char **argv[],
56  const int *bindtab );
58 
59 /**
60  * @}
61  */
62 #endif /* _pastix_parsec_h_ */
63 
64 /**
65  *@}
66  */
spm_mtxtype_t pastix_mtxtype_t
Matrix symmetry type property.
Definition: api.h:457
BEGIN_C_DECLS int pastix(pastix_data_t **pastix_data, PASTIX_Comm pastix_comm, pastix_int_t n, pastix_int_t *colptr, pastix_int_t *rowptr, void *values, 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.
Definition: pastix.c:103
parsec_data_collection_t super
Definition: pastix_parsec.h:36
pastix_mtxtype_t mtxtype
Definition: pastix_parsec.h:38
void parsec_sparse_matrix_init(SolverMatrix *solvmtx, int typesize, pastix_mtxtype_t mtxtype, int nodes, int myrank)
Generate the PaRSEC descriptor of the sparse matrix.
void pastix_parsec_init(pastix_data_t *pastix, int *argc, char **argv[], const int *bindtab)
Startup the PaRSEC runtime system.
Definition: parsec.c:61
void pastix_parsec_finalize(pastix_data_t *pastix)
Finalize the PaRSEC runtime system.
Definition: parsec.c:178
struct parsec_sparse_matrix_desc_s parsec_sparse_matrix_desc_t
PaRSEC descriptor stucture for the sparse matrix.
void parsec_sparse_matrix_destroy(parsec_sparse_matrix_desc_t *desc)
Free the PaRSEC descriptor of the sparse matrix.
PaRSEC descriptor stucture for the sparse matrix.
Definition: pastix_parsec.h:35
Main PaStiX data structure.
Definition: pastixdata.h:67
Solver column block structure.
Definition: solver.h:200