PaStiX Handbook  6.2.1
StarPU support for the numerical factorization

Modules

 StarPU Cholesky factorization
 
 StarPU LU factorization
 
 StarPU LDL^t factorization
 
 StarPU LDL^h factorization
 
 StarPU extra LL^t factorization
 
 StarPU TRSM solve
 
 StarPU DIAG solve
 

Data Structures

struct  starpu_cblk_s
 Additional StarPU handlers for a column-block when using 2D kernels. More...
 
struct  starpu_sparse_matrix_desc_s
 StarPU descriptor stucture for the sparse matrix. More...
 
struct  starpu_dense_matrix_desc_s
 StarPU descriptor for the vectors linked to a given sparse matrix. More...
 
struct  measure_s
 
struct  starpu_profile_s
 Profiling data structure to register a codelet to profile. More...
 
struct  profile_data_s
 Base structure to all codelet arguments that include the profiling data. More...
 
struct  pastix_starpu_interface_s
 Interface data structure to register the pieces of data in StarPU. More...
 

Macros

#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define _GNU_SOURCE
 
#define TASK_SYNCHRONOUS
 
#define pastix_codelet(_codelet_)   _codelet_ TASK_SYNCHRONOUS
 
#define PASTIX_STARPU_INTERFACE_ID   pastix_starpu_interface_ops.interfaceid
 Alias to get the Interface id.
 

Typedefs

typedef struct starpu_conf starpu_conf_t
 
typedef struct starpu_cblk_s starpu_cblk_t
 Additional StarPU handlers for a column-block when using 2D kernels. More...
 
typedef struct starpu_sparse_matrix_desc_s starpu_sparse_matrix_desc_t
 StarPU descriptor stucture for the sparse matrix.
 
typedef struct starpu_dense_matrix_desc_s starpu_dense_matrix_desc_t
 StarPU descriptor for the vectors linked to a given sparse matrix.
 
typedef struct measure_s measure_t
 
typedef struct starpu_profile_s starpu_profile_t
 
typedef struct profile_data_s profile_data_t
 Base structure to all codelet arguments that include the profiling data.
 
typedef struct pastix_starpu_interface_s pastix_starpu_interface_t
 Interface data structure to register the pieces of data in StarPU.
 

Functions

static pastix_fixdbl_t fct_blok_sgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_sgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_sgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_sgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 
static pastix_fixdbl_t fct_blok_cgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_cgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_cgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_cgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 
static pastix_fixdbl_t fct_blok_zgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_zgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_zgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 
static pastix_fixdbl_t fct_blok_dgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_dgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_dgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_dgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 
static pastix_fixdbl_t fct_blok_sgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_sgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_sgetrfsp, 2)
 
void starpu_task_blok_sgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_cgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_cgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_cgetrfsp, 2)
 
void starpu_task_blok_cgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_zgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_zgetrfsp, 2)
 
void starpu_task_blok_zgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_dgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_dgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_dgetrfsp, 2)
 
void starpu_task_blok_dgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_chetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_chetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_chetrfsp, 1)
 
void starpu_task_blok_chetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_zhetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zhetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_zhetrfsp, 1)
 
void starpu_task_blok_zhetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_spotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_spotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_spotrfsp, 1)
 
void starpu_task_blok_spotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_cpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_cpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_cpotrfsp, 1)
 
void starpu_task_blok_cpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_zpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_zpotrfsp, 1)
 
void starpu_task_blok_zpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_dpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_dpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_dpotrfsp, 1)
 
void starpu_task_blok_dpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_cpxtrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_cpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_cpxtrfsp, 1)
 
void starpu_task_blok_cpxtrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_zpxtrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_zpxtrfsp, 1)
 
void starpu_task_blok_zpxtrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static void fct_blok_sscalo_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (blok_sscalo, 3)
 
void starpu_task_blok_sscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, SolverCblk *cblk, SolverBlok *blok, int prio)
 
static void fct_blok_cscalo_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (blok_cscalo, 3)
 
void starpu_task_blok_cscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, SolverCblk *cblk, SolverBlok *blok, int prio)
 
static void fct_blok_zscalo_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (blok_zscalo, 3)
 
void starpu_task_blok_zscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, SolverCblk *cblk, SolverBlok *blok, int prio)
 
static void fct_blok_dscalo_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (blok_dscalo, 3)
 
void starpu_task_blok_dscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, SolverCblk *cblk, SolverBlok *blok, int prio)
 
static pastix_fixdbl_t fct_blok_ssytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_ssytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_ssytrfsp, 1)
 
void starpu_task_blok_ssytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_csytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_csytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_csytrfsp, 1)
 
void starpu_task_blok_csytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_zsytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zsytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_zsytrfsp, 1)
 
void starpu_task_blok_zsytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_dsytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_dsytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_dsytrfsp, 1)
 
void starpu_task_blok_dsytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_blok_strsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_strsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_strsmsp, 2, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_strsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 
static pastix_fixdbl_t fct_blok_ctrsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_ctrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_ctrsmsp, 2, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_ctrsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 
static pastix_fixdbl_t fct_blok_ztrsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_ztrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_ztrsmsp, 2, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_ztrsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 
static pastix_fixdbl_t fct_blok_dtrsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_dtrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (blok_dtrsmsp, 2, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_blok_dtrsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 
static pastix_fixdbl_t fct_cblk_sgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_sgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (cblk_sgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_cblk_sgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 
static pastix_fixdbl_t fct_cblk_cgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_cgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (cblk_cgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_cblk_cgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 
static pastix_fixdbl_t fct_cblk_zgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_zgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (cblk_zgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_cblk_zgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 
static pastix_fixdbl_t fct_cblk_dgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_dgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_GPU (cblk_dgemmsp, 3, STARPU_CUDA_ASYNC)
 StarPU GPU implementation.
 
void starpu_task_cblk_dgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 
static pastix_fixdbl_t fct_cblk_sgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_sgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_sgetrfsp, 2)
 
void starpu_task_cblk_sgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_cgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_cgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_cgetrfsp, 2)
 
void starpu_task_cblk_cgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_zgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_zgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_zgetrfsp, 2)
 
void starpu_task_cblk_zgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_dgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_dgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_dgetrfsp, 2)
 
