PaStiX Handbook  6.4.0
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
 

Files

file  starpu_sparse_matrix.c
 
file  starpu_rhs.c
 

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_rhs_desc_s
 StarPU descriptor for the vectors linked to a given sparse matrix. 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 PASTIX_STARPU_INTERFACE_ID   pastix_starpu_interface_ops.interfaceid
 Alias to get the Interface id.
 

Typedefs

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_rhs_desc_s starpu_rhs_desc_t
 StarPU descriptor for the vectors linked to a given sparse matrix.
 
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_cadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_cadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_cadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, SolverBlok *fblok, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_blok_cadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_blok_sadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_sadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_sadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, SolverBlok *fblok, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_blok_sadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_blok_dadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_dadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_dadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, SolverBlok *fblok, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_blok_dadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_blok_zadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_zadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_zadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, SolverBlok *fblok, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_blok_zadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, const SolverBlok *blok, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_blok_cgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_cgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_cgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_sgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_sgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_sgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_dgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_dgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_dgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_zgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_zgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_zgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, SolverCblk *cblk, SolverCblk *fcblk, const SolverBlok *blokA, const SolverBlok *blokB, int prio)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_cgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_cgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_cgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_sgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_sgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_sgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_dgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_dgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_dgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_zgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_zgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_zgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
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. More...
 
void starpu_task_blok_chetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
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. More...
 
void starpu_task_blok_zhetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_cpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_cpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_cpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_spotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_spotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_spotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_dpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_dpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_dpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_zpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_zpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_zpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static void fct_blok_cpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_cpxtrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static void fct_blok_zpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_blok_zpxtrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_cscalo_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_cscalo_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_cscalo, 3)
 
void starpu_task_blok_cscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, const SolverCblk *cblk, SolverBlok *blok, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_sscalo_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_sscalo_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_sscalo, 3)
 
void starpu_task_blok_sscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, const SolverCblk *cblk, SolverBlok *blok, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_dscalo_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_dscalo_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_dscalo, 3)
 
void starpu_task_blok_dscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, const SolverCblk *cblk, SolverBlok *blok, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_zscalo_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Functions to profile the codelet. More...
 
static void fct_blok_zscalo_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
 CODELETS_CPU (blok_zscalo, 3)
 
void starpu_task_blok_zscalo (sopalin_data_t *sopalin_data, pastix_trans_t trans, const SolverCblk *cblk, SolverBlok *blok, int prio)
 TODO. More...
 
void starpu_task_blok_csytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
void starpu_task_blok_ssytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
void starpu_task_blok_dsytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
void starpu_task_blok_zsytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_blok_ctrsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_ctrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_strsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_strsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_dtrsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_dtrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_blok_ztrsmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_blok_ztrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_cblk_cadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_cadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_cblk_cadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_cblk_cadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_cblk_sadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_sadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_cblk_sadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_cblk_sadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_cblk_dadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_dadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_cblk_dadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_cblk_dadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_cblk_zadd_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_zadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
void starpu_task_cblk_zadd_recv (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_task_cblk_zadd_fanin (sopalin_data_t *sopalin_data, pastix_coefside_t side, const SolverCblk *cblk, int prio)
 Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed. More...
 
static pastix_fixdbl_t fct_cblk_cgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_cgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_cblk_sgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_sgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_cblk_dgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_dgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_cblk_zgemmsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
static void fct_cblk_zgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation. More...
 
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)
 StarPU GPU implementation. More...
 
static pastix_fixdbl_t fct_cblk_cgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_cgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_sgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_sgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_dgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_dgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_zgetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_zgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_chetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_chetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_zhetrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_zhetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_cpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_cpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_spotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_spotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_dpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_dpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_zpotrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_zpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_cpxtrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_cpxtrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_zpxtrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_zpxtrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_csytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_csytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_ssytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_ssytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_dsytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_dsytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
static pastix_fixdbl_t fct_cblk_zsytrfsp_cost (struct starpu_task *task, struct starpu_perfmodel_arch *arch, unsigned nimpl)
 Cost model function. More...
 
void starpu_task_cblk_zsytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO. More...
 
void starpu_stask_blok_cadd_fwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_sadd_fwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_dadd_fwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_zadd_fwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, const SolverCblk *cblk, SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_ccpy_bwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, SolverCblk *cblk, const SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_scpy_bwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, SolverCblk *cblk, const SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_dcpy_bwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, SolverCblk *cblk, const SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_zcpy_bwd_recv (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, SolverCblk *cblk, const SolverCblk *fcblk, int prio)
 Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task. More...
 
