PaStiX Handbook  6.3.2

Data Structures

struct  symbol_function_s
 Cost functions to compute statistics on the symbolic structure. More...
 

Typedefs

typedef struct symbol_function_s symbol_function_t
 Cost functions to compute statistics on the symbolic structure.
 

Functions

static double sum1d (const symbol_function_t *fptr, const symbol_matrix_t *symbmtx, pastix_int_t cblknum)
 Template function to compute cost on a column-block based approach with a single update per column block. More...
 
static double sum2d (const symbol_function_t *fptr, const symbol_matrix_t *symbmtx, pastix_int_t cblknum)
 Template function to compute cost on block based approach. More...
 
static double sum2dext (const symbol_function_t *fptr, const symbol_matrix_t *symbmtx, pastix_int_t cblknum, double *blokcost)
 Template function to compute cost on block based approach which keeps the cost per block. More...
 
static double recursive_sum (pastix_int_t a, pastix_int_t b, double(*fval)(const symbol_function_t *, const symbol_matrix_t *, pastix_int_t), const symbol_function_t *fptr, const symbol_matrix_t *symbmtx)
 Recursive function to compute the cost of the full symbolic structure with either sum1d(), sum2d(), or sum2dext(). More...
 

Variables

symbol_function_t flopstable [2][5]
 array of pointer to the flops functions per factorization and arithmetic
 
symbol_function_t perfstable [2][5]
 array of pointer to the performance functions per factorization and arithmetic
 
symbol_function_t flopstable [2][5]
 array of pointer to the flops functions per factorization and arithmetic More...
 
symbol_function_t perfstable [2][5]
 array of pointer to the performance functions per factorization and arithmetic More...
 

Flops functions set

static double flops_zpotrf_diag (pastix_int_t N)
 Computations flops of diagonal blocks. More...
 
static double flops_dpotrf_diag (pastix_int_t N)
 Computations flops of diagonal blocks. More...
 
static double flops_zgetrf_diag (pastix_int_t N)
 Computations flops of diagonal blocks. More...
 
static double flops_dgetrf_diag (pastix_int_t N)
 Computations flops of diagonal blocks. More...
 
static double flops_zsytrf_diag (pastix_int_t N)
 Computations flops of diagonal blocks. More...
 
static double flops_dsytrf_diag (pastix_int_t N)
 Computations flops of diagonal blocks. More...
 
static double flops_zpotrf_trsm (pastix_int_t M, pastix_int_t N)
 Computations flops of the solve step. More...
 
static double flops_dpotrf_trsm (pastix_int_t M, pastix_int_t N)
 Computations flops of the solve step. More...
 
static double flops_zgetrf_trsm (pastix_int_t M, pastix_int_t N)
 Computations flops of the solve step. More...
 
static double flops_dgetrf_trsm (pastix_int_t M, pastix_int_t N)
 Computations flops of the solve step. More...
 
static double flops_zsytrf_trsm (pastix_int_t M, pastix_int_t N)
 Computations flops of the solve step. More...
 
static double flops_dsytrf_trsm (pastix_int_t M, pastix_int_t N)
 Computations flops of the solve step. More...
 
static double flops_zpotrf_update (pastix_int_t K, pastix_int_t M)
 Theroretical computation flops of the update step per coumn block (see sum1d()) More...
 
static double flops_dpotrf_update (pastix_int_t K, pastix_int_t M)
 Theroretical computation flops of the update step per coumn block (see sum1d()) More...
 
static double flops_zgetrf_update (pastix_int_t K, pastix_int_t M)
 Theroretical computation flops of the update step per coumn block (see sum1d()) More...
 
static double flops_dgetrf_update (pastix_int_t K, pastix_int_t M)
 Theroretical computation flops of the update step per coumn block (see sum1d()) More...
 
static double flops_zsytrf_update (pastix_int_t K, pastix_int_t M)
 Theroretical computation flops of the update step per coumn block (see sum1d()) More...
 
static double flops_dsytrf_update (pastix_int_t K, pastix_int_t M)
 Theroretical computation flops of the update step per coumn block (see sum1d()) More...
 
static double flops_zpotrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double flops_dpotrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double flops_zgetrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double flops_dgetrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double flops_zsytrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double flops_dsytrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 

Performance functions set