void starpu_task_cblk_dgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_chetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_chetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_chetrfsp, 2)
 
void starpu_task_cblk_chetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_zhetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_zhetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_zhetrfsp, 2)
 
void starpu_task_cblk_zhetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_spotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_spotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_spotrfsp, 1)
 
void starpu_task_cblk_spotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_cpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_cpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_cpotrfsp, 1)
 
void starpu_task_cblk_cpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_zpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_zpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_zpotrfsp, 1)
 
void starpu_task_cblk_zpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_dpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_dpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_dpotrfsp, 1)
 
void starpu_task_cblk_dpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_cpxtrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_cpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_cpxtrfsp, 1)
 
void starpu_task_cblk_cpxtrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_zpxtrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_zpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_zpxtrfsp, 1)
 
void starpu_task_cblk_zpxtrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_ssytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_ssytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_ssytrfsp, 2)
 
void starpu_task_cblk_ssytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_csytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_csytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_csytrfsp, 2)
 
void starpu_task_cblk_csytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_zsytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_zsytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_zsytrfsp, 2)
 
void starpu_task_cblk_zsytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static pastix_fixdbl_t fct_cblk_dsytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_cblk_dsytrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (cblk_dsytrfsp, 2)
 
void starpu_task_cblk_dsytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 
static void fct_solve_blok_sgemm_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (solve_blok_sgemm, 3)
 
void starpu_stask_blok_sgemm (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, pastix_int_t prio)
 Submit a task to perform a gemm. More...
 
static void fct_solve_blok_cgemm_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (solve_blok_cgemm, 3)
 
void starpu_stask_blok_cgemm (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, pastix_int_t prio)
 Submit a task to perform a gemm. More...
 
static void fct_solve_blok_zgemm_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (solve_blok_zgemm, 3)
 
void starpu_stask_blok_zgemm (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, pastix_int_t prio)
 Submit a task to perform a gemm. More...
 
static void fct_solve_blok_dgemm_cpu (void *descr[], void *cl_arg)
 
 CODELETS_CPU (solve_blok_dgemm, 3)
 
void starpu_stask_blok_dgemm (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcbk, pastix_int_t prio)
 Submit a task to perform a gemm. More...
 
void starpu_sparse_matrix_init (SolverMatrix *solvmtx, int mtxtype, int nodes, int myrank, pastix_coeftype_t flttype)
 Generate the StarPU descriptor of the sparse matrix. More...
 
void starpu_sparse_matrix_destroy (starpu_sparse_matrix_desc_t *spmtx)
 Free the StarPU descriptor of the sparse matrix. More...
 
void starpu_sparse_matrix_getoncpu (starpu_sparse_matrix_desc_t *spmtx)
 Submit asynchronous calls to retrieve the data on main memory. More...
 
void starpu_dense_matrix_init (SolverMatrix *solvmtx, pastix_int_t ncol, char *A, pastix_int_t lda, int typesize, int nodes, int myrank)
 Generate the StarPU descriptor of the dense matrix. More...
 
void starpu_dense_matrix_destroy (starpu_dense_matrix_desc_t *spmtx)
 Free the StarPU descriptor of the dense matrix. More...
 
void starpu_dense_matrix_getoncpu (starpu_dense_matrix_desc_t *spmtx)
 Submit asynchronous calls to retrieve the data on main memory. More...
 
void pastix_starpu_init (pastix_data_t *pastix, int *argc, char **argv[], const int *bindtab)
 Startup the StarPU runtime system. More...
 
void pastix_starpu_finalize (pastix_data_t *pastix)
 Finalize the StarPU runtime system. More...
 
int pastix_starpu_tag_init (pastix_data_t *pastix)
 
int64_t pastix_starpu_tag_book (int64_t nbtags)
 
void pastix_starpu_tag_release (int64_t min)
 
void pastix_starpu_partition_submit (pastix_coefside_t side, SolverCblk *cblk, starpu_cblk_t *starpu_cblk)
 TODO. More...
 
void pastix_starpu_unpartition_submit (const starpu_sparse_matrix_desc_t *spmtx, int rank, pastix_coefside_t side, SolverCblk *cblk, starpu_cblk_t *starpu_cblk)
 TODO. More...
 
static void profiling_display_allinfo ()
 
static void profiling_log_init (const char *dirname)
 
static void profiling_log_fini ()
 
static void * pastix_starpu_cblk_get_ptr (void *interface)
 
static void * pastix_starpu_blok_get_ptr (void *interface)
 
void pastix_starpu_register (starpu_data_handle_t *handleptr, int home_node, SolverCblk *cblk, pastix_coefside_t side, pastix_coeftype_t flttype)
 Register a cblk at the StarPU level. More...
 
void pastix_starpu_interface_init ()
 Initialize the interface ID.
 
void pastix_starpu_interface_fini ()
 Finalize the interface and reset the ID.
 
static void pastix_starpu_filter_interface (void *father_interface, void *child_interface, struct starpu_data_filter *f, unsigned id, unsigned nchunks)
 
static void pastix_starpu_register_interface (const starpu_sparse_matrix_desc_t *spmtx, SolverCblk *cblk, int myrank, int side, pastix_coeftype_t flttype)
 
static void pastix_starpu_register_cblk (const starpu_sparse_matrix_desc_t *spmtx, SolverCblk *cblk, int myrank, pastix_coeftype_t flttype)
 

Variables

static struct starpu_perfmodel starpu_blok_sgemmsp_model
 
static struct starpu_perfmodel starpu_blok_cgemmsp_model
 
static struct starpu_perfmodel starpu_blok_zgemmsp_model
 
static struct starpu_perfmodel starpu_blok_dgemmsp_model
 
static struct starpu_perfmodel starpu_blok_sgetrfsp_model
 
static struct starpu_perfmodel starpu_blok_cgetrfsp_model
 
static struct starpu_perfmodel starpu_blok_zgetrfsp_model
 
static struct starpu_perfmodel starpu_blok_dgetrfsp_model
 