void starpu_stask_blok_cgemm (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, 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_stask_blok_sgemm (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, 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_stask_blok_dgemm (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, 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_stask_blok_zgemm (sopalin_data_t *sopalin_data, pastix_rhs_t rhsb, 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, pastix_mtxtype_t 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 *desc)
 Free the StarPU descriptor of the sparse matrix. More...
 
void starpu_sparse_matrix_getoncpu (starpu_sparse_matrix_desc_t *desc)
 Submit asynchronous calls to retrieve the data on main memory. More...
 
void starpu_rhs_init (SolverMatrix *solvmtx, pastix_rhs_t rhsb, int typesze, int nodes, int myrank)
 Generate the StarPU descriptor of the dense matrix. More...
 
void starpu_rhs_destroy (starpu_rhs_desc_t *desc)
 Free the StarPU descriptor of the dense matrix. More...
 
void starpu_rhs_getoncpu (starpu_rhs_desc_t *desc)
 Submit asynchronous calls to retrieve the data on main memory. More...
 
void starpu_sparse_cblk_wont_use (pastix_coefside_t coef, SolverCblk *cblk)
 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_data)
 Initialize the StarPU tags manager. More...
 
int64_t pastix_starpu_tag_book (int64_t nbtags)
 Book a range of StarPU unique tags of size nbtags. More...
 
void pastix_starpu_tag_release (int64_t min)
 Release the set of tags starting by min. More...
 
static void profiling_display_allinfo ()
 Displays all profiling data collected into all measurements tables of the profile_list.
 
void pastix_starpu_register (starpu_data_handle_t *handleptr, const SolverCblk *cblk, pastix_coefside_t side, pastix_coeftype_t flttype)
 Register a cblk at the StarPU level. More...
 
void pastix_starpu_register_ws (starpu_data_handle_t *handleptr, const SolverCblk *cblk, pastix_coeftype_t flttype)
 
void pastix_starpu_register_blok (starpu_data_handle_t *handleptr, const SolverCblk *cblk, const SolverBlok *blok, pastix_coeftype_t flttype)
 
void pastix_starpu_interface_init ()
 Initialize the interface ID.
 
void pastix_starpu_interface_fini ()
 Finalize the interface and reset the ID.
 

Variables

static struct starpu_perfmodel starpu_blok_cscalo_model
 
static struct starpu_perfmodel starpu_blok_sscalo_model
 
static struct starpu_perfmodel starpu_blok_dscalo_model
 
static struct starpu_perfmodel starpu_blok_zscalo_model
 
struct starpu_data_interface_ops pastix_starpu_interface_ops
 StarPU Interface to handle cblks and bloks. More...
 
struct starpu_codelet cl_fanin_init_cpu
 Main structure for all tasks of fanin_init type.
 
struct starpu_codelet cl_rhs_init_cpu
 Main structure for all tasks of rhs_init type.
 
struct starpu_data_interface_ops pastix_starpu_interface_ops
 TODO. More...
 
void pastix_starpu_cblk_destroy (int is_owner, SolverCblk *cblk, starpu_cblk_t *cblkhandle)
 Destroy a single cblk StarPU data structure of the sparse matrix. More...
 

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 99 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 107 of file pastix_starpu.h.

Data Fields
int64_t mpitag

MPI id of StarPU

int typesze

Arithmetic size

pastix_mtxtype_t 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_rhs_desc_s

struct starpu_rhs_desc_s

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

Definition at line 119 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

◆ profile_data_s

struct profile_data_s

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

Definition at line 187 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 251 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

const 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_cadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 134 of file codelet_blok_cadd.c.

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

◆ fct_blok_cadd_cpu()

static void fct_blok_cadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_cadd.c.

References cpublok_cadd().

◆ starpu_task_blok_cadd_recv()

void starpu_task_blok_cadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcblk,
SolverBlok fblok,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]fblokThe facing block of the matrix.
[in]prioThe task priority.

Definition at line 286 of file codelet_blok_cadd.c.

References solver_blok_s::fcblknm.

Referenced by starpu_task_cadd_2d_recv().

◆ starpu_task_blok_cadd_fanin()

void starpu_task_blok_cadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]prioThe task priority.

Definition at line 378 of file codelet_blok_cadd.c.

References solver_cblk_s::cblktype, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_cadd_2d_fanin().

◆ fct_blok_sadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 134 of file codelet_blok_sadd.c.

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

◆ fct_blok_sadd_cpu()

static void fct_blok_sadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_sadd.c.

References cpublok_sadd().

◆ starpu_task_blok_sadd_recv()

void starpu_task_blok_sadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcblk,
SolverBlok fblok,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]fblokThe facing block of the matrix.
[in]prioThe task priority.

Definition at line 286 of file codelet_blok_sadd.c.

References solver_blok_s::fcblknm.

Referenced by starpu_task_sadd_2d_recv().

◆ starpu_task_blok_sadd_fanin()

void starpu_task_blok_sadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]prioThe task priority.

Definition at line 378 of file codelet_blok_sadd.c.

References solver_cblk_s::cblktype, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_sadd_2d_fanin().

◆ fct_blok_dadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 134 of file codelet_blok_dadd.c.

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

◆ fct_blok_dadd_cpu()

static void fct_blok_dadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_dadd.c.

References cpublok_dadd().

◆ starpu_task_blok_dadd_recv()

void starpu_task_blok_dadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcblk,
SolverBlok fblok,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]fblokThe facing block of the matrix.
[in]prioThe task priority.

Definition at line 286 of file codelet_blok_dadd.c.

References solver_blok_s::fcblknm.

Referenced by starpu_task_dadd_2d_recv().

◆ starpu_task_blok_dadd_fanin()

void starpu_task_blok_dadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]prioThe task priority.

Definition at line 378 of file codelet_blok_dadd.c.

References solver_cblk_s::cblktype, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_dadd_2d_fanin().

◆ fct_blok_zadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 134 of file codelet_blok_zadd.c.

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

◆ fct_blok_zadd_cpu()

static void fct_blok_zadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_zadd.c.

References cpublok_zadd().

◆ starpu_task_blok_zadd_recv()

void starpu_task_blok_zadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
SolverCblk fcblk,
SolverBlok fblok,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]fblokThe facing block of the matrix.
[in]prioThe task priority.

Definition at line 286 of file codelet_blok_zadd.c.

References solver_blok_s::fcblknm.

Referenced by starpu_task_zadd_2d_recv().

◆ starpu_task_blok_zadd_fanin()

void starpu_task_blok_zadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
const SolverBlok blok,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]blokThe block of the matrix.
[in]prioThe task priority.

Definition at line 378 of file codelet_blok_zadd.c.

References solver_cblk_s::cblktype, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zadd_2d_fanin().

◆ fct_blok_cgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 136 of file codelet_blok_cgemmsp.c.

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

◆ fct_blok_cgemmsp_cpu()

static void fct_blok_cgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 196 of file codelet_blok_cgemmsp.c.

References cpublok_cgemmsp().

◆ starpu_task_blok_cgemmsp()

void starpu_task_blok_cgemmsp ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  sideA,
pastix_coefside_t  sideB,
pastix_trans_t  trans,
SolverCblk cblk,
SolverCblk fcblk,
const SolverBlok blokA,
const SolverBlok blokB,
int  prio 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]sideATODO
[in]sideBTODO
[in]transTODO
[in]cblkTODO
[in]fcblkTODO
[in]blokATODO
[in]blokBTODO
[in]prioTODO

Definition at line 286 of file codelet_blok_cgemmsp.c.

References solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_blok_s::fcblknm, solver_blok_s::frownum, solver_blok_s::handler, solver_blok_s::lcblknm, solver_blok_s::lrownum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_getrf_cgemmsp(), starpu_task_hetrf_cgemmsp(), starpu_task_potrf_cgemmsp(), starpu_task_pxtrf_cgemmsp(), and starpu_task_sytrf_cgemmsp().

◆ fct_blok_sgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 136 of file codelet_blok_sgemmsp.c.

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

◆ fct_blok_sgemmsp_cpu()

static void fct_blok_sgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 196 of file codelet_blok_sgemmsp.c.

References cpublok_sgemmsp().

◆ starpu_task_blok_sgemmsp()

void starpu_task_blok_sgemmsp ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  sideA,
pastix_coefside_t  sideB,
pastix_trans_t  trans,
SolverCblk cblk,
SolverCblk fcblk,
const SolverBlok blokA,
const SolverBlok blokB,
int  prio 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]sideATODO
[in]sideBTODO
[in]transTODO
[in]cblkTODO
[in]fcblkTODO
[in]blokATODO
[in]blokBTODO
[in]prioTODO