static double perfs_zpotrf_diag (pastix_int_t N)
 Time model of the computation of the diagonal block. More...
 
static double perfs_dpotrf_diag (pastix_int_t N)
 Time model of the computation of the diagonal block. More...
 
static double perfs_zgetrf_diag (pastix_int_t N)
 Time model of the computation of the diagonal block. More...
 
static double perfs_dgetrf_diag (pastix_int_t N)
 Time model of the computation of the diagonal block. More...
 
static double perfs_zsytrf_diag (pastix_int_t N)
 Time model of the computation of the diagonal block. More...
 
static double perfs_dsytrf_diag (pastix_int_t N)
 Time model of the computation of the diagonal block. More...
 
static double perfs_zpotrf_trsm (pastix_int_t M, pastix_int_t N)
 Time performance model of the solve step. More...
 
static double perfs_dpotrf_trsm (pastix_int_t M, pastix_int_t N)
 Time performance model of the solve step. More...
 
static double perfs_zgetrf_trsm (pastix_int_t M, pastix_int_t N)
 Time performance model of the solve step. More...
 
static double perfs_dgetrf_trsm (pastix_int_t M, pastix_int_t N)
 Time performance model of the solve step. More...
 
static double perfs_zsytrf_trsm (pastix_int_t M, pastix_int_t N)
 Time performance model of the solve step. More...
 
static double perfs_dsytrf_trsm (pastix_int_t M, pastix_int_t N)
 Time performance model of the solve step. More...
 
static double perfs_zpotrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Time performance model of the update step per block (see sum2d()) More...
 
static double perfs_dpotrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double perfs_zgetrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double perfs_dgetrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double perfs_zsytrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 
static double perfs_dsytrf_blkupdate (pastix_int_t M, pastix_int_t N, pastix_int_t K)
 Computes the theoretical number of flops of the update step per block (see sum2d()) More...
 

Detailed Description


Data Type Documentation

◆ symbol_function_s

struct symbol_function_s

Cost functions to compute statistics on the symbolic structure.

Definition at line 27 of file symbol_cost.h.

Data Fields

double(* diag )(pastix_int_t)
 
double(* trsm )(pastix_int_t, pastix_int_t)
 
double(* update )(pastix_int_t, pastix_int_t)
 
double(* blkupdate )(pastix_int_t, pastix_int_t, pastix_int_t)
 

Field Documentation

◆ diag

double(* symbol_function_s::diag) (pastix_int_t)

Return a statistic based on the diagonal block

Definition at line 28 of file symbol_cost.h.

Referenced by sum1d(), sum2d(), and sum2dext().

◆ trsm

double(* symbol_function_s::trsm) (pastix_int_t, pastix_int_t)

Return a statistic based on the sum of all off-diagonal of each column-block

Definition at line 29 of file symbol_cost.h.

Referenced by sum1d(), sum2d(), and sum2dext().

◆ update

double(* symbol_function_s::update) (pastix_int_t, pastix_int_t)

Return a statistic for a large accumulated update per column-block

Definition at line 31 of file symbol_cost.h.

Referenced by sum1d().

◆ blkupdate

double(* symbol_function_s::blkupdate) (pastix_int_t, pastix_int_t, pastix_int_t)

Return a statistic for each individual off-diagonal block

Definition at line 33 of file symbol_cost.h.

Referenced by sum2d(), and sum2dext().

Function Documentation

◆ sum1d()

static double sum1d ( const symbol_function_t fptr,
const symbol_matrix_t symbmtx,
pastix_int_t  cblknum 
)
static

Template function to compute cost on a column-block based approach with a single update per column block.

Parameters
[in]fptrThe structure that contains the cost functions (diag, trsm and update are used)
[in]symbmtxThe symbolic matrix structure on which to compute the costs.
[in]cblknumThe index of the column-block for which the cost will be computed
Returns
The cost associated to the cblk of index cblknum and evaluated with the set of given functions

Definition at line 53 of file symbol_cost.c.

References symbol_cblk_s::bloknum, symbol_matrix_s::bloktab, symbol_matrix_s::cblktab, symbol_function_s::diag, symbol_matrix_s::dof, symbol_cblk_s::fcolnum, symbol_blok_s::frownum, symbol_cblk_s::lcolnum, symbol_blok_s::lrownum, pastix_int_t, symbol_function_s::trsm, and symbol_function_s::update.