static struct starpu_perfmodel starpu_blok_chetrfsp_model
 
static struct starpu_perfmodel starpu_blok_zhetrfsp_model
 
static struct starpu_perfmodel starpu_blok_spotrfsp_model
 
static struct starpu_perfmodel starpu_blok_cpotrfsp_model
 
static struct starpu_perfmodel starpu_blok_zpotrfsp_model
 
static struct starpu_perfmodel starpu_blok_dpotrfsp_model
 
static struct starpu_perfmodel starpu_blok_cpxtrfsp_model
 
static struct starpu_perfmodel starpu_blok_zpxtrfsp_model
 
static struct starpu_perfmodel starpu_blok_sscalo_model
 
static struct starpu_perfmodel starpu_blok_cscalo_model
 
static struct starpu_perfmodel starpu_blok_zscalo_model
 
static struct starpu_perfmodel starpu_blok_dscalo_model
 
static struct starpu_perfmodel starpu_blok_ssytrfsp_model
 
static struct starpu_perfmodel starpu_blok_csytrfsp_model
 
static struct starpu_perfmodel starpu_blok_zsytrfsp_model
 
static struct starpu_perfmodel starpu_blok_dsytrfsp_model
 
static struct starpu_perfmodel starpu_blok_strsmsp_model
 
static struct starpu_perfmodel starpu_blok_ctrsmsp_model
 
static struct starpu_perfmodel starpu_blok_ztrsmsp_model
 
static struct starpu_perfmodel starpu_blok_dtrsmsp_model
 
static struct starpu_perfmodel starpu_cblk_sgemmsp_model
 
static struct starpu_perfmodel starpu_cblk_cgemmsp_model
 
static struct starpu_perfmodel starpu_cblk_zgemmsp_model
 
static struct starpu_perfmodel starpu_cblk_dgemmsp_model
 
static struct starpu_perfmodel starpu_cblk_sgetrfsp_model
 
static struct starpu_perfmodel starpu_cblk_cgetrfsp_model
 
static struct starpu_perfmodel starpu_cblk_zgetrfsp_model
 
static struct starpu_perfmodel starpu_cblk_dgetrfsp_model
 
static struct starpu_perfmodel starpu_cblk_chetrfsp_model
 
static struct starpu_perfmodel starpu_cblk_zhetrfsp_model
 
static struct starpu_perfmodel starpu_cblk_spotrfsp_model
 
static struct starpu_perfmodel starpu_cblk_cpotrfsp_model
 
static struct starpu_perfmodel starpu_cblk_zpotrfsp_model
 
static struct starpu_perfmodel starpu_cblk_dpotrfsp_model
 
static struct starpu_perfmodel starpu_cblk_cpxtrfsp_model
 
static struct starpu_perfmodel starpu_cblk_zpxtrfsp_model
 
static struct starpu_perfmodel starpu_cblk_ssytrfsp_model
 
static struct starpu_perfmodel starpu_cblk_csytrfsp_model
 
static struct starpu_perfmodel starpu_cblk_zsytrfsp_model
 
static struct starpu_perfmodel starpu_cblk_dsytrfsp_model
 
static struct starpu_perfmodel starpu_solve_blok_sgemm_model
 
static struct starpu_perfmodel starpu_solve_blok_cgemm_model
 
static struct starpu_perfmodel starpu_solve_blok_zgemm_model
 
static struct starpu_perfmodel starpu_solve_blok_dgemm_model
 
struct starpu_data_interface_ops pastix_starpu_interface_ops
 StarPU Interface to handle cblks and bloks.
 

Detailed Description

This module describes the functionnality provided by the runtime system StarPU for the numerical factorization and solve.


Data Type Documentation

◆ starpu_cblk_s

struct starpu_cblk_s

Additional StarPU handlers for a column-block when using 2D kernels.

Handle requirements for contiguous allocation of the block handlers when using StarPU data partitioning.

Definition at line 84 of file pastix_starpu.h.

Data Fields
pastix_int_t handlenbr

Number of 2D block handlers in the column-block

starpu_data_handle_t * handletab

Array of 2D block handlers for the column-block

◆ starpu_sparse_matrix_desc_s

struct starpu_sparse_matrix_desc_s

StarPU descriptor stucture for the sparse matrix.

Definition at line 92 of file pastix_starpu.h.

Data Fields
int64_t mpitag

MPI id of StarPU

int typesze

Arithmetic size

int mtxtype

Matrix structure: PastixGeneral, PastixSymmetric or PastixHermitian.

SolverMatrix * solvmtx

Solver matrix structure that describes the problem and stores the original data

starpu_cblk_t * cblktab_handle

Array of 2D column-block handlers (NULL when using 1D kernels only)

void ** gpu_blocktab

Pointer to GPU arrays that contains frownum,lrownum of each block for Fermi (NULL otherwise)

◆ starpu_dense_matrix_desc_s

struct starpu_dense_matrix_desc_s

StarPU descriptor for the vectors linked to a given sparse matrix.

Definition at line 104 of file pastix_starpu.h.

Data Fields
int64_t mpitag

MPI id of StarPU

int ncol

Number of columns of the matrix

int typesze

Arithmetic size

SolverMatrix * solvmtx

Solver matrix structure that describes the problem and stores the original data

starpu_data_handle_t * handletab

Array of handlers for the blocks

void * dataptr

Store the main data pointer to check that the descriptor matches the reference

◆ measure_s

struct measure_s

Definition at line 151 of file pastix_starpu.h.

Data Fields
double sum
double sum2
long n

◆ starpu_profile_s

struct starpu_profile_s

Profiling data structure to register a codelet to profile.

Definition at line 166 of file pastix_starpu.h.

Data Fields
starpu_profile_t * next

Link to the next implementation

const char * name

Short name of the function

measure_t measures[STARPU_NMAXWORKERS]

Pointer to the array of measures

◆ profile_data_s

struct profile_data_s

Base structure to all codelet arguments that include the profiling data.

Definition at line 175 of file pastix_starpu.h.

Data Fields
double flops

◆ pastix_starpu_interface_s

struct pastix_starpu_interface_s

Interface data structure to register the pieces of data in StarPU.

Definition at line 228 of file pastix_starpu.h.