Definition at line 286 of file codelet_blok_sgemmsp.c.

References solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_blok_s::fcblknm, solver_blok_s::frownum, solver_blok_s::handler, solver_blok_s::lcblknm, solver_blok_s::lrownum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_getrf_sgemmsp(), starpu_task_potrf_sgemmsp(), and starpu_task_sytrf_sgemmsp().

◆ fct_blok_dgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 136 of file codelet_blok_dgemmsp.c.

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

◆ fct_blok_dgemmsp_cpu()

static void fct_blok_dgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 196 of file codelet_blok_dgemmsp.c.

References cpublok_dgemmsp().

◆ starpu_task_blok_dgemmsp()

void starpu_task_blok_dgemmsp ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  sideA,
pastix_coefside_t  sideB,
pastix_trans_t  trans,
SolverCblk cblk,
SolverCblk fcblk,
const SolverBlok blokA,
const SolverBlok blokB,
int  prio 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]sideATODO
[in]sideBTODO
[in]transTODO
[in]cblkTODO
[in]fcblkTODO
[in]blokATODO
[in]blokBTODO
[in]prioTODO

Definition at line 286 of file codelet_blok_dgemmsp.c.

References solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_blok_s::fcblknm, solver_blok_s::frownum, solver_blok_s::handler, solver_blok_s::lcblknm, solver_blok_s::lrownum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_getrf_dgemmsp(), starpu_task_potrf_dgemmsp(), and starpu_task_sytrf_dgemmsp().

◆ fct_blok_zgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 136 of file codelet_blok_zgemmsp.c.

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

◆ fct_blok_zgemmsp_cpu()

static void fct_blok_zgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 196 of file codelet_blok_zgemmsp.c.

References cpublok_zgemmsp().

◆ starpu_task_blok_zgemmsp()

void starpu_task_blok_zgemmsp ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  sideA,
pastix_coefside_t  sideB,
pastix_trans_t  trans,
SolverCblk cblk,
SolverCblk fcblk,
const SolverBlok blokA,
const SolverBlok blokB,
int  prio 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]sideATODO
[in]sideBTODO
[in]transTODO
[in]cblkTODO
[in]fcblkTODO
[in]blokATODO
[in]blokBTODO
[in]prioTODO

Definition at line 286 of file codelet_blok_zgemmsp.c.

References solver_cblk_s::cblktype, solver_cblk_s::fblokptr, solver_blok_s::fcblknm, solver_blok_s::frownum, solver_blok_s::handler, solver_blok_s::lcblknm, solver_blok_s::lrownum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_getrf_zgemmsp(), starpu_task_hetrf_zgemmsp(), starpu_task_potrf_zgemmsp(), starpu_task_pxtrf_zgemmsp(), and starpu_task_sytrf_zgemmsp().

◆ fct_blok_cgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_cgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGETRF.

◆ fct_blok_cgetrfsp_cpu()

static void fct_blok_cgetrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 184 of file codelet_blok_cgetrfsp.c.

References cpucblk_cgetrfsp1d_getrf().

◆ starpu_task_blok_cgetrf()

void starpu_task_blok_cgetrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 220 of file codelet_blok_cgetrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_cgetrfsp().

◆ fct_blok_sgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_sgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGETRF.

◆ fct_blok_sgetrfsp_cpu()

static void fct_blok_sgetrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 184 of file codelet_blok_sgetrfsp.c.

References cpucblk_sgetrfsp1d_getrf().

◆ starpu_task_blok_sgetrf()

void starpu_task_blok_sgetrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 220 of file codelet_blok_sgetrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_sgetrfsp().

◆ fct_blok_dgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_dgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGETRF.

◆ fct_blok_dgetrfsp_cpu()

static void fct_blok_dgetrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 184 of file codelet_blok_dgetrfsp.c.

References cpucblk_dgetrfsp1d_getrf().

◆ starpu_task_blok_dgetrf()

void starpu_task_blok_dgetrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 220 of file codelet_blok_dgetrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_dgetrfsp().

◆ fct_blok_zgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_zgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGETRF.

◆ fct_blok_zgetrfsp_cpu()

static void fct_blok_zgetrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 184 of file codelet_blok_zgetrfsp.c.

References cpucblk_zgetrfsp1d_getrf().

◆ starpu_task_blok_zgetrf()

void starpu_task_blok_zgetrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 220 of file codelet_blok_zgetrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zgetrfsp().

◆ 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.

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_chetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelHETRF.

◆ fct_blok_chetrfsp_cpu()

static void fct_blok_chetrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_chetrfsp.c.

References cpucblk_chetrfsp1d_hetrf().

◆ starpu_task_blok_chetrf()

void starpu_task_blok_chetrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_chetrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_chetrfsp().

◆ 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.

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_zhetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelHETRF.

◆ fct_blok_zhetrfsp_cpu()

static void fct_blok_zhetrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_zhetrfsp.c.

References cpucblk_zhetrfsp1d_hetrf().

◆ starpu_task_blok_zhetrf()

void starpu_task_blok_zhetrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_zhetrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zhetrfsp().

◆ fct_blok_cpotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_cpotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelPOTRF.

◆ fct_blok_cpotrfsp_cpu()

static void fct_blok_cpotrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_cpotrfsp.c.

References cpucblk_cpotrfsp1d_potrf().

◆ starpu_task_blok_cpotrf()

void starpu_task_blok_cpotrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_cpotrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_cpotrfsp().

◆ fct_blok_spotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_spotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelPOTRF.

◆ fct_blok_spotrfsp_cpu()

static void fct_blok_spotrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_spotrfsp.c.

References cpucblk_spotrfsp1d_potrf().

◆ starpu_task_blok_spotrf()

void starpu_task_blok_spotrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_spotrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_spotrfsp().

◆ fct_blok_dpotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_dpotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelPOTRF.

◆ fct_blok_dpotrfsp_cpu()

static void fct_blok_dpotrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_dpotrfsp.c.

References cpucblk_dpotrfsp1d_potrf().

◆ starpu_task_blok_dpotrf()

void starpu_task_blok_dpotrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_dpotrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_dpotrfsp().

◆ fct_blok_zpotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 126 of file codelet_blok_zpotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelPOTRF.

◆ fct_blok_zpotrfsp_cpu()

static void fct_blok_zpotrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_zpotrfsp.c.

References cpucblk_zpotrfsp1d_potrf().

◆ starpu_task_blok_zpotrf()

void starpu_task_blok_zpotrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_zpotrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zpotrfsp().

