SuperLU Distributed 9.0.0
gpu3d
|
Solves a system of distributed linear equations A*X = B with a general N-by-N matrix A using the LU factors computed previously. More...
Macros | |
#define | ISEND_IRECV |
Functions | |
int_t | dtrs_B_init3d (int_t nsupers, double *x, int nrhs, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d) |
int_t | dtrs_B_init3d_newsolve (int_t nsupers, double *x, int nrhs, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, dtrf3Dpartition_t *trf3Dpartition) |
int | dtrs_compute_communication_structure (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, int *supernodeMask, gridinfo_t *grid, SuperLUStat_t *stat) |
int_t | dtrs_x_reduction_newsolve (int_t nsupers, double *x, int nrhs, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, dtrf3Dpartition_t *trf3Dpartition, double *recvbuf, xtrsTimer_t *xtrsTimer) |
int_t | dtrs_x_broadcast_newsolve (int_t nsupers, double *x, int nrhs, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, dtrf3Dpartition_t *trf3Dpartition, double *recvbuf, xtrsTimer_t *xtrsTimer) |
int_t | dreduceSolvedX_newsolve (int_t treeId, int_t sender, int_t receiver, double *x, int nrhs, dtrf3Dpartition_t *trf3Dpartition, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, double *recvbuf, xtrsTimer_t *xtrsTimer) |
int_t | dtrs_X_gather3d (double *x, int nrhs, dtrf3Dpartition_t *trf3Dpartition, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer) |
int_t | dp2pSolvedX3d (int_t treeId, int_t sender, int_t receiver, double *x, int nrhs, dtrf3Dpartition_t *trf3Dpartition, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer) |
int_t | dfsolveReduceLsum3d (int_t treeId, int_t sender, int_t receiver, double *lsum, double *recvbuf, int nrhs, dtrf3Dpartition_t *trf3Dpartition, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer) |
int_t | dbsolve_Xt_bcast (int_t ilvl, dxT_struct *xT_s, int nrhs, dtrf3Dpartition_t *trf3Dpartition, dLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer) |
int_t | dlsumForestFsolve (int_t k, double *lsum, double *x, double *rtemp, dxT_struct *xT_s, int nrhs, dLUstruct_t *LUstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, SuperLUStat_t *stat) |
int_t | dnonLeafForestForwardSolve3d (int_t treeId, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x, double *lsum, dxT_struct *xT_s, double *recvbuf, double *rtemp, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | dleafForestForwardSolve3d (superlu_dist_options_t *options, int_t treeId, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x, double *lsum, double *recvbuf, double *rtemp, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
void | dlsum_fmod_leaf (int_t treeId, dtrf3Dpartition_t *trf3Dpartition, double *lsum, double *x, double *xk, double *rtemp, int nrhs, int knsupc, int_t k, int *fmod, int_t nlb, int_t lptr, int_t luptr, int_t *xsup, gridinfo_t *grid, dLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | dleafForestForwardSolve3d_newsolve (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x, double *lsum, double *recvbuf, double *rtemp, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
void | dForwardSolve3d_newsolve_reusepdgstrs (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, int *supernodeMask, gridinfo3d_t *grid3d, double *x, double *lsum, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
void | dlsum_fmod_leaf_newsolve (dtrf3Dpartition_t *trf3Dpartition, double *lsum, double *x, double *xk, double *rtemp, int nrhs, int knsupc, int_t k, int *fmod, int_t nlb, int_t lptr, int_t luptr, int_t *xsup, gridinfo_t *grid, dLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | dlasum_bmod_Tree (int_t pTree, int_t cTree, double *lsum, double *x, dxT_struct *xT_s, int nrhs, dlsumBmod_buff_t *lbmod_buf, dLUstruct_t *LUstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, SuperLUStat_t *stat) |
int_t | dinitLsumBmod_buff (int_t ns, int nrhs, dlsumBmod_buff_t *lbmod_buf) |
int_t | dfreeLsumBmod_buff (dlsumBmod_buff_t *lbmod_buf) |
int | dpackUblock (int ldu, int_t *indCols, int_t knsupc, int_t iklrow, int_t *usub, double *tempu, double *uval) |
int_t | dpackXbmod (int_t knsupc, int_t ncols, int_t nrhs, int_t *indCols, double *xk, double *tempx) |
int_t | dlsumBmod (int_t gik, int_t gjk, int nrhs, dlsumBmod_buff_t *lbmod_buf, int_t *usub, double *uval, double *xk, double *lsum, int_t *xsup, SuperLUStat_t *stat) |
int_t | dlsumForestBsolve (int_t k, int_t treeId, double *lsum, double *x, dxT_struct *xT_s, int nrhs, dlsumBmod_buff_t *lbmod_buf, dLUstruct_t *LUstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, SuperLUStat_t *stat) |
int_t | dbCastXk2Pck (int_t k, dxT_struct *xT_s, int nrhs, dLUstruct_t *LUstruct, gridinfo_t *grid, xtrsTimer_t *xtrsTimer) |
int_t | dlsumReducePrK (int_t k, double *x, double *lsum, double *recvbuf, int nrhs, dLUstruct_t *LUstruct, gridinfo_t *grid, xtrsTimer_t *xtrsTimer) |
int_t | dnonLeafForestBackSolve3d (int_t treeId, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x, double *lsum, dxT_struct *xT_s, double *recvbuf, MPI_Request *send_req, int nrhs, dlsumBmod_buff_t *lbmod_buf, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | dleafForestBackSolve3d (superlu_dist_options_t *options, int_t treeId, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x, double *lsum, double *recvbuf, MPI_Request *send_req, int nrhs, dlsumBmod_buff_t *lbmod_buf, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | dleafForestBackSolve3d_newsolve (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x, double *lsum, double *recvbuf, MPI_Request *send_req, int nrhs, dlsumBmod_buff_t *lbmod_buf, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
void | dBackSolve3d_newsolve_reusepdgstrs (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, int *supernodeMask, gridinfo3d_t *grid3d, double *x, double *lsum, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
void | dlsum_bmod_GG (double *lsum, double *x, double *xk, int nrhs, dlsumBmod_buff_t *lbmod_buf, int_t k, int *bmod, int_t *Urbs, Ucb_indptr_t **Ucb_indptr, int_t **Ucb_valptr, int_t *xsup, gridinfo_t *grid, dLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
void | dlsum_bmod_GG_newsolve (dtrf3Dpartition_t *trf3Dpartition, double *lsum, double *x, double *xk, int nrhs, dlsumBmod_buff_t *lbmod_buf, int_t k, int *bmod, int_t *Urbs, Ucb_indptr_t **Ucb_indptr, int_t **Ucb_valptr, int_t *xsup, gridinfo_t *grid, dLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | dlocalSolveXkYk (trtype_t trtype, int_t k, double *x, int nrhs, dLUstruct_t *LUstruct, gridinfo_t *grid, SuperLUStat_t *stat) |
int_t | diBcastXk2Pck (int_t k, double *x, int nrhs, int **sendList, MPI_Request *send_req, dLUstruct_t *LUstruct, gridinfo_t *grid, xtrsTimer_t *xtrsTimer) |
int_t | pdReDistribute3d_B_to_X (double *B, int_t m_loc, int nrhs, int_t ldb, int_t fst_row, int_t *ilsum, double *x, dScalePermstruct_t *ScalePermstruct, Glu_persist_t *Glu_persist, gridinfo3d_t *grid3d, dSOLVEstruct_t *SOLVEstruct) |
int_t | pdReDistribute3d_X_to_B (int_t n, double *B, int_t m_loc, int_t ldb, int_t fst_row, int nrhs, double *x, int_t *ilsum, dScalePermstruct_t *ScalePermstruct, Glu_persist_t *Glu_persist, gridinfo3d_t *grid3d, dSOLVEstruct_t *SOLVEstruct) |
void | pdgstrs3d (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *B, int_t m_loc, int_t fst_row, int_t ldb, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, int *info) |
void | pdgstrs3d_newsolve (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *B, int_t m_loc, int_t fst_row, int_t ldb, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, int *info) |
int_t | pdgsTrForwardSolve3d (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x3d, double *lsum3d, dxT_struct *xT_s, double *recvbuf, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | pdgsTrForwardSolve3d_newsolve (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x3d, double *lsum3d, double *recvbuf, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | pdgsTrBackSolve3d (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dScalePermstruct_t *ScalePermstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x3d, double *lsum3d, dxT_struct *xT_s, double *recvbuf, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
int_t | pdgsTrBackSolve3d_newsolve (superlu_dist_options_t *options, int_t n, dLUstruct_t *LUstruct, dtrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, double *x3d, double *lsum3d, double *recvbuf, MPI_Request *send_req, int nrhs, dSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer) |
Variables | |
double * | dready_x |
double * | dready_lsum |
Solves a system of distributed linear equations A*X = B with a general N-by-N matrix A using the LU factors computed previously.
Copyright (c) 2003, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from U.S. Dept. of Energy)
All rights reserved.
The source code is distributed under BSD license, see the file License.txt at the top-level directory.
-- Distributed SuperLU routine (version 9.0) -- Lawrence Berkeley National Lab, Univ. of California Berkeley. October 15, 2008 September 18, 2018 version 6.0 February 8, 2019 version 6.1.1
#define ISEND_IRECV |
void dBackSolve3d_newsolve_reusepdgstrs | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
int * | supernodeMask, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dbCastXk2Pck | ( | int_t | k, |
dxT_struct * | xT_s, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo_t * | grid, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dbsolve_Xt_bcast | ( | int_t | ilvl, |
dxT_struct * | xT_s, | ||
int | nrhs, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
void dForwardSolve3d_newsolve_reusepdgstrs | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
int * | supernodeMask, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dfreeLsumBmod_buff | ( | dlsumBmod_buff_t * | lbmod_buf | ) |
int_t dfsolveReduceLsum3d | ( | int_t | treeId, |
int_t | sender, | ||
int_t | receiver, | ||
double * | lsum, | ||
double * | recvbuf, | ||
int | nrhs, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t diBcastXk2Pck | ( | int_t | k, |
double * | x, | ||
int | nrhs, | ||
int ** | sendList, | ||
MPI_Request * | send_req, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo_t * | grid, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dinitLsumBmod_buff | ( | int_t | ns, |
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf | ||
) |
int_t dlasum_bmod_Tree | ( | int_t | pTree, |
int_t | cTree, | ||
double * | lsum, | ||
double * | x, | ||
dxT_struct * | xT_s, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
dLUstruct_t * | LUstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
SuperLUStat_t * | stat | ||
) |
int_t dleafForestBackSolve3d | ( | superlu_dist_options_t * | options, |
int_t | treeId, | ||
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dleafForestBackSolve3d_newsolve | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dleafForestForwardSolve3d | ( | superlu_dist_options_t * | options, |
int_t | treeId, | ||
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
double * | recvbuf, | ||
double * | rtemp, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dleafForestForwardSolve3d_newsolve | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
double * | recvbuf, | ||
double * | rtemp, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dlocalSolveXkYk | ( | trtype_t | trtype, |
int_t | k, | ||
double * | x, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo_t * | grid, | ||
SuperLUStat_t * | stat | ||
) |
void dlsum_bmod_GG | ( | double * | lsum, |
double * | x, | ||
double * | xk, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
int_t | k, | ||
int * | bmod, | ||
int_t * | Urbs, | ||
Ucb_indptr_t ** | Ucb_indptr, | ||
int_t ** | Ucb_valptr, | ||
int_t * | xsup, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
MPI_Request | send_req[], | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
void dlsum_bmod_GG_newsolve | ( | dtrf3Dpartition_t * | trf3Dpartition, |
double * | lsum, | ||
double * | x, | ||
double * | xk, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
int_t | k, | ||
int * | bmod, | ||
int_t * | Urbs, | ||
Ucb_indptr_t ** | Ucb_indptr, | ||
int_t ** | Ucb_valptr, | ||
int_t * | xsup, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
MPI_Request | send_req[], | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
void dlsum_fmod_leaf | ( | int_t | treeId, |
dtrf3Dpartition_t * | trf3Dpartition, | ||
double * | lsum, | ||
double * | x, | ||
double * | xk, | ||
double * | rtemp, | ||
int | nrhs, | ||
int | knsupc, | ||
int_t | k, | ||
int * | fmod, | ||
int_t | nlb, | ||
int_t | lptr, | ||
int_t | luptr, | ||
int_t * | xsup, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
MPI_Request | send_req[], | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
void dlsum_fmod_leaf_newsolve | ( | dtrf3Dpartition_t * | trf3Dpartition, |
double * | lsum, | ||
double * | x, | ||
double * | xk, | ||
double * | rtemp, | ||
int | nrhs, | ||
int | knsupc, | ||
int_t | k, | ||
int * | fmod, | ||
int_t | nlb, | ||
int_t | lptr, | ||
int_t | luptr, | ||
int_t * | xsup, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
MPI_Request | send_req[], | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dlsumBmod | ( | int_t | gik, |
int_t | gjk, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
int_t * | usub, | ||
double * | uval, | ||
double * | xk, | ||
double * | lsum, | ||
int_t * | xsup, | ||
SuperLUStat_t * | stat | ||
) |
int_t dlsumForestBsolve | ( | int_t | k, |
int_t | treeId, | ||
double * | lsum, | ||
double * | x, | ||
dxT_struct * | xT_s, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
dLUstruct_t * | LUstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
SuperLUStat_t * | stat | ||
) |
int_t dlsumForestFsolve | ( | int_t | k, |
double * | lsum, | ||
double * | x, | ||
double * | rtemp, | ||
dxT_struct * | xT_s, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
SuperLUStat_t * | stat | ||
) |
int_t dlsumReducePrK | ( | int_t | k, |
double * | x, | ||
double * | lsum, | ||
double * | recvbuf, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo_t * | grid, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dnonLeafForestBackSolve3d | ( | int_t | treeId, |
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
dxT_struct * | xT_s, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dlsumBmod_buff_t * | lbmod_buf, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
Pkk(Yk) = sumOver_PrK (Yk)
int_t dnonLeafForestForwardSolve3d | ( | int_t | treeId, |
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x, | ||
double * | lsum, | ||
dxT_struct * | xT_s, | ||
double * | recvbuf, | ||
double * | rtemp, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
Pkk(Yk) = sumOver_PrK (Yk)
int_t dp2pSolvedX3d | ( | int_t | treeId, |
int_t | sender, | ||
int_t | receiver, | ||
double * | x, | ||
int | nrhs, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int dpackUblock | ( | int | ldu, |
int_t * | indCols, | ||
int_t | knsupc, | ||
int_t | iklrow, | ||
int_t * | usub, | ||
double * | tempu, | ||
double * | uval | ||
) |
int_t dpackXbmod | ( | int_t | knsupc, |
int_t | ncols, | ||
int_t | nrhs, | ||
int_t * | indCols, | ||
double * | xk, | ||
double * | tempx | ||
) |
int_t dreduceSolvedX_newsolve | ( | int_t | treeId, |
int_t | sender, | ||
int_t | receiver, | ||
double * | x, | ||
int | nrhs, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
double * | recvbuf, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dtrs_B_init3d | ( | int_t | nsupers, |
double * | x, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d | ||
) |
int_t dtrs_B_init3d_newsolve | ( | int_t | nsupers, |
double * | x, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
dtrf3Dpartition_t * | trf3Dpartition | ||
) |
int dtrs_compute_communication_structure | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
int * | supernodeMask, | ||
gridinfo_t * | grid, | ||
SuperLUStat_t * | stat | ||
) |
int_t dtrs_x_broadcast_newsolve | ( | int_t | nsupers, |
double * | x, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
double * | recvbuf, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dtrs_X_gather3d | ( | double * | x, |
int | nrhs, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t dtrs_x_reduction_newsolve | ( | int_t | nsupers, |
double * | x, | ||
int | nrhs, | ||
dLUstruct_t * | LUstruct, | ||
gridinfo3d_t * | grid3d, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
double * | recvbuf, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
int_t pdgsTrBackSolve3d | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x3d, | ||
double * | lsum3d, | ||
dxT_struct * | xT_s, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
Loop over all the levels from root to leaf
Adding dlsumBmod_buff_t* lbmod_buf
int_t pdgsTrBackSolve3d_newsolve | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x3d, | ||
double * | lsum3d, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
Adding dlsumBmod_buff_t* lbmod_buf
int_t pdgsTrForwardSolve3d | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x3d, | ||
double * | lsum3d, | ||
dxT_struct * | xT_s, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
Loop over all the levels from root to leaf
int_t pdgsTrForwardSolve3d_newsolve | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | x3d, | ||
double * | lsum3d, | ||
double * | recvbuf, | ||
MPI_Request * | send_req, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
xtrsTimer_t * | xtrsTimer | ||
) |
void pdgstrs3d | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | B, | ||
int_t | m_loc, | ||
int_t | fst_row, | ||
int_t | ldb, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
int * | info | ||
) |
Purpose PDGSTRS solves a system of distributed linear equations A*X = B with a general N-by-N matrix A using the LU factorization computed by PDGSTRF. If the equilibration, and row and column permutations were performed, the LU factorization was performed for A1 where A1 = Pc*Pr*diag(R)*A*diag(C)*Pc^T = L*U and the linear system solved is A1 * Y = Pc*Pr*B1, where B was overwritten by B1 = diag(R)*B, and the permutation to B1 by Pc*Pr is applied internally in this routine. Arguments n (input) int (global) The order of the system of linear equations. LUstruct (input) dLUstruct_t* The distributed data structures storing L and U factors. The L and U factors are obtained from PDGSTRF for the possibly scaled and permuted matrix A. See superlu_ddefs.h for the definition of 'dLUstruct_t'. A may be scaled and permuted into A1, so that A1 = Pc*Pr*diag(R)*A*diag(C)*Pc^T = L*U grid (input) gridinfo_t* The 2D process mesh. It contains the MPI communicator, the number of process rows (NPROW), the number of process columns (NPCOL), and my process rank. It is an input argument to all the parallel routines. Grid can be initialized by subroutine SUPERLU_GRIDINIT. See superlu_defs.h for the definition of 'gridinfo_t'. B (input/output) double* On entry, the distributed right-hand side matrix of the possibly equilibrated system. That is, B may be overwritten by diag(R)*B. On exit, the distributed solution matrix Y of the possibly equilibrated system if info = 0, where Y = Pc*diag(C)^(-1)*X, and X is the solution of the original system. m_loc (input) int (local) The local row dimension of matrix B. fst_row (input) int (global) The row number of B's first row in the global matrix. ldb (input) int (local) The leading dimension of matrix B. nrhs (input) int (global) Number of right-hand sides. SOLVEstruct (input) dSOLVEstruct_t* (global) Contains the information for the communication during the solution phase. stat (output) SuperLUStat_t* Record the statistics about the triangular solves. See util.h for the definition of 'SuperLUStat_t'. info (output) int* = 0: successful exit < 0: if info = -i, the i-th argument had an illegal value
Initializing xT
Setup the headers for xT
Reduce the Solve flops from all the grids to grid zero
void pdgstrs3d_newsolve | ( | superlu_dist_options_t * | options, |
int_t | n, | ||
dLUstruct_t * | LUstruct, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
dtrf3Dpartition_t * | trf3Dpartition, | ||
gridinfo3d_t * | grid3d, | ||
double * | B, | ||
int_t | m_loc, | ||
int_t | fst_row, | ||
int_t | ldb, | ||
int | nrhs, | ||
dSOLVEstruct_t * | SOLVEstruct, | ||
SuperLUStat_t * | stat, | ||
int * | info | ||
) |
Reduce the Solve flops from all the grids to grid zero
int_t pdReDistribute3d_B_to_X | ( | double * | B, |
int_t | m_loc, | ||
int | nrhs, | ||
int_t | ldb, | ||
int_t | fst_row, | ||
int_t * | ilsum, | ||
double * | x, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
Glu_persist_t * | Glu_persist, | ||
gridinfo3d_t * | grid3d, | ||
dSOLVEstruct_t * | SOLVEstruct | ||
) |
Purpose Re-distribute B on the diagonal processes of the 2D process mesh (only on grid 0). Note This routine can only be called after the routine pxgstrs_init(), in which the structures of the send and receive buffers are set up. Arguments B (input) double* The distributed right-hand side matrix of the possibly equilibrated system. m_loc (input) int (local) The local row dimension of matrix B. nrhs (input) int (global) Number of right-hand sides. ldb (input) int (local) Leading dimension of matrix B. fst_row (input) int (global) The row number of B's first row in the global matrix. ilsum (input) int* (global) Starting position of each supernode in a full array. x (output) double* The solution vector. It is valid only on the diagonal processes. ScalePermstruct (input) dScalePermstruct_t* The data structure to store the scaling and permutation vectors describing the transformations performed to the original matrix A. grid (input) gridinfo_t* The 2D process mesh. SOLVEstruct (input) dSOLVEstruct_t* Contains the information for the communication during the solution phase. Return value
int_t pdReDistribute3d_X_to_B | ( | int_t | n, |
double * | B, | ||
int_t | m_loc, | ||
int_t | ldb, | ||
int_t | fst_row, | ||
int | nrhs, | ||
double * | x, | ||
int_t * | ilsum, | ||
dScalePermstruct_t * | ScalePermstruct, | ||
Glu_persist_t * | Glu_persist, | ||
gridinfo3d_t * | grid3d, | ||
dSOLVEstruct_t * | SOLVEstruct | ||
) |
Purpose Re-distribute X on the diagonal processes to B distributed on all the processes (only on grid 0) Note This routine can only be called after the routine pxgstrs_init(), in which the structures of the send and receive buffers are set up.
double * dready_lsum |
double* dready_x |