Data Fields
enum starpu_data_interface_id id

Identifier of the interface

pastix_coeftype_t flttype

Floating type of the elements

int offset

-1 for cblk, blok offset for the subdatas

int nbblok

Number of blocks

size_t allocsize

size currently allocated

SolverCblk * cblk

Internal structure used to store the cblk

void * dataptr

Pointer on data

Typedef Documentation

◆ starpu_cblk_t

typedef struct starpu_cblk_s starpu_cblk_t

Additional StarPU handlers for a column-block when using 2D kernels.

Handle requirements for contiguous allocation of the block handlers when using StarPU data partitioning.

Function Documentation

◆ fct_blok_sgemmsp_cost()

static pastix_fixdbl_t fct_blok_sgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 114 of file codelet_blok_sgemmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_cgemmsp_cost()

static pastix_fixdbl_t fct_blok_cgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 114 of file codelet_blok_cgemmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_zgemmsp_cost()

static pastix_fixdbl_t fct_blok_zgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 114 of file codelet_blok_zgemmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_dgemmsp_cost()

static pastix_fixdbl_t fct_blok_dgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 114 of file codelet_blok_dgemmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_sgetrfsp_cost()

static pastix_fixdbl_t fct_blok_sgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_sgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_cgetrfsp_cost()

static pastix_fixdbl_t fct_blok_cgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_cgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_zgetrfsp_cost()

static pastix_fixdbl_t fct_blok_zgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_zgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_dgetrfsp_cost()

static pastix_fixdbl_t fct_blok_dgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_dgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_chetrfsp_cost()

static pastix_fixdbl_t fct_blok_chetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_chetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_zhetrfsp_cost()

static pastix_fixdbl_t fct_blok_zhetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_zhetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_spotrfsp_cost()

static pastix_fixdbl_t fct_blok_spotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_spotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_cpotrfsp_cost()

static pastix_fixdbl_t fct_blok_cpotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_cpotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_zpotrfsp_cost()

static pastix_fixdbl_t fct_blok_zpotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_zpotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_dpotrfsp_cost()

static pastix_fixdbl_t fct_blok_dpotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 104 of file codelet_blok_dpotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_cpxtrfsp_cost()

static pastix_fixdbl_t fct_blok_cpxtrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 103 of file codelet_blok_cpxtrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_zpxtrfsp_cost()

static pastix_fixdbl_t fct_blok_zpxtrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 103 of file codelet_blok_zpxtrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_ssytrfsp_cost()

static pastix_fixdbl_t fct_blok_ssytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 103 of file codelet_blok_ssytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_csytrfsp_cost()

static pastix_fixdbl_t fct_blok_csytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 103 of file codelet_blok_csytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_zsytrfsp_cost()

static pastix_fixdbl_t fct_blok_zsytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 103 of file codelet_blok_zsytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_dsytrfsp_cost()

static pastix_fixdbl_t fct_blok_dsytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 103 of file codelet_blok_dsytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_blok_strsmsp_cost()

static pastix_fixdbl_t fct_blok_strsmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 113 of file codelet_blok_strsmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_ctrsmsp_cost()

static pastix_fixdbl_t fct_blok_ctrsmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 113 of file codelet_blok_ctrsmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_ztrsmsp_cost()

static pastix_fixdbl_t fct_blok_ztrsmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 113 of file codelet_blok_ztrsmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_blok_dtrsmsp_cost()

static pastix_fixdbl_t fct_blok_dtrsmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 113 of file codelet_blok_dtrsmsp.c.

References blok_rownbr_ext(), cblk_colnbr(), and cost().

◆ fct_cblk_sgemmsp_cost()

static pastix_fixdbl_t fct_cblk_sgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 116 of file codelet_cblk_sgemmsp.c.

References blok_rownbr(), cblk_colnbr(), and cost().

◆ fct_cblk_cgemmsp_cost()

static pastix_fixdbl_t fct_cblk_cgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 116 of file codelet_cblk_cgemmsp.c.

References blok_rownbr(), cblk_colnbr(), and cost().

◆ fct_cblk_zgemmsp_cost()

static pastix_fixdbl_t fct_cblk_zgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 116 of file codelet_cblk_zgemmsp.c.

References blok_rownbr(), cblk_colnbr(), and cost().

◆ fct_cblk_dgemmsp_cost()

static pastix_fixdbl_t fct_cblk_dgemmsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 116 of file codelet_cblk_dgemmsp.c.

References blok_rownbr(), cblk_colnbr(), and cost().

◆ fct_cblk_sgetrfsp_cost()

static pastix_fixdbl_t fct_cblk_sgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_sgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_cgetrfsp_cost()

static pastix_fixdbl_t fct_cblk_cgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_cgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_zgetrfsp_cost()

static pastix_fixdbl_t fct_cblk_zgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_zgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_dgetrfsp_cost()

static pastix_fixdbl_t fct_cblk_dgetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_dgetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_chetrfsp_cost()

static pastix_fixdbl_t fct_cblk_chetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_chetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_zhetrfsp_cost()

static pastix_fixdbl_t fct_cblk_zhetrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_zhetrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_spotrfsp_cost()

static pastix_fixdbl_t fct_cblk_spotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_spotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_cpotrfsp_cost()

static pastix_fixdbl_t fct_cblk_cpotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_cpotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_zpotrfsp_cost()

static pastix_fixdbl_t fct_cblk_zpotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_zpotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_dpotrfsp_cost()

static pastix_fixdbl_t fct_cblk_dpotrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 106 of file codelet_cblk_dpotrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_cpxtrfsp_cost()

static pastix_fixdbl_t fct_cblk_cpxtrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_cpxtrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_zpxtrfsp_cost()

static pastix_fixdbl_t fct_cblk_zpxtrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_zpxtrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_ssytrfsp_cost()

static pastix_fixdbl_t fct_cblk_ssytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_ssytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_csytrfsp_cost()

static pastix_fixdbl_t fct_cblk_csytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_csytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_zsytrfsp_cost()

static pastix_fixdbl_t fct_cblk_zsytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_zsytrfsp.c.

References cblk_colnbr(), and cost().