◆ fct_blok_cpxtrfsp_cpu()

static void fct_blok_cpxtrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_cpxtrfsp.c.

References cpucblk_cpxtrfsp1d_pxtrf().

◆ starpu_task_blok_cpxtrf()

void starpu_task_blok_cpxtrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_cpxtrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_cpxtrfsp().

◆ fct_blok_zpxtrfsp_cpu()

static void fct_blok_zpxtrfsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 183 of file codelet_blok_zpxtrfsp.c.

References cpucblk_zpxtrfsp1d_pxtrf().

◆ starpu_task_blok_zpxtrf()

void starpu_task_blok_zpxtrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 218 of file codelet_blok_zpxtrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zpxtrfsp().

◆ fct_blok_cscalo_cost()

static pastix_fixdbl_t fct_blok_cscalo_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 81 of file codelet_blok_cscalo.c.

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

◆ starpu_task_blok_cscalo()

void starpu_task_blok_cscalo ( sopalin_data_t *  sopalin_data,
pastix_trans_t  trans,
const SolverCblk cblk,
SolverBlok blok,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]transTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 169 of file codelet_blok_cscalo.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and pastix_int_t.

Referenced by starpu_task_hetrf_cgemmsp(), and starpu_task_sytrf_cgemmsp().

◆ fct_blok_sscalo_cost()

static pastix_fixdbl_t fct_blok_sscalo_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 81 of file codelet_blok_sscalo.c.

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

◆ starpu_task_blok_sscalo()

void starpu_task_blok_sscalo ( sopalin_data_t *  sopalin_data,
pastix_trans_t  trans,
const SolverCblk cblk,
SolverBlok blok,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]transTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 169 of file codelet_blok_sscalo.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and pastix_int_t.

Referenced by starpu_task_sytrf_sgemmsp().

◆ fct_blok_dscalo_cost()

static pastix_fixdbl_t fct_blok_dscalo_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 81 of file codelet_blok_dscalo.c.

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

◆ starpu_task_blok_dscalo()

void starpu_task_blok_dscalo ( sopalin_data_t *  sopalin_data,
pastix_trans_t  trans,
const SolverCblk cblk,
SolverBlok blok,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]transTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 169 of file codelet_blok_dscalo.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and pastix_int_t.

Referenced by starpu_task_sytrf_dgemmsp().

◆ fct_blok_zscalo_cost()

static pastix_fixdbl_t fct_blok_zscalo_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 81 of file codelet_blok_zscalo.c.

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

◆ starpu_task_blok_zscalo()

void starpu_task_blok_zscalo ( sopalin_data_t *  sopalin_data,
pastix_trans_t  trans,
const SolverCblk cblk,
SolverBlok blok,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]transTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 169 of file codelet_blok_zscalo.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and pastix_int_t.

Referenced by starpu_task_hetrf_zgemmsp(), and starpu_task_sytrf_zgemmsp().

◆ starpu_task_blok_csytrf()

void starpu_task_blok_csytrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 216 of file codelet_blok_csytrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_csytrfsp().

◆ starpu_task_blok_ssytrf()

void starpu_task_blok_ssytrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 216 of file codelet_blok_ssytrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_ssytrfsp().

◆ starpu_task_blok_dsytrf()

void starpu_task_blok_dsytrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 216 of file codelet_blok_dsytrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_dsytrfsp().

◆ starpu_task_blok_zsytrf()

void starpu_task_blok_zsytrf ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 216 of file codelet_blok_zsytrfsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zsytrfsp().

◆ fct_blok_ctrsmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 135 of file codelet_blok_ctrsmsp.c.

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

◆ fct_blok_ctrsmsp_cpu()

static void fct_blok_ctrsmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_ctrsmsp.c.

References cpublok_ctrsmsp().

◆ starpu_task_blok_ctrsmsp()

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 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]coefTODO
[in]sideTODO
[in]uploTODO
[in]transTODO
[in]diagTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 275 of file codelet_blok_ctrsmsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_cgetrfsp(), starpu_task_chetrfsp(), starpu_task_cpotrfsp(), starpu_task_cpxtrfsp(), and starpu_task_csytrfsp().

◆ fct_blok_strsmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 135 of file codelet_blok_strsmsp.c.

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

◆ fct_blok_strsmsp_cpu()

static void fct_blok_strsmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_strsmsp.c.

References cpublok_strsmsp().

◆ starpu_task_blok_strsmsp()

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 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]coefTODO
[in]sideTODO
[in]uploTODO
[in]transTODO
[in]diagTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 275 of file codelet_blok_strsmsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_sgetrfsp(), starpu_task_spotrfsp(), and starpu_task_ssytrfsp().

◆ fct_blok_dtrsmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 135 of file codelet_blok_dtrsmsp.c.

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

◆ fct_blok_dtrsmsp_cpu()

static void fct_blok_dtrsmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_dtrsmsp.c.

References cpublok_dtrsmsp().

◆ starpu_task_blok_dtrsmsp()

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 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]coefTODO
[in]sideTODO
[in]uploTODO
[in]transTODO
[in]diagTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 275 of file codelet_blok_dtrsmsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_dgetrfsp(), starpu_task_dpotrfsp(), and starpu_task_dsytrfsp().

◆ fct_blok_ztrsmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 135 of file codelet_blok_ztrsmsp.c.

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

◆ fct_blok_ztrsmsp_cpu()

static void fct_blok_ztrsmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 193 of file codelet_blok_ztrsmsp.c.

References cpublok_ztrsmsp().

◆ starpu_task_blok_ztrsmsp()

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 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]coefTODO
[in]sideTODO
[in]uploTODO
[in]transTODO
[in]diagTODO
[in]cblkTODO
[in]blokTODO
[in]prioTODO

Definition at line 275 of file codelet_blok_ztrsmsp.c.

References solver_cblk_s::fblokptr, solver_blok_s::handler, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_task_zgetrfsp(), starpu_task_zhetrfsp(), starpu_task_zpotrfsp(), starpu_task_zpxtrfsp(), and starpu_task_zsytrfsp().

◆ fct_cblk_cadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 130 of file codelet_cblk_cadd.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGEADDCblkFRFR.

◆ fct_cblk_cadd_cpu()

static void fct_cblk_cadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 188 of file codelet_cblk_cadd.c.

References cpucblk_cadd().

◆ starpu_task_cblk_cadd_recv()

void starpu_task_cblk_cadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 273 of file codelet_cblk_cadd.c.

Referenced by starpu_task_cadd_1dp_recv().

◆ starpu_task_cblk_cadd_fanin()

void starpu_task_cblk_cadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]prioThe task priority.