Referenced by pastixSymbolGetFlops().

◆ sum2d()

static double sum2d ( const symbol_function_t fptr,
const symbol_matrix_t symbmtx,
pastix_int_t  cblknum 
)
static

Template function to compute cost on block based approach.

As opposed to sum1d(), the updates are split in one per off-diagonal block making it more precise to evaluate the performance cost of the GEMMs, for example, as it exactly follow the 1D scheme used in the static scheduler of PaStiX.

Parameters
[in]fptrThe structure that contains the cost functions (diag, trsm and blkupdate are used)
[in]symbmtxThe symbolic matrix structure on which to compute the costs.
[in]cblknumThe index of the column-block for which the cost will be computed
Returns
The cost associated to the cblk of index cblknum and evaluated with the set of given functions

Definition at line 121 of file symbol_cost.c.

References symbol_function_s::blkupdate, symbol_cblk_s::bloknum, symbol_matrix_s::bloktab, symbol_matrix_s::cblktab, symbol_function_s::diag, symbol_matrix_s::dof, symbol_cblk_s::fcolnum, symbol_blok_s::frownum, symbol_cblk_s::lcolnum, symbol_blok_s::lrownum, pastix_int_t, and symbol_function_s::trsm.

Referenced by pastixSymbolGetFlops().

◆ sum2dext()

static double sum2dext ( const symbol_function_t fptr,
const symbol_matrix_t symbmtx,
pastix_int_t  cblknum,
double *  blokcost 
)
static

Template function to compute cost on block based approach which keeps the cost per block.

As opposed to sum2d(), the cost of each update per block is stored in the blokcost array. Despite this storage, the function is completely identical.

Parameters
[in]fptrThe structure that contains the cost functions (diag, trsm and blkupdate are used)
[in]symbmtxThe symbolic matrix structure on which to compute the costs.
[in]cblknumThe index of the column-block for which the cost will be computed
[in,out]blokcostAn array of size the number of blocks in the cblknum column-block in which to store the cost per block of each updates.
Returns
The cost associated to the cblk of index cblknum and evaluated with the set of given functions

Definition at line 202 of file symbol_cost.c.

References symbol_function_s::blkupdate, symbol_cblk_s::bloknum, symbol_matrix_s::bloktab, symbol_matrix_s::cblktab, symbol_function_s::diag, symbol_matrix_s::dof, symbol_cblk_s::fcolnum, symbol_blok_s::frownum, symbol_cblk_s::lcolnum, symbol_blok_s::lrownum, pastix_int_t, and symbol_function_s::trsm.

Referenced by pastixSymbolGetTimes().

◆ recursive_sum()