◆ fct_cblk_dsytrfsp_cost()

static pastix_fixdbl_t fct_cblk_dsytrfsp_cost ( struct starpu_task *  task,
struct starpu_perfmodel_arch *  arch,
unsigned  nimpl 
)
inlinestatic

Functions to profile the codelet.

Two levels of profiling are available: 1) A generic one that returns the flops per worker 2) A more detailed one that generate logs of the performance for each kernel

Cost model function

The user can switch from the pastix static model to an history based model computed automatically.

Definition at line 105 of file codelet_cblk_dsytrfsp.c.

References cblk_colnbr(), and cost().

◆ starpu_stask_blok_sgemm()

void starpu_stask_blok_sgemm ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  coef,
pastix_side_t  side,
pastix_trans_t  trans,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcbk,
pastix_int_t  prio 
)

Submit a task to perform a gemm.

Parameters
[in]coefSpecify whether the computation are made with the L part, or the U part of A. It has to be either PastixLCoef, or PastixUCoef.
[in]sideSpecify the side parameter of the TRSM.
[in]transSpecify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixTrans.
[in]cblkThe cblk structure that corresponds to the A and B matrix.
[in]blokThe blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter.
[in,out]fcbkThe cblk structure that corresponds to the C matrix.
[in]sopalin_dataThe data that provide the SolverMatrix structure from PaStiX, and descriptor of b (providing nrhs, b and ldb).
[in]prioThe priority of the task in th DAG.

Definition at line 147 of file codelet_solve_sgemm.c.

References solver_cblk_s::handler, starpu_profile_s::measures, solver_cblk_s::ownerid, and PastixRight.

◆ starpu_stask_blok_cgemm()

void starpu_stask_blok_cgemm ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  coef,
pastix_side_t  side,
pastix_trans_t  trans,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcbk,
pastix_int_t  prio 
)

Submit a task to perform a gemm.

Parameters
[in]coefSpecify whether the computation are made with the L part, or the U part of A. It has to be either PastixLCoef, or PastixUCoef.
[in]sideSpecify the side parameter of the TRSM.
[in]transSpecify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixConjTrans.
[in]cblkThe cblk structure that corresponds to the A and B matrix.
[in]blokThe blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter.
[in,out]fcbkThe cblk structure that corresponds to the C matrix.
[in]sopalin_dataThe data that provide the SolverMatrix structure from PaStiX, and descriptor of b (providing nrhs, b and ldb).
[in]prioThe priority of the task in th DAG.

Definition at line 147 of file codelet_solve_cgemm.c.

References solver_cblk_s::handler, starpu_profile_s::measures, solver_cblk_s::ownerid, and PastixRight.

◆ starpu_stask_blok_zgemm()

void starpu_stask_blok_zgemm ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  coef,
pastix_side_t  side,
pastix_trans_t  trans,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcbk,
pastix_int_t  prio 
)

Submit a task to perform a gemm.

Parameters
[in]coefSpecify whether the computation are made with the L part, or the U part of A. It has to be either PastixLCoef, or PastixUCoef.
[in]sideSpecify the side parameter of the TRSM.
[in]transSpecify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixConjTrans.
[in]cblkThe cblk structure that corresponds to the A and B matrix.
[in]blokThe blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter.
[in,out]fcbkThe cblk structure that corresponds to the C matrix.
[in]sopalin_dataThe data that provide the SolverMatrix structure from PaStiX, and descriptor of b (providing nrhs, b and ldb).
[in]prioThe priority of the task in th DAG.

Definition at line 147 of file codelet_solve_zgemm.c.

References solver_cblk_s::handler, starpu_profile_s::measures, solver_cblk_s::ownerid, and PastixRight.

◆ starpu_stask_blok_dgemm()

void starpu_stask_blok_dgemm ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  coef,
pastix_side_t  side,
pastix_trans_t  trans,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcbk,
pastix_int_t  prio 
)

Submit a task to perform a gemm.

Parameters
[in]coefSpecify whether the computation are made with the L part, or the U part of A. It has to be either PastixLCoef, or PastixUCoef.
[in]sideSpecify the side parameter of the TRSM.
[in]transSpecify the transposition used for the matrix A in the computation. It has to be either PastixTrans or PastixTrans.
[in]cblkThe cblk structure that corresponds to the A and B matrix.
[in]blokThe blok structure that corresponds to the A matrix, and that belongs either to cblk or fcbk depending on the side parameter.
[in,out]fcbkThe cblk structure that corresponds to the C matrix.
[in]sopalin_dataThe data that provide the SolverMatrix structure from PaStiX, and descriptor of b (providing nrhs, b and ldb).
[in]prioThe priority of the task in th DAG.

Definition at line 147 of file codelet_solve_dgemm.c.

References solver_cblk_s::handler, starpu_profile_s::measures, solver_cblk_s::ownerid, and PastixRight.

◆ starpu_sparse_matrix_init()

void starpu_sparse_matrix_init ( SolverMatrix *  solvmtx,
int  mtxtype,
int  nodes,
int  myrank,
pastix_coeftype_t  flttype 
)

Generate the StarPU descriptor of the sparse matrix.

This function creates the StarPU descriptor that will provide tha data mapping and memory location to StarPU for the computation.

Parameters
[in,out]solvmtxThe solver matrix structure that describes the sparse matrix for PaStiX.
[in]typesizeThe memory size of the arithmetic used to store the matrix coefficients.
[in]mtxtypeThe type of sparse matrix to describe.
  • PastixGeneral: The sparse matrix is general.
  • PastixSymmetric: The sparse matrix is lower triangular symmetric.
  • PastixHermitian: The sparse matrix is lower triangular hermitian.
[in]nodesThe number of processes used to solve the problem.
[in]myrankThe rank of the calling process.

Definition at line 159 of file starpu_sparse_matrix.c.

References starpu_sparse_matrix_desc_s::mpitag, and starpu_sparse_matrix_destroy().