Definition at line 356 of file codelet_cblk_cadd.c.

References solver_cblk_s::cblktype, solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_cadd_1dp_fanin().

◆ fct_cblk_sadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 130 of file codelet_cblk_sadd.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGEADDCblkFRFR.

◆ fct_cblk_sadd_cpu()

static void fct_cblk_sadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 188 of file codelet_cblk_sadd.c.

References cpucblk_sadd().

◆ starpu_task_cblk_sadd_recv()

void starpu_task_cblk_sadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 273 of file codelet_cblk_sadd.c.

Referenced by starpu_task_sadd_1dp_recv().

◆ starpu_task_cblk_sadd_fanin()

void starpu_task_cblk_sadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]prioThe task priority.

Definition at line 356 of file codelet_cblk_sadd.c.

References solver_cblk_s::cblktype, solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_sadd_1dp_fanin().

◆ fct_cblk_dadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 130 of file codelet_cblk_dadd.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGEADDCblkFRFR.

◆ fct_cblk_dadd_cpu()

static void fct_cblk_dadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 188 of file codelet_cblk_dadd.c.

References cpucblk_dadd().

◆ starpu_task_cblk_dadd_recv()

void starpu_task_cblk_dadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 273 of file codelet_cblk_dadd.c.

Referenced by starpu_task_dadd_1dp_recv().

◆ starpu_task_cblk_dadd_fanin()

void starpu_task_cblk_dadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]prioThe task priority.

Definition at line 356 of file codelet_cblk_dadd.c.

References solver_cblk_s::cblktype, solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_dadd_1dp_fanin().

◆ fct_cblk_zadd_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 130 of file codelet_cblk_zadd.c.

References cblk_colnbr(), cost(), pastix_int_t, and PastixKernelGEADDCblkFRFR.

◆ fct_cblk_zadd_cpu()

static void fct_cblk_zadd_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 188 of file codelet_cblk_zadd.c.

References cpucblk_zadd().

◆ starpu_task_cblk_zadd_recv()

void starpu_task_cblk_zadd_recv ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 273 of file codelet_cblk_zadd.c.

Referenced by starpu_task_zadd_1dp_recv().

◆ starpu_task_cblk_zadd_fanin()

void starpu_task_cblk_zadd_fanin ( sopalin_data_t *  sopalin_data,
pastix_coefside_t  side,
const SolverCblk cblk,
int  prio 
)

Insert the task to add a fanin cblk on the emitter side. Note that this task is submitted only to emit a send to the owner of the associated recv cblk that will perform the add. Thus, the task is always submitted but never executed.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in]cblkThe column block of the matrix.
[in]prioThe task priority.

Definition at line 356 of file codelet_cblk_zadd.c.

References solver_cblk_s::cblktype, solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zadd_1dp_fanin().

◆ fct_cblk_cgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 139 of file codelet_cblk_cgemmsp.c.

References blok_rownbr(), cblk_colnbr(), cost(), pastix_int_t, PastixKernelGEMMCblk2d2d, and PastixUCoef.

◆ fct_cblk_cgemmsp_cpu()

static void fct_cblk_cgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 201 of file codelet_cblk_cgemmsp.c.

References cpucblk_cgemmsp().

◆ starpu_task_cblk_cgemmsp()

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 
)

◆ fct_cblk_sgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 139 of file codelet_cblk_sgemmsp.c.

References blok_rownbr(), cblk_colnbr(), cost(), pastix_int_t, PastixKernelGEMMCblk2d2d, and PastixUCoef.

◆ fct_cblk_sgemmsp_cpu()

static void fct_cblk_sgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 201 of file codelet_cblk_sgemmsp.c.

References cpucblk_sgemmsp().

◆ starpu_task_cblk_sgemmsp()

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 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]sideATODO
[in]sideBTODO
[in]transTODO
[in]cblkTODO
[in]blok
[in]fcblkTODO
[in]prioTODO

Definition at line 283 of file codelet_cblk_sgemmsp.c.

References solver_cblk_s::cblktype, solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_sgetrf_sp1dplus_ll(), starpu_sgetrf_sp1dplus_rl(), starpu_spotrf_sp1dplus_ll(), starpu_spotrf_sp1dplus_rl(), starpu_ssytrf_sp1dplus_ll(), starpu_ssytrf_sp1dplus_rl(), starpu_task_getrf_sgemmsp(), starpu_task_potrf_sgemmsp(), and starpu_task_sytrf_sgemmsp().

◆ fct_cblk_dgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 139 of file codelet_cblk_dgemmsp.c.

References blok_rownbr(), cblk_colnbr(), cost(), pastix_int_t, PastixKernelGEMMCblk2d2d, and PastixUCoef.

◆ fct_cblk_dgemmsp_cpu()

static void fct_cblk_dgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 201 of file codelet_cblk_dgemmsp.c.

References cpucblk_dgemmsp().

◆ starpu_task_cblk_dgemmsp()

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 
)

StarPU GPU implementation.

TODO

Parameters
[in]sopalin_dataTODO
[in]sideATODO
[in]sideBTODO
[in]transTODO
[in]cblkTODO
[in]blok
[in]fcblkTODO
[in]prioTODO

Definition at line 283 of file codelet_cblk_dgemmsp.c.

References solver_cblk_s::cblktype, solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_dgetrf_sp1dplus_ll(), starpu_dgetrf_sp1dplus_rl(), starpu_dpotrf_sp1dplus_ll(), starpu_dpotrf_sp1dplus_rl(), starpu_dsytrf_sp1dplus_ll(), starpu_dsytrf_sp1dplus_rl(), starpu_task_getrf_dgemmsp(), starpu_task_potrf_dgemmsp(), and starpu_task_sytrf_dgemmsp().

◆ fct_cblk_zgemmsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 139 of file codelet_cblk_zgemmsp.c.

References blok_rownbr(), cblk_colnbr(), cost(), pastix_int_t, PastixKernelGEMMCblk2d2d, and PastixUCoef.

◆ fct_cblk_zgemmsp_cpu()

static void fct_cblk_zgemmsp_cpu ( void *  descr[],
void *  cl_arg 
)
static

StarPU CPU implementation.

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 201 of file codelet_cblk_zgemmsp.c.

References cpucblk_zgemmsp().

◆ starpu_task_cblk_zgemmsp()

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 
)

◆ fct_cblk_cgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_cgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelGETRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_cgetrfsp()

void starpu_task_cblk_cgetrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 223 of file codelet_cblk_cgetrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_cgetrfsp().

◆ fct_cblk_sgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_sgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelGETRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_sgetrfsp()

