PaStiX Handbook 6.4.0
Loading...
Searching...
No Matches
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.
 
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 void fct_blok_zadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_blok_cadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_blok_dadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_blok_sadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_blok_zgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
static void fct_blok_cgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
static void fct_blok_dgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
static void fct_blok_sgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
static void fct_blok_zgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_zgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_cgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_cgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_dgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_dgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_sgetrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_sgetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_chetrfsp_cpu (void *descr[], void *cl_arg)
 Functions to profile the codelet.
 
void starpu_task_blok_chetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_zhetrfsp_cpu (void *descr[], void *cl_arg)
 Functions to profile the codelet.
 
void starpu_task_blok_zhetrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_zpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_zpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_cpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_cpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_dpotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_dpotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_spotrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_spotrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_cpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_cpxtrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_zpxtrfsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_zpxtrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
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.
 
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.
 
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.
 
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.
 
void starpu_task_blok_zsytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_blok_csytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_blok_dsytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_blok_ssytrf (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
static void fct_blok_ztrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_ztrsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 StarPU GPU implementation.
 
static void fct_blok_ctrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_ctrsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 StarPU GPU implementation.
 
static void fct_blok_dtrsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_dtrsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 StarPU GPU implementation.
 
static void fct_blok_strsmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_blok_strsmsp (sopalin_data_t *sopalin_data, pastix_coefside_t coef, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, const SolverCblk *cblk, SolverBlok *blok, int prio)
 StarPU GPU implementation.
 
static void fct_cblk_zadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_cblk_cadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_cblk_dadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_cblk_sadd_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
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.
 
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.
 
static void fct_cblk_zgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_cblk_zgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 StarPU GPU implementation.
 
static void fct_cblk_cgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_cblk_cgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 StarPU GPU implementation.
 
static void fct_cblk_dgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_cblk_dgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 StarPU GPU implementation.
 
static void fct_cblk_sgemmsp_cpu (void *descr[], void *cl_arg)
 StarPU CPU implementation.
 
void starpu_task_cblk_sgemmsp (sopalin_data_t *sopalin_data, pastix_coefside_t sideA, pastix_coefside_t sideB, pastix_trans_t trans, const SolverCblk *cblk, const SolverBlok *blok, SolverCblk *fcblk, int prio)
 StarPU GPU implementation.
 
void starpu_task_cblk_zgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_cgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_dgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_sgetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_chetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_zhetrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_zpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_cpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_dpotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_spotrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_cpxtrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_zpxtrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_zsytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_csytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_dsytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
void starpu_task_cblk_ssytrfsp (sopalin_data_t *sopalin_data, SolverCblk *cblk, int prio)
 TODO.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
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.
 
void starpu_sparse_matrix_destroy (starpu_sparse_matrix_desc_t *desc)
 Free the StarPU descriptor of the sparse matrix.
 
void starpu_sparse_matrix_getoncpu (starpu_sparse_matrix_desc_t *desc)
 Submit asynchronous calls to retrieve the data on main memory.
 
void starpu_rhs_init (SolverMatrix *solvmtx, pastix_rhs_t rhsb, int typesze, int nodes, int myrank)
 Generate the StarPU descriptor of the dense matrix.
 
void starpu_rhs_destroy (starpu_rhs_desc_t *desc)
 Free the StarPU descriptor of the dense matrix.
 
void starpu_rhs_getoncpu (starpu_rhs_desc_t *desc)
 Submit asynchronous calls to retrieve the data on main memory.
 
void starpu_sparse_cblk_wont_use (pastix_coefside_t coef, SolverCblk *cblk)
 Submit asynchronous calls to retrieve the data on main memory.
 
void pastix_starpu_init (pastix_data_t *pastix, int *argc, char **argv[], const int *bindtab)
 Startup the StarPU runtime system.
 
void pastix_starpu_finalize (pastix_data_t *pastix)
 Finalize the StarPU runtime system.
 
int pastix_starpu_tag_init (pastix_data_t *pastix_data)
 Initialize the StarPU tags manager.
 
int64_t pastix_starpu_tag_book (int64_t nbtags)
 Book a range of StarPU unique tags of size nbtags.
 
void pastix_starpu_tag_release (int64_t min)
 Release the set of tags starting by min.
 
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.
 
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_zscalo_model
 Functions to profile the codelet.
 
static struct starpu_perfmodel starpu_blok_cscalo_model
 Functions to profile the codelet.
 
static struct starpu_perfmodel starpu_blok_dscalo_model
 Functions to profile the codelet.
 
static struct starpu_perfmodel starpu_blok_sscalo_model
 Functions to profile the codelet.
 
struct starpu_data_interface_ops pastix_starpu_interface_ops
 StarPU Interface to handle cblks and bloks.
 
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.
 
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.
 

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

Macro Definition Documentation

◆ PASTIX_STARPU_INTERFACE_ID

#define PASTIX_STARPU_INTERFACE_ID   pastix_starpu_interface_ops.interfaceid

Alias to get the Interface id.

Definition at line 246 of file pastix_starpu.h.

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_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 195 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 288 of file codelet_blok_zadd.c.

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

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 380 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_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 195 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 288 of file codelet_blok_cadd.c.

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

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 380 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_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 195 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 288 of file codelet_blok_dadd.c.

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

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 380 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_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 195 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 288 of file codelet_blok_sadd.c.

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

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 380 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_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 197 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 287 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_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 197 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 287 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_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 197 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 287 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_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 197 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 287 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_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 186 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 222 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_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 186 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 222 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_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 186 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 222 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_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 186 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 222 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_chetrfsp_cpu()

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

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

StarPU CPU implementation

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 185 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 220 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_cpu()

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

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

StarPU CPU implementation

Parameters
[in]descrTODO
[in]cl_argTODO

Definition at line 185 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 220 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_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 185 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 220 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_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 185 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 220 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_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 185 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 220 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_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 185 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 220 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_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 185 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 220 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 185 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 220 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_zscalo_cpu()

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

StarPU CPU implementation.

Definition at line 128 of file codelet_blok_zscalo.c.

References cpublok_zscalo().

◆ 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 171 of file codelet_blok_zscalo.c.

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

Referenced by starpu_task_hetrf_zgemmsp(), and starpu_task_sytrf_zgemmsp().

◆ fct_blok_cscalo_cpu()

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

StarPU CPU implementation.

Definition at line 128 of file codelet_blok_cscalo.c.

References cpublok_cscalo().

◆ 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 171 of file codelet_blok_cscalo.c.

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

Referenced by starpu_task_hetrf_cgemmsp(), and starpu_task_sytrf_cgemmsp().

◆ fct_blok_dscalo_cpu()

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

StarPU CPU implementation.

Definition at line 128 of file codelet_blok_dscalo.c.

References cpublok_dscalo().

◆ 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 171 of file codelet_blok_dscalo.c.

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

Referenced by starpu_task_sytrf_dgemmsp().

◆ fct_blok_sscalo_cpu()

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

StarPU CPU implementation.

Definition at line 128 of file codelet_blok_sscalo.c.

References cpublok_sscalo().

◆ 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 171 of file codelet_blok_sscalo.c.

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

Referenced by starpu_task_sytrf_sgemmsp().

◆ 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 218 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().

◆ 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 218 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_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 218 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_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 218 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().

◆ 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 195 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 277 of file codelet_blok_ztrsmsp.c.

References solver_cblk_s::cblktype, 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_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 195 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 277 of file codelet_blok_ctrsmsp.c.

References solver_cblk_s::cblktype, 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_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 195 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 277 of file codelet_blok_dtrsmsp.c.

References solver_cblk_s::cblktype, 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_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 195 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 277 of file codelet_blok_strsmsp.c.

References solver_cblk_s::cblktype, 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_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 190 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 275 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_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 358 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_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 190 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 275 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_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 358 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_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 190 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 275 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_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 358 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_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 190 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 275 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_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 358 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_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 203 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_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 203 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_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 203 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 285 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_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 203 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 285 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().

◆ 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 225 of file codelet_cblk_zgetrfsp.c.

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

Referenced by starpu_task_zgetrfsp().

◆ 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 225 of file codelet_cblk_cgetrfsp.c.

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

Referenced by starpu_task_cgetrfsp().

◆ 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 225 of file codelet_cblk_dgetrfsp.c.

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

Referenced by starpu_task_dgetrfsp().

◆ 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 225 of file codelet_cblk_sgetrfsp.c.

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

Referenced by starpu_task_sgetrfsp().

◆ 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 231 of file codelet_cblk_chetrfsp.c.

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

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

◆ 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 231 of file codelet_cblk_zhetrfsp.c.

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

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

◆ 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 223 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().

◆ 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 223 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().

◆ 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 223 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().

◆ 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 223 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().

◆ 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 222 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().

◆ 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 222 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().

◆ 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 231 of file codelet_cblk_zsytrfsp.c.

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

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

◆ 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 231 of file codelet_cblk_csytrfsp.c.

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

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

◆ 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 231 of file codelet_cblk_dsytrfsp.c.

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

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

◆ 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 231 of file codelet_cblk_ssytrfsp.c.

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

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

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_ztrsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_ctrsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_dtrsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_strsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_ztrsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_ctrsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_dtrsm_sp1dplus().

◆ 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::cblktype, solver_cblk_s::gcblknum, solver_cblk_s::ownerid, and pastix_int_t.

Referenced by starpu_strsm_sp1dplus().

◆ 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::handler, solver_cblk_s::ownerid, pastix_int_t, and PastixRight.

Referenced by starpu_cblk_ztrsmsp_backward(), and starpu_cblk_ztrsmsp_forward().

◆ 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::handler, solver_cblk_s::ownerid, pastix_int_t, and PastixRight.

Referenced by starpu_cblk_ctrsmsp_backward(), and starpu_cblk_ctrsmsp_forward().

◆ 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::handler, solver_cblk_s::ownerid, pastix_int_t, and PastixRight.

Referenced by starpu_cblk_dtrsmsp_backward(), and starpu_cblk_dtrsmsp_forward().

◆ 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::handler, solver_cblk_s::ownerid, pastix_int_t, and PastixRight.

Referenced by starpu_cblk_strsmsp_backward(), and starpu_cblk_strsmsp_forward().

◆ 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::cblkmin2d, solver_matrix_s::cblknbr, solver_matrix_s::cblktab, starpu_sparse_matrix_desc_s::cblktab_handle, solver_cblk_s::fblokptr, solver_matrix_s::gbloknbr, solver_matrix_s::gcblknbr, solver_matrix_s::gfaninbloknbr, solver_matrix_s::gfanincblknbr, starpu_sparse_matrix_desc_s::gpu_blocktab, starpu_cblk_s::handlenbr, solver_blok_s::handler, starpu_cblk_s::handletab, starpu_sparse_matrix_desc_s::mpitag, starpu_sparse_matrix_desc_s::mtxtype, pastix_int_t, pastix_starpu_tag_book(), PastixGeneral, starpu_sparse_matrix_desc_s::solvmtx, starpu_sparse_matrix_destroy(), and starpu_sparse_matrix_desc_s::typesze.

Referenced by pastix_subtask_bcsc2ctab(), 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, cblk_colnbr(), solver_matrix_s::cblknbr, solver_matrix_s::cblktab, starpu_rhs_desc_s::dataptr, solver_matrix_s::gcblknbr, solver_matrix_s::gfanincblknbr, starpu_rhs_desc_s::handletab, solver_cblk_s::lcolidx, pastix_rhs_s::ld, starpu_rhs_desc_s::mpitag, pastix_rhs_s::n, starpu_rhs_desc_s::ncol, pastix_int_t, pastix_starpu_rhs_data_register(), pastix_starpu_tag_book(), starpu_rhs_desc_s::solvmtx, 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 255 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 217 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().

◆ profiling_display_allinfo()

static void profiling_display_allinfo ( )
inlinestatic

Displays all profiling data collected into all measurements tables of the profile_list.

Definition at line 206 of file pastix_starpu.h.

Referenced by pastix_starpu_finalize().

◆ 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 pastix_starpu_interface_s::allocsize, cblk_colnbr(), solver_cblk_s::cblktype, pastix_starpu_interface_s::dataptr, solver_cblk_s::fblokptr, pastix_starpu_interface_s::id, solver_cblk_s::lcoeftab, solver_blok_s::LRblock, pastix_starpu_interface_s::nbblok, PASTIX_STARPU_INTERFACE_ID, pastix_starpu_interface_ops, PastixLCoef, PastixLUCoef, solver_cblk_s::stride, and solver_cblk_s::ucoeftab.

◆ pastix_starpu_register_ws()

void pastix_starpu_register_ws ( starpu_data_handle_t *  handleptr,
const SolverCblk cblk,
pastix_coeftype_t  flttype 
)

Definition at line 708 of file pastix_starpu_interface.c.

◆ pastix_starpu_register_blok()

void pastix_starpu_register_blok ( starpu_data_handle_t *  handleptr,
const SolverCblk cblk,
const SolverBlok blok,
pastix_coeftype_t  flttype 
)

Definition at line 760 of file pastix_starpu_interface.c.

◆ pastix_starpu_interface_init()

void pastix_starpu_interface_init ( )

Initialize the interface ID.

Definition at line 578 of file pastix_starpu_interface.c.

References pastix_starpu_interface_ops.

Referenced by pastix_starpu_init().

◆ pastix_starpu_interface_fini()

void pastix_starpu_interface_fini ( )

Finalize the interface and reset the ID.

Definition at line 608 of file pastix_starpu_interface.c.

References pastix_starpu_interface_ops.

Referenced by pastix_starpu_finalize().

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

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

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

Definition at line 113 of file codelet_blok_zscalo.c.

◆ starpu_blok_cscalo_model

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

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

Definition at line 113 of file codelet_blok_cscalo.c.

◆ starpu_blok_dscalo_model

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

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

Definition at line 113 of file codelet_blok_dscalo.c.

◆ starpu_blok_sscalo_model

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

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

Definition at line 113 of file codelet_blok_sscalo.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 545 of file pastix_starpu_interface.c.

Referenced by pastix_starpu_interface_fini(), pastix_starpu_interface_init(), and pastix_starpu_register().

◆ 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 545 of file pastix_starpu_interface.c.

Referenced by pastix_starpu_interface_fini(), pastix_starpu_interface_init(), and pastix_starpu_register().