Referenced by starpu_cdiag(), starpu_cgetrf(), starpu_chetrf(), starpu_cpotrf(), starpu_cpxtrf(), starpu_csytrf(), starpu_ctrsm(), starpu_ddiag(), starpu_dgetrf(), starpu_dpotrf(), starpu_dsytrf(), starpu_dtrsm(), starpu_sdiag(), starpu_sgetrf(), starpu_spotrf(), starpu_ssytrf(), starpu_strsm(), starpu_zdiag(), starpu_zgetrf(), starpu_zhetrf(), starpu_zpotrf(), starpu_zpxtrf(), starpu_zsytrf(), and starpu_ztrsm().

◆ starpu_sparse_matrix_destroy()

void starpu_sparse_matrix_destroy ( starpu_sparse_matrix_desc_t spmtx)

Free the StarPU descriptor of the sparse matrix.

This function destroys the StarPU descriptor, but do not free the matrix data that are managed by PaStiX.

Parameters
[in,out]spmtxThe descriptor to free.

Definition at line 414 of file starpu_sparse_matrix.c.

References starpu_sparse_matrix_desc_s::cblktab_handle, solver_cblk_s::handler, and starpu_sparse_matrix_desc_s::solvmtx.

Referenced by coeftabExit(), and starpu_sparse_matrix_init().

◆ starpu_sparse_matrix_getoncpu()

void starpu_sparse_matrix_getoncpu ( starpu_sparse_matrix_desc_t spmtx)

Submit asynchronous calls to retrieve the data on main memory.

Parameters
[in,out]spmtxThe sparse matrix descriptor to retrieve on main memory.

Definition at line 366 of file starpu_sparse_matrix.c.

References solver_cblk_s::handler, solver_cblk_s::ownerid, starpu_sparse_matrix_desc_s::solvmtx, and solver_cblk_s::ucoeftab.

◆ starpu_dense_matrix_init()

void starpu_dense_matrix_init ( SolverMatrix *  solvmtx,
pastix_int_t  ncol,
char *  A,
pastix_int_t  lda,
int  typesize,
int  nodes,
int  myrank 
)

Generate the StarPU descriptor of the dense matrix.

This function creates the StarPU descriptor that will provide tha data mapping and memory location to StarPU for the computation.

Parameters
[in,out]solvmtxThe solver matrix structure that describes the dense matrix for PaStiX.
[in]ncolThe number of columns of the given matrix. The number of rows is given by the solvmtx structure.
[in]AThe pointer to the matrix.
[in]ldaThe leading dimension of the matrix A.
[in]typesizeThe memory size of the arithmetic used to store the matrix coefficients.
[in]nodesThe number of processes used to solve the problem.
[in]myrankThe rank of the calling process.

Definition at line 60 of file starpu_dense_matrix.c.

References starpu_dense_matrix_desc_s::dataptr, starpu_dense_matrix_desc_s::mpitag, starpu_dense_matrix_desc_s::ncol, and starpu_dense_matrix_destroy().

◆ starpu_dense_matrix_destroy()

void starpu_dense_matrix_destroy ( starpu_dense_matrix_desc_t spmtx)

Free the StarPU descriptor of the dense matrix.

This function destroys the StarPU descriptor, but do not free the matrix data that are managed by PaStiX.

Parameters
[in,out]spmtxThe descriptor to free.

Definition at line 169 of file starpu_dense_matrix.c.

References starpu_dense_matrix_desc_s::handletab, and starpu_dense_matrix_desc_s::solvmtx.

Referenced by solverExit(), and starpu_dense_matrix_init().

◆ starpu_dense_matrix_getoncpu()

void starpu_dense_matrix_getoncpu ( starpu_dense_matrix_desc_t spmtx)

Submit asynchronous calls to retrieve the data on main memory.

Parameters
[in,out]spmtxThe dense matrix descriptor to retrieve on main memory.

Definition at line 131 of file starpu_dense_matrix.c.

References starpu_dense_matrix_desc_s::handletab, and starpu_dense_matrix_desc_s::solvmtx.

◆ pastix_starpu_init()

void pastix_starpu_init ( pastix_data_t *  pastix,
int *  argc,
char **  argv[],
const int *  bindtab 
)

Startup the StarPU runtime system.

This function initialize and startup the StarPU runtime system with PaStix configuration variables

Parameters
[in,out]pastixThe main pastix_data structure.
[in,out]argcThe number of arguments of the main program.
[in,out]argvThe list of argument given to the main program.
[in]bindtabThe binding array of size the number of threads if a specific binding is required, NULL otherwise.

Definition at line 92 of file starpu.c.

References pastix(), and pastix_gendirectories().

Referenced by pastixInitWithAffinity(), starpu_cdiag(), starpu_cgetrf(), starpu_chetrf(), starpu_cpotrf(), starpu_cpxtrf(), starpu_csytrf(), starpu_ctrsm(), starpu_ddiag(), starpu_dgetrf(), starpu_dpotrf(), starpu_dsytrf(), starpu_dtrsm(), starpu_sdiag(), starpu_sgetrf(), starpu_spotrf(), starpu_ssytrf(), starpu_strsm(), starpu_zdiag(), starpu_zgetrf(), starpu_zhetrf(), starpu_zpotrf(), starpu_zpxtrf(), starpu_zsytrf(), and starpu_ztrsm().

◆ pastix_starpu_finalize()

void pastix_starpu_finalize ( pastix_data_t *  pastix)

Finalize the StarPU runtime system.

This function stop the StarPU runtime system.

Parameters
[in,out]pastixThe main pastix_data structure.

Definition at line 227 of file starpu.c.

References pastix(), and pastix_starpu_interface_fini().

Referenced by pastixFinalize().

◆ pastix_starpu_tag_init()

int pastix_starpu_tag_init ( pastix_data_t *  pastix)

MPI tag management

◆ pastix_starpu_partition_submit()

void pastix_starpu_partition_submit ( pastix_coefside_t  side,
SolverCblk cblk,
starpu_cblk_t starpu_cblk 
)

TODO.

Data partition management

TODO

Parameters
[in]spmtxThe descriptor to free.

Definition at line 483 of file starpu_sparse_matrix.c.

References starpu_cblk_s::handlenbr, solver_cblk_s::handler, and starpu_cblk_s::handletab.

◆ pastix_starpu_unpartition_submit()