void starpu_task_cblk_sgetrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 223 of file codelet_cblk_sgetrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_sgetrfsp().

◆ fct_cblk_dgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_dgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelGETRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_dgetrfsp()

void starpu_task_cblk_dgetrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 223 of file codelet_cblk_dgetrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_dgetrfsp().

◆ fct_cblk_zgetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_zgetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelGETRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_zgetrfsp()

void starpu_task_cblk_zgetrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 223 of file codelet_cblk_zgetrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zgetrfsp().

◆ fct_cblk_chetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 129 of file codelet_cblk_chetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelHETRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_chetrfsp()

void starpu_task_cblk_chetrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 229 of file codelet_cblk_chetrfsp.c.

References solver_cblk_s::handler.

Referenced by starpu_chetrf_sp1dplus_ll(), starpu_chetrf_sp1dplus_rl(), and starpu_task_chetrfsp().

◆ fct_cblk_zhetrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 129 of file codelet_cblk_zhetrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelHETRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_zhetrfsp()

void starpu_task_cblk_zhetrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 229 of file codelet_cblk_zhetrfsp.c.

References solver_cblk_s::handler.

Referenced by starpu_task_zhetrfsp(), starpu_zhetrf_sp1dplus_ll(), and starpu_zhetrf_sp1dplus_rl().

◆ fct_cblk_cpotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_cpotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelPOTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_cpotrfsp()

void starpu_task_cblk_cpotrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 221 of file codelet_cblk_cpotrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_cpotrf_sp1dplus_ll(), starpu_cpotrf_sp1dplus_rl(), and starpu_task_cpotrfsp().

◆ fct_cblk_spotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_spotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelPOTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_spotrfsp()

void starpu_task_cblk_spotrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 221 of file codelet_cblk_spotrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_spotrf_sp1dplus_ll(), starpu_spotrf_sp1dplus_rl(), and starpu_task_spotrfsp().

◆ fct_cblk_dpotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_dpotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelPOTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_dpotrfsp()

void starpu_task_cblk_dpotrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 221 of file codelet_cblk_dpotrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_dpotrf_sp1dplus_ll(), starpu_dpotrf_sp1dplus_rl(), and starpu_task_dpotrfsp().

◆ fct_cblk_zpotrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 128 of file codelet_cblk_zpotrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelPOTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_zpotrfsp()

void starpu_task_cblk_zpotrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 221 of file codelet_cblk_zpotrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zpotrfsp(), starpu_zpotrf_sp1dplus_ll(), and starpu_zpotrf_sp1dplus_rl().

◆ fct_cblk_cpxtrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 127 of file codelet_cblk_cpxtrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelPXTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_cpxtrfsp()

void starpu_task_cblk_cpxtrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 220 of file codelet_cblk_cpxtrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_cpxtrf_sp1dplus_ll(), starpu_cpxtrf_sp1dplus_rl(), and starpu_task_cpxtrfsp().

◆ fct_cblk_zpxtrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 127 of file codelet_cblk_zpxtrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelPXTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_zpxtrfsp()

void starpu_task_cblk_zpxtrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 220 of file codelet_cblk_zpxtrfsp.c.

References solver_cblk_s::handler, and solver_cblk_s::ownerid.

Referenced by starpu_task_zpxtrfsp(), starpu_zpxtrf_sp1dplus_ll(), and starpu_zpxtrf_sp1dplus_rl().

◆ fct_cblk_csytrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 129 of file codelet_cblk_csytrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelSYTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_csytrfsp()

void starpu_task_cblk_csytrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 229 of file codelet_cblk_csytrfsp.c.

References solver_cblk_s::handler.

Referenced by starpu_csytrf_sp1dplus_ll(), starpu_csytrf_sp1dplus_rl(), and starpu_task_csytrfsp().

◆ fct_cblk_ssytrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 129 of file codelet_cblk_ssytrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelSYTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_ssytrfsp()

void starpu_task_cblk_ssytrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 229 of file codelet_cblk_ssytrfsp.c.

References solver_cblk_s::handler.

Referenced by starpu_ssytrf_sp1dplus_ll(), starpu_ssytrf_sp1dplus_rl(), and starpu_task_ssytrfsp().

◆ fct_cblk_dsytrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 129 of file codelet_cblk_dsytrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelSYTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_dsytrfsp()

void starpu_task_cblk_dsytrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 229 of file codelet_cblk_dsytrfsp.c.

References solver_cblk_s::handler.

Referenced by starpu_dsytrf_sp1dplus_ll(), starpu_dsytrf_sp1dplus_rl(), and starpu_task_dsytrfsp().

◆ fct_cblk_zsytrfsp_cost()

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

Cost model function.

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

Parameters
[in]taskTODO
[in]archTODO
[in]nimplTODO
Return values
TODO

Definition at line 129 of file codelet_cblk_zsytrfsp.c.

References cblk_colnbr(), cost(), pastix_int_t, PastixKernelSYTRF, and PastixKernelTRSMCblk2d.

◆ starpu_task_cblk_zsytrfsp()

void starpu_task_cblk_zsytrfsp ( sopalin_data_t *  sopalin_data,
SolverCblk cblk,
int  prio 
)

TODO.

Parameters
[in]sopalin_dataTODO
[in]cblkTODO
[in]prioTODO

Definition at line 229 of file codelet_cblk_zsytrfsp.c.

References solver_cblk_s::handler.

Referenced by starpu_task_zsytrfsp(), starpu_zsytrf_sp1dplus_ll(), and starpu_zsytrf_sp1dplus_rl().

◆ starpu_stask_blok_cadd_fwd_recv()

void starpu_stask_blok_cadd_fwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 128 of file codelet_solve_cadd.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_sadd_fwd_recv()

void starpu_stask_blok_sadd_fwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 128 of file codelet_solve_sadd.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_dadd_fwd_recv()

void starpu_stask_blok_dadd_fwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 128 of file codelet_solve_dadd.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_zadd_fwd_recv()

void starpu_stask_blok_zadd_fwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
const SolverCblk cblk,
SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 128 of file codelet_solve_zadd.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_ccpy_bwd_recv()

void starpu_stask_blok_ccpy_bwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
SolverCblk cblk,
const SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 135 of file codelet_solve_ccpy.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_scpy_bwd_recv()

void starpu_stask_blok_scpy_bwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
SolverCblk cblk,
const SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 135 of file codelet_solve_scpy.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_dcpy_bwd_recv()

void starpu_stask_blok_dcpy_bwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
SolverCblk cblk,
const SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 135 of file codelet_solve_dcpy.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_zcpy_bwd_recv()

