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 "dgetrf_sp1dplus.h"
30 #include "dgetrf_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 );
175 sopalin_data_t *sopalin_data )
187 parsec_context_start( parsec );
188 parsec_context_wait( parsec );
243 sopalin_data_t *sopalin_data )
248 lwork = sopalin_data->solvmtx->gemmmax;
250 (sopalin_data->solvmtx->lowrank.ilu_lvl < INT_MAX) )
252 lwork = pastix_imax( lwork, 2 * sopalin_data->solvmtx->blokmax );
257 parsec_dgetrf_sp2d->_g_p_work = (parsec_memory_pool_t*)malloc(
sizeof(parsec_memory_pool_t));
259 lwork *
sizeof(
double) );
262 sizeof(
double), PARSEC_ARENA_ALIGNMENT_SSE,
263 parsec_datatype_double_t );
265 #if defined(PASTIX_GENERATE_MODEL)
293 parsec_taskpool_free( taskpool );
337 sopalin_data_t *sopalin_data )
349 parsec_context_start( parsec );
350 parsec_context_wait( parsec );
389 sopalin_data_t *sopalin_data )
392 parsec_context_t *ctx;
397 if (pastix_data->
parsec == NULL) {
401 ctx = pastix_data->
parsec;
403 if ( sdesc == NULL ) {
409 sdesc = sopalin_data->
solvmtx->parsec_desc;
BEGIN_C_DECLS typedef int pastix_int_t
void parsec_dgetrf_sp1dplus_Destruct(parsec_taskpool_t *taskpool)
Free the data structure associated to a taskpool created with parsec_dgetrf_sp1dplus_New().
void parsec_dgetrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization using PaRSEC runtime.
parsec_taskpool_t * parsec_dgetrf_sp2d_New(parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Generate the PaRSEC taskpoolr object for the LU factorization with 1D and 2D kernels.
int parsec_dgetrf_sp2d(parsec_context_t *parsec, parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization with 1D and 2D kernels.
void parsec_dgetrf_sp2d_Destruct(parsec_taskpool_t *taskpool)
Free the data structure associated to a taskpool created with parsec_dgetrf_sp2d_New().
int parsec_dgetrf_sp1dplus(parsec_context_t *parsec, parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization with 1D kernels.
parsec_taskpool_t * parsec_dgetrf_sp1dplus_New(parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Generate the PaRSEC taskpool object for the LU factorization with 1D kernels.
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.