void pastix_starpu_unpartition_submit ( const starpu_sparse_matrix_desc_t spmtx,
int  rank,
pastix_coefside_t  side,
SolverCblk cblk,
starpu_cblk_t starpu_cblk 
)

TODO.

TODO

Parameters
[in]spmtxThe descriptor to free.

Definition at line 508 of file starpu_sparse_matrix.c.

References starpu_cblk_s::handlenbr, solver_cblk_s::handler, starpu_cblk_s::handletab, solver_cblk_s::ownerid, PastixUCoef, and starpu_sparse_matrix_desc_s::solvmtx.

◆ pastix_starpu_register()

void pastix_starpu_register ( starpu_data_handle_t *  handleptr,
int  home_node,
SolverCblk cblk,
pastix_coefside_t  side,
pastix_coeftype_t  flttype 
)

Register a cblk at the StarPU level.

Parameters
[out]handleptrThe StarPU data handle to the registered data. Space must be allocated on call.
[in]home_nodeThe StarPU memory node enum to specify where the initial data is located -1 if not local, STARPU_MAIN_RAM if local.
[in]cblkThe cblk to register
[in]sideSpecify which part of the cblk (Upper or Lower) to register
[in]flttypeSpecify the arithmetic floating type of the coefficients

Definition at line 581 of file pastix_starpu_interface.c.

References solver_cblk_s::fblokptr, pastix_starpu_interface_s::id, PASTIX_STARPU_INTERFACE_ID, and PastixLUCoef.

Variable Documentation

◆ starpu_blok_sgemmsp_model

struct starpu_perfmodel starpu_blok_sgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_sgemmsp",
}

Definition at line 145 of file codelet_blok_sgemmsp.c.

◆ starpu_blok_cgemmsp_model

struct starpu_perfmodel starpu_blok_cgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_cgemmsp",
}

Definition at line 145 of file codelet_blok_cgemmsp.c.

◆ starpu_blok_zgemmsp_model

struct starpu_perfmodel starpu_blok_zgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zgemmsp",
}

Definition at line 145 of file codelet_blok_zgemmsp.c.

◆ starpu_blok_dgemmsp_model

struct starpu_perfmodel starpu_blok_dgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_dgemmsp",
}

Definition at line 145 of file codelet_blok_dgemmsp.c.

◆ starpu_blok_sgetrfsp_model

struct starpu_perfmodel starpu_blok_sgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_sgetrfsp",
}

Definition at line 133 of file codelet_blok_sgetrfsp.c.

◆ starpu_blok_cgetrfsp_model

struct starpu_perfmodel starpu_blok_cgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_cgetrfsp",
}

Definition at line 133 of file codelet_blok_cgetrfsp.c.

◆ starpu_blok_zgetrfsp_model

struct starpu_perfmodel starpu_blok_zgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zgetrfsp",
}

Definition at line 133 of file codelet_blok_zgetrfsp.c.

◆ starpu_blok_dgetrfsp_model

struct starpu_perfmodel starpu_blok_dgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_dgetrfsp",
}

Definition at line 133 of file codelet_blok_dgetrfsp.c.

◆ starpu_blok_chetrfsp_model

struct starpu_perfmodel starpu_blok_chetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_chetrfsp",
}

Definition at line 133 of file codelet_blok_chetrfsp.c.

◆ starpu_blok_zhetrfsp_model

struct starpu_perfmodel starpu_blok_zhetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zhetrfsp",
}

Definition at line 133 of file codelet_blok_zhetrfsp.c.

◆ starpu_blok_spotrfsp_model

struct starpu_perfmodel starpu_blok_spotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_spotrfsp",
}

Definition at line 133 of file codelet_blok_spotrfsp.c.

◆ starpu_blok_cpotrfsp_model

struct starpu_perfmodel starpu_blok_cpotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_cpotrfsp",
}

Definition at line 133 of file codelet_blok_cpotrfsp.c.

◆ starpu_blok_zpotrfsp_model

struct starpu_perfmodel starpu_blok_zpotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zpotrfsp",
}

Definition at line 133 of file codelet_blok_zpotrfsp.c.

◆ starpu_blok_dpotrfsp_model

struct starpu_perfmodel starpu_blok_dpotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_dpotrfsp",
}

Definition at line 133 of file codelet_blok_dpotrfsp.c.

◆ starpu_blok_cpxtrfsp_model

struct starpu_perfmodel starpu_blok_cpxtrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_cpxtrfsp",
}

Definition at line 132 of file codelet_blok_cpxtrfsp.c.

◆ starpu_blok_zpxtrfsp_model

struct starpu_perfmodel starpu_blok_zpxtrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zpxtrfsp",
}

Definition at line 132 of file codelet_blok_zpxtrfsp.c.

◆ starpu_blok_sscalo_model

struct starpu_perfmodel starpu_blok_sscalo_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_sscalo",
}

Definition at line 58 of file codelet_blok_sscalo.c.

◆ starpu_blok_cscalo_model

struct starpu_perfmodel starpu_blok_cscalo_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_cscalo",
}

Definition at line 58 of file codelet_blok_cscalo.c.

◆ starpu_blok_zscalo_model

struct starpu_perfmodel starpu_blok_zscalo_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zscalo",
}

Definition at line 58 of file codelet_blok_zscalo.c.

◆ starpu_blok_dscalo_model

struct starpu_perfmodel starpu_blok_dscalo_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_dscalo",
}

Definition at line 58 of file codelet_blok_dscalo.c.

◆ starpu_blok_ssytrfsp_model

struct starpu_perfmodel starpu_blok_ssytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_ssytrfsp",
}

Definition at line 132 of file codelet_blok_ssytrfsp.c.

◆ starpu_blok_csytrfsp_model

struct starpu_perfmodel starpu_blok_csytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_csytrfsp",
}

Definition at line 132 of file codelet_blok_csytrfsp.c.

◆ starpu_blok_zsytrfsp_model

struct starpu_perfmodel starpu_blok_zsytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_zsytrfsp",
}

Definition at line 132 of file codelet_blok_zsytrfsp.c.

◆ starpu_blok_dsytrfsp_model

