|
static int_t * | intMalloc_symbfact (int_t) |
|
static int_t * | intCalloc_symbfact (int_t) |
|
static int_t | initParmsAndStats (psymbfact_stat_t *PS) |
|
static void | estimate_memUsage (int_t, int, superlu_dist_mem_usage_t *, float *, float *, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, comm_symbfact_t *, psymbfact_stat_t *) |
|
static void | symbfact_free (int, int, Llu_symbfact_t *, vtcsInfo_symbfact_t *, comm_symbfact_t *) |
|
static int_t | denseSep_symbfact (int, int_t, int, int, int, int_t *, int_t *, int, int, int, int_t, int_t, int_t *, int_t *, int_t *, int_t *, int_t *, MPI_Comm, MPI_Comm *, Llu_symbfact_t *, Pslu_freeable_t *_freeable, vtcsInfo_symbfact_t *, comm_symbfact_t *, psymbfact_stat_t *) |
|
static int_t | dnsUpSeps_symbfact (int_t, int, int, int, int, int_t *, int_t *, int_t, Llu_symbfact_t *, Pslu_freeable_t *, vtcsInfo_symbfact_t *, comm_symbfact_t *, psymbfact_stat_t *, int_t *, int_t *, int_t *) |
|
static void | intraLvl_symbfact (SuperMatrix *, int, int, int, int, int, int_t *, int_t *, int, int, int_t, int_t, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, comm_symbfact_t *, psymbfact_stat_t *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, MPI_Comm, MPI_Comm *) |
|
static void | initLvl_symbfact (int_t, int, int_t, int_t, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *, MPI_Comm, int_t *, int_t, int_t) |
|
static void | createComm (int, int, MPI_Comm *, MPI_Comm *) |
|
static void | freeComm (int, int, MPI_Comm *, MPI_Comm *) |
|
static void | domain_symbfact (SuperMatrix *, int, int, int, int, int, int_t *, int_t *, int_t, int_t, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, comm_symbfact_t *, psymbfact_stat_t *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t *) |
|
static float | allocPrune_domain (int_t, int_t, Llu_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *) |
|
static float | allocPrune_lvl (Llu_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *) |
|
static int | symbfact_alloc (int_t, int, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, comm_symbfact_t *, psymbfact_stat_t *) |
|
static float | symbfact_mapVtcs (int, int, int, SuperMatrix *, int_t *, int_t *, Pslu_freeable_t *, vtcsInfo_symbfact_t *, int_t *, int_t, psymbfact_stat_t *) |
|
static void | symbfact_distributeMatrix (int, int, int, SuperMatrix *, int_t *, int_t *, matrix_symbfact_t *, Pslu_freeable_t *, vtcsInfo_symbfact_t *, int_t *, MPI_Comm *) |
|
static int_t | interLvl_symbfact (SuperMatrix *, int, int, int, int, int, int, int, int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, int_t *, Llu_symbfact_t *, Pslu_freeable_t *, comm_symbfact_t *, vtcsInfo_symbfact_t *, psymbfact_stat_t *, MPI_Comm, MPI_Comm *) |
|
static float | cntsVtcs (int_t, int, int, Pslu_freeable_t *, Llu_symbfact_t *, vtcsInfo_symbfact_t *, int_t *, int_t *, int_t *, psymbfact_stat_t *, MPI_Comm *) |
|
float | symbfact_dist (int nprocs_num, int nprocs_symb, SuperMatrix *A, int_t *perm_c, int_t *perm_r, int_t *sizes, int_t *fstVtxSep, Pslu_freeable_t *Pslu_freeable, MPI_Comm *num_comm, MPI_Comm *symb_comm, superlu_dist_mem_usage_t *symb_mem_usage) |
|
static int_t | symbfact_vtx (int_t n, int iam, int_t vtx, int_t vtx_lid, int_t vtx_prid, int_t computeL, int domain_symb, int_t fstVtx, int_t lstVtx, int_t snrep_lid, int_t szSn, int_t *p_next, int_t *marker, int_t *sub_rcvd, int_t sub_rcvd_sz, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS, int_t *p_neltsVtxInit, int_t *p_neltsVtx, int_t *p_neltsVtx_CSep, int_t *p_neltsZrVtx, int_t *p_neltsMatched, int_t mark_vtx, int_t *p_prval_curvtx, int_t vtx_bel_othSn, int_t *p_vtx_bel_mySn) |
|
static int_t | updateRcvd_prGraph (int_t n, int iam, int_t *sub_rcvd, int_t sub_rcvd_sz, int_t fstVtx_toUpd, int_t lstVtx_toUpd, int_t pr_offset, int computeL, int_t *marker, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS) |
|
static int_t | update_prGraph (int iam, int_t n, int_t fstVtx_blk, int_t lstVtx_blk, int_t snrep_lid, int_t pr_offset, int_t prval_cursn, int_t xsub_snp1, int computeL, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, psymbfact_stat_t *PS) |
|
static int_t | blk_symbfact (SuperMatrix *A, int iam, int lvl, int szSep, int ind_sizes1, int ind_sizes2, int_t *sizes, int_t *fstVtxSep, int_t fstVtx_loc, int_t fstVtx_blk, int_t lstVtx_blk, int_t *lsub_rcvd, int_t lsub_rcvd_sz, int_t *usub_rcvd, int_t usub_rcvd_sz, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, comm_symbfact_t *CS, psymbfact_stat_t *PS, int_t *marker, int_t *p_mark, int_t *p_nextl, int_t *p_nextu, int_t *p_neltsZr, int_t *p_neltsTotal, int_t *p_nsuper_loc) |
|
static int_t | expand_RL (int_t computeRcvd, int_t n, int iam, int_t *lsub_rcvd, int_t lsub_rcvd_sz, int_t *usub_rcvd, int_t usub_rcvd_sz, int_t vtxXp, int_t vtx_upd_pr, int_t lstVtx_upd_pr, int_t fstVtx_srcUpd, int_t lstVtx_srcUpd, int_t fstVtx_toUpd, int_t lstVtx_toUpd, int_t nvtcs_toUpd, int computeL, int_t *pmarkl, int_t *marker, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS) |
|
static int_t | rl_update (int computeRcvd, int_t n, int iam, int_t *lsub_rcvd, int_t lsub_rcvd_sz, int_t *usub_rcvd, int_t usub_rcvd_sz, int_t fstVtx_srcUpd, int_t lstVtx_srcUpd, int_t indBlk_srcUpd, int_t fstVtx_toUpd, int_t lstVtx_toUpd, int_t nvtcs_toUpd, int computeL, int_t *pmarkl, int_t *marker, Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact, vtcsInfo_symbfact_t *VInfo, psymbfact_stat_t *PS) |
|
static int_t | dnsCurSep_symbfact (int_t n, int iam, int ind_sizes1, int ind_sizes2, int_t *sizes, int_t *fstVtxSep, int szSep, int npNode, int_t rcvd_dnsSep, int_t *p_nextl, int_t *p_nextu, int_t *p_mark, int_t *p_nsuper_loc, int_t *marker, MPI_Comm ndCom, Llu_symbfact_t *Llu_symbfact, Pslu_freeable_t *Pslu_freeable, vtcsInfo_symbfact_t *VInfo, comm_symbfact_t *CS, psymbfact_stat_t *PS) |
|
Implements parallel symbolic factorization.
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.
-- Parallel symbolic factorization routine (version 2.3) --
Lawrence Berkeley National Lab, Univ. of California Berkeley - July 2003
INRIA France - January 2004
Laura Grigori
November 1, 2007
Feburary 20, 2008
October 15, 2008
January 28, 2018
The function symbfact_dist implements the parallel symbolic factorization
algorithm described in the paper:
Parallel Symbolic Factorization for Sparse LU with Static Pivoting,
Laura Grigori, James W. Demmel and Xiaoye S. Li,
Pages 1289-1314, SIAM Journal on Scientific Computing, Volume 29, Issue 3.