void starpu_stask_blok_zcpy_bwd_recv ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
SolverCblk cblk,
const SolverCblk fcblk,
int  prio 
)

Insert the task to add a fanin cblk on the receiver side (The fanin is seen on this side as the RECV cblk). Note that the caller always execute the task.

Parameters
[in]sopalin_dataSolver matrix information structure that will guide the algorithm.
[in]sideDefine which side of the cblk must be tested.
  • PastixLCoef if lower part only
  • PastixUCoef if upper part only
  • PastixLUCoef if both sides.
[in,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[in]cblkThe column block of the matrix.
[in]fcblkThe facing column block of the matrix.
[in]prioThe task priority.

Definition at line 135 of file codelet_solve_zcpy.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_cgemm()

void starpu_stask_blok_cgemm ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
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,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[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 157 of file codelet_solve_cgemm.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_sgemm()

void starpu_stask_blok_sgemm ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
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,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[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 157 of file codelet_solve_sgemm.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_dgemm()

void starpu_stask_blok_dgemm ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
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,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[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 157 of file codelet_solve_dgemm.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_stask_blok_zgemm()

void starpu_stask_blok_zgemm ( sopalin_data_t *  sopalin_data,
pastix_rhs_t  rhsb,
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,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[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 157 of file codelet_solve_zgemm.c.

References cblk_colnbr(), solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

◆ starpu_sparse_matrix_init()

void starpu_sparse_matrix_init ( SolverMatrix solvmtx,
pastix_mtxtype_t  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]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.
[in]flttypeThe memory size of the arithmetic used to store the matrix coefficients.

Definition at line 224 of file starpu_sparse_matrix.c.

References solver_matrix_s::gbloknbr, solver_matrix_s::gcblknbr, solver_matrix_s::gfaninbloknbr, solver_matrix_s::gfanincblknbr, starpu_sparse_matrix_desc_s::mpitag, pastix_int_t, pastix_starpu_tag_book(), starpu_sparse_matrix_destroy(), and starpu_sparse_matrix_desc_s::typesze.

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 550 of file starpu_sparse_matrix.c.

References solver_matrix_s::cblkmin2d, solver_matrix_s::cblknbr, solver_matrix_s::cblktab, starpu_sparse_matrix_desc_s::cblktab_handle, starpu_sparse_matrix_desc_s::mpitag, solver_cblk_s::ownerid, pastix_int_t, pastix_starpu_cblk_destroy(), pastix_starpu_tag_release(), and starpu_sparse_matrix_desc_s::solvmtx.

Referenced by coeftabExit(), and starpu_sparse_matrix_init().

◆ starpu_sparse_matrix_getoncpu()

◆ starpu_rhs_init()

void starpu_rhs_init ( SolverMatrix solvmtx,
pastix_rhs_t  rhsb,
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,out]rhsbThe pointer to the rhs data structure that holds the vectors of the right hand side.
[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 152 of file starpu_rhs.c.

References pastix_rhs_s::b, solver_matrix_s::cblknbr, starpu_rhs_desc_s::dataptr, solver_matrix_s::gcblknbr, solver_matrix_s::gfanincblknbr, starpu_rhs_desc_s::mpitag, pastix_rhs_s::n, starpu_rhs_desc_s::ncol, pastix_int_t, pastix_starpu_tag_book(), starpu_rhs_destroy(), and starpu_rhs_desc_s::typesze.

Referenced by starpu_cdiag(), starpu_ctrsm(), starpu_ddiag(), starpu_dtrsm(), starpu_sdiag(), starpu_strsm(), starpu_zdiag(), and starpu_ztrsm().

◆ starpu_rhs_destroy()

void starpu_rhs_destroy ( starpu_rhs_desc_t rhsdesc)

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]rhsdescThe descriptor to free.

Definition at line 254 of file starpu_rhs.c.

References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, starpu_rhs_desc_s::handletab, starpu_rhs_desc_s::mpitag, pastix_int_t, pastix_starpu_tag_release(), and starpu_rhs_desc_s::solvmtx.

Referenced by pastixRhsFinalize(), and starpu_rhs_init().

◆ starpu_rhs_getoncpu()

void starpu_rhs_getoncpu ( starpu_rhs_desc_t rhsdesc)

Submit asynchronous calls to retrieve the data on main memory.

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

Definition at line 216 of file starpu_rhs.c.

References solver_matrix_s::cblknbr, solver_matrix_s::cblktab, starpu_rhs_desc_s::handletab, solver_cblk_s::ownerid, pastix_int_t, and starpu_rhs_desc_s::solvmtx.

Referenced by starpu_cdiag(), starpu_ctrsm(), starpu_ddiag(), starpu_dtrsm(), starpu_sdiag(), starpu_strsm(), starpu_zdiag(), and starpu_ztrsm().

◆ starpu_sparse_cblk_wont_use()

void starpu_sparse_cblk_wont_use ( pastix_coefside_t  side,
SolverCblk cblk 
)

Submit asynchronous calls to retrieve the data on main memory.

Parameters
[in]sideThe cblk for which the data needs to be flushed.
[in,out]cblkThe cblk for which the data needs to be flushed.

Definition at line 417 of file starpu_sparse_matrix.c.

References solver_cblk_s::handler, PastixLCoef, and PastixUCoef.

Referenced by starpu_cgetrf_sp1dplus_ll(), starpu_cgetrf_sp1dplus_rl(), starpu_cgetrf_sp2d_ll(), starpu_cgetrf_sp2d_rl(), starpu_chetrf_sp1dplus_ll(), starpu_chetrf_sp1dplus_rl(), starpu_chetrf_sp2d_ll(), starpu_chetrf_sp2d_rl(), starpu_cpotrf_sp1dplus_ll(), starpu_cpotrf_sp1dplus_rl(), starpu_cpotrf_sp2d_ll(), starpu_cpotrf_sp2d_rl(), starpu_cpxtrf_sp1dplus_ll(), starpu_cpxtrf_sp1dplus_rl(), starpu_cpxtrf_sp2d_ll(), starpu_cpxtrf_sp2d_rl(), starpu_csytrf_sp1dplus_ll(), starpu_csytrf_sp1dplus_rl(), starpu_csytrf_sp2d_ll(), starpu_csytrf_sp2d_rl(), starpu_dgetrf_sp1dplus_ll(), starpu_dgetrf_sp1dplus_rl(), starpu_dgetrf_sp2d_ll(), starpu_dgetrf_sp2d_rl(), starpu_dpotrf_sp1dplus_ll(), starpu_dpotrf_sp1dplus_rl(), starpu_dpotrf_sp2d_ll(), starpu_dpotrf_sp2d_rl(), starpu_dsytrf_sp1dplus_ll(), starpu_dsytrf_sp1dplus_rl(), starpu_dsytrf_sp2d_ll(), starpu_dsytrf_sp2d_rl(), starpu_sgetrf_sp1dplus_ll(), starpu_sgetrf_sp1dplus_rl(), starpu_sgetrf_sp2d_ll(), starpu_sgetrf_sp2d_rl(), starpu_spotrf_sp1dplus_ll(), starpu_spotrf_sp1dplus_rl(), starpu_spotrf_sp2d_ll(), starpu_spotrf_sp2d_rl(), starpu_ssytrf_sp1dplus_ll(), starpu_ssytrf_sp1dplus_rl(), starpu_ssytrf_sp2d_ll(), starpu_ssytrf_sp2d_rl(), starpu_zgetrf_sp1dplus_ll(), starpu_zgetrf_sp1dplus_rl(), starpu_zgetrf_sp2d_ll(), starpu_zgetrf_sp2d_rl(), starpu_zhetrf_sp1dplus_ll(), starpu_zhetrf_sp1dplus_rl(), starpu_zhetrf_sp2d_ll(), starpu_zhetrf_sp2d_rl(), starpu_zpotrf_sp1dplus_ll(), starpu_zpotrf_sp1dplus_rl(), starpu_zpotrf_sp2d_ll(), starpu_zpotrf_sp2d_rl(), starpu_zpxtrf_sp1dplus_ll(), starpu_zpxtrf_sp1dplus_rl(), starpu_zpxtrf_sp2d_ll(), starpu_zpxtrf_sp2d_rl(), starpu_zsytrf_sp1dplus_ll(), starpu_zsytrf_sp1dplus_rl(), starpu_zsytrf_sp2d_ll(), and starpu_zsytrf_sp2d_rl().

◆ 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 IPARM_GPU_NBR, IPARM_THREAD_NBR, pastix(), pastix_gendirectories(), pastix_int_t, pastix_starpu_interface_init(), and pastix_starpu_tag_init().

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(), pastix_starpu_interface_fini(), and profiling_display_allinfo().

Referenced by pastixFinalize().

◆ pastix_starpu_tag_init()

int pastix_starpu_tag_init ( pastix_data_t pastix_data)

Initialize the StarPU tags manager.

MPI tag management

Parameters
[in]pastix_dataThe main pastix_data structure to provide the MPI communicator.
Return values
TODO

Definition at line 219 of file starpu_tags.c.

References PASTIX_SUCCESS.

Referenced by pastix_starpu_init().

◆ pastix_starpu_tag_book()

int64_t pastix_starpu_tag_book ( int64_t  nbtags)

Book a range of StarPU unique tags of size nbtags.

This function returns the minimal tag value available to allow the registration of nbtags data in a continuous range.

Note that this function must be called exactly the same way on all nodes to make sure the tags are identical from one node to another.

Parameters
[in]nbtagsThe number of tags required to register the sparse matrix or right hand side.
Returns
V, the minimal tag value to use. The range [V:V+nbtags-1] is booked.

Definition at line 246 of file starpu_tags.c.

Referenced by starpu_rhs_init(), and starpu_sparse_matrix_init().

◆ pastix_starpu_tag_release()

void pastix_starpu_tag_release ( int64_t  min)

Release the set of tags starting by min.

This function releases the range of tags that starts by the min value.

Parameters
[in]minThe initial value in the range

Definition at line 264 of file starpu_tags.c.

Referenced by starpu_rhs_destroy(), and starpu_sparse_matrix_destroy().

◆ pastix_starpu_register()

void pastix_starpu_register ( starpu_data_handle_t *  handleptr,
const 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 644 of file pastix_starpu_interface.c.

References cblk_colnbr(), solver_cblk_s::cblktype, solver_cblk_s::fblokptr, pastix_starpu_interface_s::id, PASTIX_STARPU_INTERFACE_ID, PastixLUCoef, and solver_cblk_s::stride.

◆ pastix_starpu_cblk_destroy()

void pastix_starpu_cblk_destroy ( int  is_owner,
SolverCblk cblk,
starpu_cblk_t cblkhandle 
)

Destroy a single cblk StarPU data structure of the sparse matrix.

Parameters
[in]is_ownerBoolean to specify if the calling process owns the cblk or not
[in,out]cblkPointer to the cblk data structure
[in,out]starpu_cblkPointer to the starpu data structure associated to the cblk

Definition at line 492 of file starpu_sparse_matrix.c.

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

Referenced by starpu_sparse_matrix_destroy().

Variable Documentation

◆ starpu_blok_cscalo_model

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

Definition at line 81 of file codelet_blok_cscalo.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 81 of file codelet_blok_sscalo.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 81 of file codelet_blok_dscalo.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 81 of file codelet_blok_zscalo.c.

◆ pastix_starpu_interface_ops [1/2]

struct starpu_data_interface_ops pastix_starpu_interface_ops
extern

StarPU Interface to handle cblks and bloks.

StarPU Interface to handle cblks and bloks.

Definition at line 1 of file pastix_starpu_interface.c.

Referenced by pastix_starpu_interface_fini(), and pastix_starpu_interface_init().

◆ pastix_starpu_interface_ops [2/2]

struct starpu_data_interface_ops pastix_starpu_interface_ops
Initial value:
= {
.register_data_handle = psi_register_data_handle,
.allocate_data_on_node = psi_allocate_data_on_node,
.free_data_on_node = psi_free_data_on_node,
.init = psi_init,
.copy_methods = &psi_copy_methods,
.to_pointer = psi_to_pointer,
.get_size = psi_get_size,
.get_alloc_size = psi_get_alloc_size,
.footprint = psi_footprint,
.alloc_footprint = psi_alloc_footprint,
.compare = psi_compare,
.alloc_compare = psi_alloc_compare,
.display = psi_display,
.describe = psi_describe,
.pack_data = psi_pack_data,
.unpack_data = psi_unpack_data,
.interfaceid = STARPU_UNKNOWN_INTERFACE_ID,
.interface_size = sizeof( pastix_starpu_interface_t ),
.dontcache = 0,
.name = "PASTIX_STARPU_INTERFACE"
}
struct pastix_starpu_interface_s pastix_starpu_interface_t
Interface data structure to register the pieces of data in StarPU.

TODO.

StarPU Interface to handle cblks and bloks.

Definition at line 1 of file pastix_starpu_interface.c.

Referenced by pastix_starpu_interface_fini(), and pastix_starpu_interface_init().