static double recursive_sum ( pastix_int_t  a,
pastix_int_t  b,
double(*)(const symbol_function_t *, const symbol_matrix_t *, pastix_int_t fval,
const symbol_function_t fptr,
const symbol_matrix_t symbmtx 
)
static

Recursive function to compute the cost of the full symbolic structure with either sum1d(), sum2d(), or sum2dext().

Parameters
[in]aThe first column-block index of the range to address
[in]bThe last column-block index of the range to address (inclusive)
[in]fvalThe function to use to compute the cost. This can be sum1d(), sum2d(), or sum2dext()
[in]fptrThe set of functions that will be applied. It can be size function, floating point operation, performance models, ...
[in]symbmtxThe symbol matrix on which to compute the wanted information.
Returns
The cost associated to the integral of the symbol matrix structure and evaluated with the set of given functions

Definition at line 287 of file symbol_cost.c.

Referenced by pastixSymbolGetFlops().

◆ flops_zpotrf_diag()

static double flops_zpotrf_diag ( pastix_int_t  N)
inlinestatic

Computations flops of diagonal blocks.

Parameters
[in]NSize of the matrix block
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Definition at line 40 of file symbol_cost_flops.c.

◆ flops_dpotrf_diag()

static double flops_dpotrf_diag ( pastix_int_t  N)
inlinestatic

Computations flops of diagonal blocks.

Parameters
[in]NSize of the matrix block
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 49 of file symbol_cost_flops.c.

◆ flops_zgetrf_diag()

static double flops_zgetrf_diag ( pastix_int_t  N)
static

Computations flops of diagonal blocks.

Parameters
[in]NSize of the matrix block
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 58 of file symbol_cost_flops.c.

◆ flops_dgetrf_diag()

static double flops_dgetrf_diag ( pastix_int_t  N)
inlinestatic

Computations flops of diagonal blocks.

Parameters
[in]NSize of the matrix block
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 67 of file symbol_cost_flops.c.

◆ flops_zsytrf_diag()

static double flops_zsytrf_diag ( pastix_int_t  N)
inlinestatic

Computations flops of diagonal blocks.

Parameters
[in]NSize of the matrix block
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 76 of file symbol_cost_flops.c.

◆ flops_dsytrf_diag()

static double flops_dsytrf_diag ( pastix_int_t  N)
inlinestatic

Computations flops of diagonal blocks.

Parameters
[in]NSize of the matrix block
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 85 of file symbol_cost_flops.c.

◆ flops_zpotrf_trsm()

static double flops_zpotrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Computations flops of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Definition at line 97 of file symbol_cost_flops.c.

References PastixRight.

◆ flops_dpotrf_trsm()

static double flops_dpotrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Computations flops of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 106 of file symbol_cost_flops.c.

References PastixRight.

◆ flops_zgetrf_trsm()

static double flops_zgetrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
static

Computations flops of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 115 of file symbol_cost_flops.c.

References PastixRight.

◆ flops_dgetrf_trsm()

static double flops_dgetrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Computations flops of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 124 of file symbol_cost_flops.c.

References PastixRight.

◆ flops_zsytrf_trsm()

static double flops_zsytrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Computations flops of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 133 of file symbol_cost_flops.c.

References PastixRight.

◆ flops_dsytrf_trsm()

static double flops_dsytrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Computations flops of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 142 of file symbol_cost_flops.c.

References PastixRight.

◆ flops_zpotrf_update()

static double flops_zpotrf_update ( pastix_int_t  K,
pastix_int_t  M 
)
inlinestatic

Theroretical computation flops of the update step per coumn block (see sum1d())

Parameters
[in]KNumber of columns of A, and rows of B in the GEMM operation
[in]MDimension of all other sizes in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Definition at line 154 of file symbol_cost_flops.c.

◆ flops_dpotrf_update()

static double flops_dpotrf_update ( pastix_int_t  K,
pastix_int_t  M 
)
inlinestatic

Theroretical computation flops of the update step per coumn block (see sum1d())

Parameters
[in]KNumber of columns of A, and rows of B in the GEMM operation
[in]MDimension of all other sizes in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 163 of file symbol_cost_flops.c.

◆ flops_zgetrf_update()

static double flops_zgetrf_update ( pastix_int_t  K,
pastix_int_t  M 
)
static

Theroretical computation flops of the update step per coumn block (see sum1d())

Parameters
[in]KNumber of columns of A, and rows of B in the GEMM operation
[in]MDimension of all other sizes in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 172 of file symbol_cost_flops.c.

◆ flops_dgetrf_update()

static double flops_dgetrf_update ( pastix_int_t  K,
pastix_int_t  M 
)
inlinestatic

Theroretical computation flops of the update step per coumn block (see sum1d())

Parameters
[in]KNumber of columns of A, and rows of B in the GEMM operation
[in]MDimension of all other sizes in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 181 of file symbol_cost_flops.c.

◆ flops_zsytrf_update()

static double flops_zsytrf_update ( pastix_int_t  K,
pastix_int_t  M 
)
inlinestatic

Theroretical computation flops of the update step per coumn block (see sum1d())

Parameters
[in]KNumber of columns of A, and rows of B in the GEMM operation
[in]MDimension of all other sizes in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 190 of file symbol_cost_flops.c.

◆ flops_dsytrf_update()

static double flops_dsytrf_update ( pastix_int_t  K,
pastix_int_t  M 
)
inlinestatic

Theroretical computation flops of the update step per coumn block (see sum1d())

Parameters
[in]KNumber of columns of A, and rows of B in the GEMM operation
[in]MDimension of all other sizes in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 199 of file symbol_cost_flops.c.

◆ flops_zpotrf_blkupdate()

static double flops_zpotrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Definition at line 212 of file symbol_cost_flops.c.

◆ flops_dpotrf_blkupdate()

static double flops_dpotrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 222 of file symbol_cost_flops.c.

◆ flops_zgetrf_blkupdate()

static double flops_zgetrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
static

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 232 of file symbol_cost_flops.c.

◆ flops_dgetrf_blkupdate()

static double flops_dgetrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 243 of file symbol_cost_flops.c.

◆ flops_zsytrf_blkupdate()

static double flops_zsytrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 254 of file symbol_cost_flops.c.

◆ flops_dsytrf_blkupdate()

static double flops_dsytrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 273 of file symbol_cost_flops.c.

◆ perfs_zpotrf_diag()

static double perfs_zpotrf_diag ( pastix_int_t  N)
inlinestatic

Time model of the computation of the diagonal block.

Parameters
[in]NSize of the matrix block
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

Definition at line 40 of file symbol_cost_perfs.c.

Referenced by perfs_zgetrf_diag().

◆ perfs_dpotrf_diag()

static double perfs_dpotrf_diag ( pastix_int_t  N)
inlinestatic

Time model of the computation of the diagonal block.

Parameters
[in]NSize of the matrix block
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 51 of file symbol_cost_perfs.c.

Referenced by perfs_dgetrf_diag().

◆ perfs_zgetrf_diag()

static double perfs_zgetrf_diag ( pastix_int_t  N)
inlinestatic

Time model of the computation of the diagonal block.

Parameters
[in]NSize of the matrix block
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 62 of file symbol_cost_perfs.c.

References perfs_zpotrf_diag().

◆ perfs_dgetrf_diag()

static double perfs_dgetrf_diag ( pastix_int_t  N)
inlinestatic

Time model of the computation of the diagonal block.

Parameters
[in]NSize of the matrix block
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 72 of file symbol_cost_perfs.c.

References perfs_dpotrf_diag().

◆ perfs_zsytrf_diag()

static double perfs_zsytrf_diag ( pastix_int_t  N)
inlinestatic

Time model of the computation of the diagonal block.

Parameters
[in]NSize of the matrix block
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 82 of file symbol_cost_perfs.c.

◆ perfs_dsytrf_diag()

static double perfs_dsytrf_diag ( pastix_int_t  N)
inlinestatic

Time model of the computation of the diagonal block.

Parameters
[in]NSize of the matrix block
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 93 of file symbol_cost_perfs.c.

◆ perfs_zpotrf_trsm()

static double perfs_zpotrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Time performance model of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

Definition at line 107 of file symbol_cost_perfs.c.

◆ perfs_dpotrf_trsm()

static double perfs_dpotrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Time performance model of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 118 of file symbol_cost_perfs.c.

◆ perfs_zgetrf_trsm()

static double perfs_zgetrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Time performance model of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 129 of file symbol_cost_perfs.c.

◆ perfs_dgetrf_trsm()

static double perfs_dgetrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Time performance model of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 140 of file symbol_cost_perfs.c.

◆ perfs_zsytrf_trsm()

static double perfs_zsytrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Time performance model of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 151 of file symbol_cost_perfs.c.

◆ perfs_dsytrf_trsm()

static double perfs_dsytrf_trsm ( pastix_int_t  M,
pastix_int_t  N 
)
inlinestatic

Time performance model of the solve step.

Parameters
[in]MNumber of rows of the B matrix in the TRSM, and size of the matrix A
[in]NNumber of columns of the B matrix in the TRSM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 163 of file symbol_cost_perfs.c.

◆ perfs_zpotrf_blkupdate()

static double perfs_zpotrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Time performance model of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the time cost for the given arithmetic and factorization

Cholesky complex case

Definition at line 179 of file symbol_cost_perfs.c.

◆ perfs_dpotrf_blkupdate()

static double perfs_dpotrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

Cholesky real case

Definition at line 191 of file symbol_cost_perfs.c.

◆ perfs_zgetrf_blkupdate()

static double perfs_zgetrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU complex case

Definition at line 203 of file symbol_cost_perfs.c.

◆ perfs_dgetrf_blkupdate()

static double perfs_dgetrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LU real case

Definition at line 216 of file symbol_cost_perfs.c.

◆ perfs_zsytrf_blkupdate()

static double perfs_zsytrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t complex case

Definition at line 229 of file symbol_cost_perfs.c.

◆ perfs_dsytrf_blkupdate()

static double perfs_dsytrf_blkupdate ( pastix_int_t  M,
pastix_int_t  N,
pastix_int_t  K 
)
inlinestatic

Computes the theoretical number of flops of the update step per block (see sum2d())

Parameters
[in]MNumber of rows of the A and C matrices in the GEMM
[in]NNumber of columns of the B and C matrices in the GEMM
[in]KNumber of columns of the A matrix, and rows of the B matrix in the GEMM
Returns
Returns the number of flops for the given arithmetic and factorization

Cholesky complex case

LDL^t real case

Definition at line 241 of file symbol_cost_perfs.c.

Variable Documentation

◆ flopstable

symbol_function_t flopstable[2][5]
Initial value:
= {
{
},
{
}
}
static double flops_dgetrf_update(pastix_int_t K, pastix_int_t M)
Theroretical computation flops of the update step per coumn block (see sum1d())
static double flops_dgetrf_trsm(pastix_int_t M, pastix_int_t N)
Computations flops of the solve step.
static double flops_zgetrf_diag(pastix_int_t N)
Computations flops of diagonal blocks.
static double flops_zsytrf_trsm(pastix_int_t M, pastix_int_t N)
Computations flops of the solve step.
static double flops_dsytrf_update(pastix_int_t K, pastix_int_t M)
Theroretical computation flops of the update step per coumn block (see sum1d())
static double flops_zgetrf_update(pastix_int_t K, pastix_int_t M)
Theroretical computation flops of the update step per coumn block (see sum1d())
static double flops_dpotrf_trsm(pastix_int_t M, pastix_int_t N)
Computations flops of the solve step.
static double flops_zpotrf_diag(pastix_int_t N)
Computations flops of diagonal blocks.
static double flops_zpotrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double flops_dsytrf_diag(pastix_int_t N)
Computations flops of diagonal blocks.
static double flops_zsytrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double flops_dpotrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double flops_zpotrf_trsm(pastix_int_t M, pastix_int_t N)
Computations flops of the solve step.
static double flops_zsytrf_update(pastix_int_t K, pastix_int_t M)
Theroretical computation flops of the update step per coumn block (see sum1d())
static double flops_dpotrf_diag(pastix_int_t N)
Computations flops of diagonal blocks.
static double flops_zpotrf_update(pastix_int_t K, pastix_int_t M)
Theroretical computation flops of the update step per coumn block (see sum1d())
static double flops_zgetrf_trsm(pastix_int_t M, pastix_int_t N)
Computations flops of the solve step.
static double flops_dgetrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double flops_zsytrf_diag(pastix_int_t N)
Computations flops of diagonal blocks.
static double flops_dpotrf_update(pastix_int_t K, pastix_int_t M)
Theroretical computation flops of the update step per coumn block (see sum1d())
static double flops_dsytrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double flops_dsytrf_trsm(pastix_int_t M, pastix_int_t N)
Computations flops of the solve step.
static double flops_dgetrf_diag(pastix_int_t N)
Computations flops of diagonal blocks.
static double flops_zgetrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())

array of pointer to the flops functions per factorization and arithmetic

Definition at line 291 of file symbol_cost_flops.c.

Referenced by pastixSymbolGetFlops().

◆ perfstable

symbol_function_t perfstable[2][5]
Initial value:
= {
{
},
{
}
}
static double perfs_zpotrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_zgetrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_zsytrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_zgetrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_zsytrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dsytrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dgetrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_zpotrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Time performance model of the update step per block (see sum2d())
static double perfs_zgetrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dpotrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_dgetrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dgetrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_dpotrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_zpotrf_trsm(pastix_int_t M, pastix_int_t N)
Time performance model of the solve step.
static double perfs_dsytrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_dpotrf_diag(pastix_int_t N)
Time model of the computation of the diagonal block.
static double perfs_dsytrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())
static double perfs_zsytrf_blkupdate(pastix_int_t M, pastix_int_t N, pastix_int_t K)
Computes the theoretical number of flops of the update step per block (see sum2d())

array of pointer to the performance functions per factorization and arithmetic

Definition at line 252 of file symbol_cost_perfs.c.

Referenced by pastixSymbolGetTimes().