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 "cgetrf_sp1dplus.h"
30#include "cgetrf_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 );
101 parsec_datatype_complex_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_cgetrf_sp2d->_g_p_work = (parsec_memory_pool_t*)malloc(
sizeof(parsec_memory_pool_t));
263 parsec_datatype_complex_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
float _Complex pastix_complex32_t
parsec_taskpool_t * parsec_cgetrf_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_cgetrf_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.
int parsec_cgetrf_sp1dplus(parsec_context_t *parsec, parsec_sparse_matrix_desc_t *A, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization with 1D kernels.
void parsec_cgetrf_sp1dplus_Destruct(parsec_taskpool_t *taskpool)
Free the data structure associated to a taskpool created with parsec_cgetrf_sp1dplus_New().
parsec_taskpool_t * parsec_cgetrf_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_cgetrf_sp2d_Destruct(parsec_taskpool_t *taskpool)
Free the data structure associated to a taskpool created with parsec_cgetrf_sp2d_New().
void parsec_cgetrf(pastix_data_t *pastix_data, sopalin_data_t *sopalin_data)
Perform a sparse LU factorization using PaRSEC runtime.
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.