struct starpu_perfmodel starpu_blok_dsytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_dsytrfsp",
}

Definition at line 132 of file codelet_blok_dsytrfsp.c.

◆ starpu_blok_strsmsp_model

struct starpu_perfmodel starpu_blok_strsmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_strsmsp",
}

Definition at line 143 of file codelet_blok_strsmsp.c.

◆ starpu_blok_ctrsmsp_model

struct starpu_perfmodel starpu_blok_ctrsmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_ctrsmsp",
}

Definition at line 143 of file codelet_blok_ctrsmsp.c.

◆ starpu_blok_ztrsmsp_model

struct starpu_perfmodel starpu_blok_ztrsmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_ztrsmsp",
}

Definition at line 143 of file codelet_blok_ztrsmsp.c.

◆ starpu_blok_dtrsmsp_model

struct starpu_perfmodel starpu_blok_dtrsmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "blok_dtrsmsp",
}

Definition at line 143 of file codelet_blok_dtrsmsp.c.

◆ starpu_cblk_sgemmsp_model

struct starpu_perfmodel starpu_cblk_sgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_sgemmsp",
}

Definition at line 150 of file codelet_cblk_sgemmsp.c.

◆ starpu_cblk_cgemmsp_model

struct starpu_perfmodel starpu_cblk_cgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_cgemmsp",
}

Definition at line 150 of file codelet_cblk_cgemmsp.c.

◆ starpu_cblk_zgemmsp_model

struct starpu_perfmodel starpu_cblk_zgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_zgemmsp",
}

Definition at line 150 of file codelet_cblk_zgemmsp.c.

◆ starpu_cblk_dgemmsp_model

struct starpu_perfmodel starpu_cblk_dgemmsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_dgemmsp",
}

Definition at line 150 of file codelet_cblk_dgemmsp.c.

◆ starpu_cblk_sgetrfsp_model

struct starpu_perfmodel starpu_cblk_sgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_sgetrfsp",
}

Definition at line 140 of file codelet_cblk_sgetrfsp.c.

◆ starpu_cblk_cgetrfsp_model

struct starpu_perfmodel starpu_cblk_cgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_cgetrfsp",
}

Definition at line 140 of file codelet_cblk_cgetrfsp.c.

◆ starpu_cblk_zgetrfsp_model

struct starpu_perfmodel starpu_cblk_zgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_zgetrfsp",
}

Definition at line 140 of file codelet_cblk_zgetrfsp.c.

◆ starpu_cblk_dgetrfsp_model

struct starpu_perfmodel starpu_cblk_dgetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_dgetrfsp",
}

Definition at line 140 of file codelet_cblk_dgetrfsp.c.

◆ starpu_cblk_chetrfsp_model

struct starpu_perfmodel starpu_cblk_chetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_chetrfsp",
}

Definition at line 139 of file codelet_cblk_chetrfsp.c.

◆ starpu_cblk_zhetrfsp_model

struct starpu_perfmodel starpu_cblk_zhetrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_zhetrfsp",
}

Definition at line 139 of file codelet_cblk_zhetrfsp.c.

◆ starpu_cblk_spotrfsp_model

struct starpu_perfmodel starpu_cblk_spotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_spotrfsp",
}

Definition at line 140 of file codelet_cblk_spotrfsp.c.

◆ starpu_cblk_cpotrfsp_model

struct starpu_perfmodel starpu_cblk_cpotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_cpotrfsp",
}

Definition at line 140 of file codelet_cblk_cpotrfsp.c.

◆ starpu_cblk_zpotrfsp_model

struct starpu_perfmodel starpu_cblk_zpotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_zpotrfsp",
}

Definition at line 140 of file codelet_cblk_zpotrfsp.c.

◆ starpu_cblk_dpotrfsp_model

struct starpu_perfmodel starpu_cblk_dpotrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_dpotrfsp",
}

Definition at line 140 of file codelet_cblk_dpotrfsp.c.

◆ starpu_cblk_cpxtrfsp_model

struct starpu_perfmodel starpu_cblk_cpxtrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_cpxtrfsp",
}

Definition at line 139 of file codelet_cblk_cpxtrfsp.c.

◆ starpu_cblk_zpxtrfsp_model

struct starpu_perfmodel starpu_cblk_zpxtrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_zpxtrfsp",
}

Definition at line 139 of file codelet_cblk_zpxtrfsp.c.

◆ starpu_cblk_ssytrfsp_model

struct starpu_perfmodel starpu_cblk_ssytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_ssytrfsp",
}

Definition at line 139 of file codelet_cblk_ssytrfsp.c.

◆ starpu_cblk_csytrfsp_model

struct starpu_perfmodel starpu_cblk_csytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_csytrfsp",
}

Definition at line 139 of file codelet_cblk_csytrfsp.c.

◆ starpu_cblk_zsytrfsp_model

struct starpu_perfmodel starpu_cblk_zsytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_zsytrfsp",
}

Definition at line 139 of file codelet_cblk_zsytrfsp.c.

◆ starpu_cblk_dsytrfsp_model

struct starpu_perfmodel starpu_cblk_dsytrfsp_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "cblk_dsytrfsp",
}

Definition at line 139 of file codelet_cblk_dsytrfsp.c.

◆ starpu_solve_blok_sgemm_model

struct starpu_perfmodel starpu_solve_blok_sgemm_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "solve_blok_sgemm",
}

Definition at line 60 of file codelet_solve_sgemm.c.

◆ starpu_solve_blok_cgemm_model

struct starpu_perfmodel starpu_solve_blok_cgemm_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "solve_blok_cgemm",
}

Definition at line 60 of file codelet_solve_cgemm.c.

◆ starpu_solve_blok_zgemm_model

struct starpu_perfmodel starpu_solve_blok_zgemm_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "solve_blok_zgemm",
}

Definition at line 60 of file codelet_solve_zgemm.c.

◆ starpu_solve_blok_dgemm_model

struct starpu_perfmodel starpu_solve_blok_dgemm_model
static
Initial value:
= {
.type = STARPU_HISTORY_BASED,
.symbol = "solve_blok_dgemm",
}

Definition at line 60 of file codelet_solve_dgemm.c.