22 #include <parsec/data_distribution.h>
23 #include <parsec/private_mempool.h>
24 #include <parsec/arena.h>
25 #include <parsec/data_dist/matrix/matrix.h>
28 #include "sopalin/sopalin_data.h"
29 #include "dpotrf_sp1dplus.h"
30 #include "dpotrf_sp2d.h"
81 sopalin_data_t *sopalin_data )
86 lwork = sopalin_data->solvmtx->gemmmax;
88 (sopalin_data->solvmtx->lowrank.ilu_lvl < INT_MAX) )
90 lwork = pastix_imax( lwork, 2 * sopalin_data->solvmtx->blokmax );
97 lwork *
sizeof(
double) );
100 sizeof(
double), PARSEC_ARENA_ALIGNMENT_SSE,
101 parsec_datatype_double_t );
103 #if defined(PASTIX_GENERATE_MODEL)
131 parsec_taskpool_free( taskpool );
176 sopalin_data_t *sopalin_data )
188 parsec_context_start( parsec );
189 parsec_context_wait( parsec );
244 sopalin_data_t *sopalin_data )
249 lwork = sopalin_data->solvmtx->gemmmax;
251 (sopalin_data->solvmtx->lowrank.ilu_lvl < INT_MAX) )
253 lwork = pastix_imax( lwork, 2 * sopalin_data->solvmtx->blokmax );
258 parsec_dpotrf_sp2d->_g_p_work = (parsec_memory_pool_t*)malloc(
sizeof(parsec_memory_pool_t));
260 lwork *
sizeof(
double) );
263 sizeof(
double), PARSEC_ARENA_ALIGNMENT_SSE,
264 parsec_datatype_double_t );
266 #if defined(PASTIX_GENERATE_MODEL)
294 parsec_taskpool_free( taskpool );
339 sopalin_data_t *sopalin_data )
351 parsec_context_start( parsec );
352 parsec_context_wait( parsec );
392 sopalin_data_t *sopalin_data )
395 parsec_context_t *ctx;
400 if (pastix_data->
parsec == NULL) {
404 ctx = pastix_data->
parsec;
406 if ( sdesc == NULL ) {
412 sdesc = sopalin_data->
solvmtx->parsec_desc;
BEGIN_C_DECLS typedef int pastix_int_t
void parsec_dpotrf_sp2d_Destruct(parsec_taskpool_t *taskpool)
Free the data structure associated to a taskpool created with parsec_dpotrf_sp2d_New().
int parsec_dpotrf_sp2d(parsec_context_t *parsec, parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Perform a sparse Cholesky factorization with 1D and 2D kernels.
void parsec_dpotrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse Cholesky factorization using PaRSEC runtime.
int parsec_dpotrf_sp1dplus(parsec_context_t *parsec, parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Perform a sparse Cholesky factorization with 1D kernels.
parsec_taskpool_t * parsec_dpotrf_sp2d_New(parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Generate the PaRSEC taskpoolr object for the Cholesky factorization with 1D and 2D kernels.
parsec_taskpool_t * parsec_dpotrf_sp1dplus_New(parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Generate the PaRSEC taskpool object for the Cholesky factorization with 1D kernels.
void parsec_dpotrf_sp1dplus_Destruct(parsec_taskpool_t *taskpool)
Free the data structure associated to a taskpool created with parsec_dpotrf_sp1dplus_New().
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.
PaRSEC descriptor stucture for the sparse matrix.
Main PaStiX data structure.