PaStiX Handbook 6.4.0
|
#include "common.h"
#include "blend/solver.h"
#include "bcsc/bcsc.h"
#include "bcsc/bcsc_z.h"
#include "sopalin/sopalin_data.h"
#include "pastix_zcores.h"
Go to the source code of this file.
Functions | |
void | sequential_ztrsm (pastix_data_t *pastix_data, const args_solve_t *enums, sopalin_data_t *sopalin_data, pastix_rhs_t rhsb) |
Applies the Sequential Forward or Backward solve. | |
void | thread_ztrsm_static (isched_thread_t *ctx, void *args) |
Applies the Static Forward or Backward solve. | |
void | static_ztrsm (pastix_data_t *pastix_data, const args_solve_t *enums, sopalin_data_t *sopalin_data, pastix_rhs_t rhsb) |
Applies the Static Forward or Backward solve. | |
void | thread_ztrsm_dynamic (isched_thread_t *ctx, void *args) |
Applies the Dynamic Forward or Backward solve. | |
void | dynamic_ztrsm (pastix_data_t *pastix_data, const args_solve_t *enums, sopalin_data_t *sopalin_data, pastix_rhs_t rhsb) |
Applies the Dynamic Forward or Backward solve. | |
void | sopalin_ztrsm (pastix_data_t *pastix_data, pastix_side_t side, pastix_uplo_t uplo, pastix_trans_t trans, pastix_diag_t diag, sopalin_data_t *sopalin_data, pastix_rhs_t rhsb) |
Calls the sequential, static, dynamic or runtime solve according to scheduler. | |
Definition in file sequential_ztrsm.c.
void sequential_ztrsm | ( | pastix_data_t * | pastix_data, |
const args_solve_t * | enums, | ||
sopalin_data_t * | sopalin_data, | ||
pastix_rhs_t | rhsb | ||
) |
Applies the Sequential Forward or Backward solve.
[in] | pastix_data | The pastix_data structure. |
[in] | enums | Enums needed for the solve. |
[in] | sopalin_data | The SolverMatrix structure from PaStiX. |
[in] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 70 of file sequential_ztrsm.c.
References pastix_rhs_s::cblkb, solver_matrix_s::cblknbr, solver_matrix_s::cblkschur, solver_matrix_s::cblktab, solver_cblk_s::cblktype, cpucblk_zrecv_rhs_backward(), cpucblk_zrecv_rhs_forward(), cpucblk_zsend_rhs_backward(), cpucblk_zsend_rhs_forward(), solver_matrix_s::faninnbr, pastix_rhs_s::n, pastix_int_t, solver_matrix_s::recvnbr, solve_cblk_ztrsmsp_backward(), and solve_cblk_ztrsmsp_forward().
void thread_ztrsm_static | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Applies the Static Forward or Backward solve.
[in] | ctx | Thread structure of the execution context of one instance of the scheduler. |
[in] | args | Arguments for the Static solve. |
Definition at line 149 of file sequential_ztrsm.c.
References solver_cblk_s::brownum, solver_matrix_s::cblknbr, task_s::cblknum, solver_matrix_s::cblktab, solver_cblk_s::cblktype, cpucblk_zincoming_rhs_bwd_deps(), cpucblk_zincoming_rhs_fwd_deps(), solver_cblk_s::ctrbcnt, solver_cblk_s::fblokptr, pastix_int_t, solve_cblk_ztrsmsp_backward(), and solve_cblk_ztrsmsp_forward().
Referenced by static_ztrsm().
void static_ztrsm | ( | pastix_data_t * | pastix_data, |
const args_solve_t * | enums, | ||
sopalin_data_t * | sopalin_data, | ||
pastix_rhs_t | rhsb | ||
) |
Applies the Static Forward or Backward solve.
[in] | pastix_data | The pastix_data structure. |
[in] | enums | Enums needed for the solve. |
[in] | sopalin_data | The SolverMatrix structure from PaStiX. |
[in] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 255 of file sequential_ztrsm.c.
References pastix_data_s::isched, and thread_ztrsm_static().
Referenced by sopalin_ztrsm().
void thread_ztrsm_dynamic | ( | isched_thread_t * | ctx, |
void * | args | ||
) |
Applies the Dynamic Forward or Backward solve.
[in] | ctx | Thread structure of the execution context of one instance of the scheduler. |
[in] | args | Arguments for the Static solve. |
Definition at line 280 of file sequential_ztrsm.c.
References solver_cblk_s::brownum, solver_matrix_s::cblknbr, solver_matrix_s::cblktab, solver_cblk_s::cblktype, solver_cblk_s::ctrbcnt, solver_cblk_s::fblokptr, pastix_data_s::inter_node_procnbr, pastix_int_t, pqueueExit(), pqueueInit(), pqueuePop(), pqueuePush1(), solver_cblk_s::priority, solve_cblk_ztrsmsp_backward(), solve_cblk_ztrsmsp_forward(), stealQueue(), solver_cblk_s::threadid, and pastix_queue_s::used.
Referenced by dynamic_ztrsm().
void dynamic_ztrsm | ( | pastix_data_t * | pastix_data, |
const args_solve_t * | enums, | ||
sopalin_data_t * | sopalin_data, | ||
pastix_rhs_t | rhsb | ||
) |
Applies the Dynamic Forward or Backward solve.
[in] | pastix_data | The pastix_data structure. |
[in] | enums | Enums needed for the solve. |
[in] | sopalin_data | The SolverMatrix structure from PaStiX. |
[in] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 445 of file sequential_ztrsm.c.
References solver_matrix_s::cblknbr, solver_matrix_s::cblkschur, pastix_data_s::isched, solver_matrix_s::recvnbr, and thread_ztrsm_dynamic().
void sopalin_ztrsm | ( | pastix_data_t * | pastix_data, |
pastix_side_t | side, | ||
pastix_uplo_t | uplo, | ||
pastix_trans_t | trans, | ||
pastix_diag_t | diag, | ||
sopalin_data_t * | sopalin_data, | ||
pastix_rhs_t | rhsb | ||
) |
Calls the sequential, static, dynamic or runtime solve according to scheduler.
[in] | pastix_data | The pastix_data structure. |
[in] | side | Specify whether the off-diagonal blocks appear on the left or right in the equation. It has to be either PastixLeft or PastixRight. |
[in] | uplo | Specify whether the off-diagonal blocks are upper or lower triangular. It has to be either PastixUpper or PastixLower. |
[in] | trans | Specify the transposition used for the off-diagonal blocks. It has to be either PastixTrans or PastixConjTrans. |
[in] | diag | Specify if the off-diagonal blocks are unit triangular. It has to be either PastixUnit or PastixNonUnit. |
[in] | sopalin_data | The SolverMatrix structure from PaStiX. |
[in] | rhsb | The pointer to the rhs data structure that holds the vectors of the right hand side. |
Definition at line 591 of file sequential_ztrsm.c.
References compute_solve_step(), cpucblk_zrequest_rhs_bwd_cleanup(), cpucblk_zrequest_rhs_fwd_cleanup(), pastix_data_s::inter_node_comm, pastix_data_s::inter_node_procnbr, pastix_data_s::iparm, IPARM_SCHEDULER, IPARM_SCHUR_SOLV_MODE, PastixSchedDynamic, PastixSchedParsec, PastixSchedStatic, solverRequestExit(), solverRequestInit(), solverRhsRecvExit(), solverRhsRecvInit(), and static_ztrsm().
Referenced by pastix_subtask_trsm().