SRC/psymbfact.c File Reference

Implements parallel symbolic factorization. More...

#include <limits.h>
#include <math.h>
#include "superlu_ddefs.h"
#include "psymbfact.h"

Include dependency graph for psymbfact.c:


Functions

static int_tintMalloc_symbfact (int_t)
static int_tintCalloc_symbfact (int_t)
static int_t initParmsAndStats (psymbfact_stat_t *PS)
static void estimate_memUsage (int_t, int, 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 n,int iam,int_t fstVtx,int_t lstVtx,Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact,vtcsInfo_symbfact_t *VInfo,psymbfact_stat_t *PS, MPI_Comm ndComm, int_t *marker, int_t nextl, int_t nextu)
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 fstVtx,int_t lstVtx,Llu_symbfact_t *Llu_symbfact,vtcsInfo_symbfact_t *VInfo,psymbfact_stat_t *PS)
static float allocPrune_lvl (Llu_symbfact_t *Llu_symbfact,vtcsInfo_symbfact_t *VInfo,psymbfact_stat_t *PS)
static int symbfact_alloc (int_t n,int nprocs,Pslu_freeable_t *Pslu_freeable, Llu_symbfact_t *Llu_symbfact,vtcsInfo_symbfact_t *VInfo,comm_symbfact_t *CS,psymbfact_stat_t *PS)
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 n,int iam,int nprocs_symb,Pslu_freeable_t *Pslu_freeable,Llu_symbfact_t *Llu_symbfact,vtcsInfo_symbfact_t *VInfo,int_t *tempArray,int_t *fstVtxSep,int_t *sizes,psymbfact_stat_t *PS,MPI_Comm *commLvls)
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, 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)

Detailed Description

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

 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.
 

Function Documentation

static float allocPrune_domain ( int_t  fstVtx,
int_t  lstVtx,
Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
psymbfact_stat_t PS 
) [static]

 Allocate storage for data structures necessary for pruned graphs.
 For those unpredictable size, make a guess as FILL * n.
 Return value:
     0 if enough memory was available;
     otherwise, return the amount of space intended to allocate 
     when memory allocation failure occurred.
 

static float allocPrune_lvl ( Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
psymbfact_stat_t PS 
) [static]

 Allocate storage for data structures necessary for pruned graphs.
 For those unpredictable size, make a guess as FILL * n.
 Return value:
     0 if enough memory was available;
     otherwise, return the amount of space intended to allocate 
     when memory allocation failure occurred.
 

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]

static float cntsVtcs ( int_t  n,
int  iam,
int  nprocs_symb,
Pslu_freeable_t Pslu_freeable,
Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
int_t tempArray,
int_t fstVtxSep,
int_t sizes,
psymbfact_stat_t PS,
MPI_Comm *  commLvls 
) [static]

 Purpose
 =======

 Computes an estimation of the number of elements in columns of L
 and rows of U.  Stores this information in cntelt_vtcs, and it will
 be used in the right-looking symbolic factorization.
 

static void createComm ( int  iam,
int  nprocs,
MPI_Comm *  commLvls,
MPI_Comm *  symb_comm 
) [static]

static int_t denseSep_symbfact ( int  rcvd_dnsSep,
int_t  n,
int  iam,
int  ind_sizes1,
int  ind_sizes2,
int_t sizes,
int_t fstVtxSep,
int  szSep,
int  fstP,
int  lstP,
int_t  fstVtx_blkCyc,
int_t  nblk_loc,
int_t p_nextl,
int_t p_nextu,
int_t p_mark,
int_t p_nsuper_loc,
int_t marker,
MPI_Comm  ndCom,
MPI_Comm *  symb_comm,
Llu_symbfact_t Llu_symbfact,
Pslu_freeable_t Pslu_freeable,
vtcsInfo_symbfact_t VInfo,
comm_symbfact_t CS,
psymbfact_stat_t PS 
) [static]

   All processors affected to current node must call this routine
   when VInfo->filledSep == FILLED_SEP
   This is necessary since subsequent routines called from here use 
   MPI_allreduce among all processors affected to curent node

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 
) [static]

static int_t dnsUpSeps_symbfact ( int_t  n,
int  iam,
int  szSep,
int  ind_sizes1,
int  ind_sizes2,
int_t sizes,
int_t fstVtxSep,
int_t  fstVtx_dns,
Llu_symbfact_t Llu_symbfact,
Pslu_freeable_t Pslu_freeable,
vtcsInfo_symbfact_t VInfo,
comm_symbfact_t CS,
psymbfact_stat_t PS,
int_t p_nextl,
int_t p_nextu,
int_t p_nsuper_loc 
) [static]

static void domain_symbfact ( SuperMatrix A,
int  iam,
int  lvl,
int  szSep,
int  ind_sizes1,
int  ind_sizes2,
int_t sizes,
int_t fstVtxSep,
int_t  fstVtx,
int_t  lstVtx,
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]

static void estimate_memUsage ( int_t  n,
int  iam,
mem_usage_t symb_mem_usage,
float *  p_totalMemLU,
float *  p_overestimMem,
Pslu_freeable_t Pslu_freeable,
Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
comm_symbfact_t CS,
psymbfact_stat_t PS 
) [static]

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]

static void freeComm ( int  iam,
int  nprocs,
MPI_Comm *  commLvls,
MPI_Comm *  symb_comm 
) [static]

static void initLvl_symbfact ( int_t  n,
int  iam,
int_t  fstVtx,
int_t  lstVtx,
Pslu_freeable_t Pslu_freeable,
Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
psymbfact_stat_t PS,
MPI_Comm  ndComm,
int_t marker,
int_t  nextl,
int_t  nextu 
) [static]

 Compute counts of rows/columns of current separator.
 cntelt_vtcs[i] is 0 when i is nonzero before current separator
 and n when i is zero before current separator.

 Set up nvtcsLvl_loc.
 

static int_t initParmsAndStats ( psymbfact_stat_t PS  )  [static]

 
 Purpose
 =======
 Initialize relaxation parameters and statistics variables
 

static int_t * intCalloc_symbfact ( int_t  n  )  [static]

static int_t interLvl_symbfact ( SuperMatrix A,
int  iam,
int  lvl,
int  szSep,
int  fstP,
int  lstP,
int  ind_sizes1,
int  ind_sizes2,
int_t sizes,
int_t fstVtxSep,
int_t p_nextl,
int_t p_nextu,
int_t p_nsuper_loc,
int_t pmark,
int_t marker,
Llu_symbfact_t Llu_symbfact,
Pslu_freeable_t Pslu_freeable,
comm_symbfact_t CS,
vtcsInfo_symbfact_t VInfo,
psymbfact_stat_t PS,
MPI_Comm  ndComm,
MPI_Comm *  symb_comm 
) [static]

static int_t * intMalloc_symbfact ( int_t  n  )  [static]

static void intraLvl_symbfact ( SuperMatrix A,
int  iam,
int  lvl,
int  szSep,
int  ind_sizes1,
int  ind_sizes2,
int_t sizes,
int_t fstVtxSep,
int  fstP,
int  lstP,
int_t  fstVtx,
int_t  lstVtx,
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,
MPI_Comm  ndComm,
MPI_Comm *  symb_comm 
) [static]

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]

static int symbfact_alloc ( int_t  n,
int  nprocs,
Pslu_freeable_t Pslu_freeable,
Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
comm_symbfact_t CS,
psymbfact_stat_t PS 
) [static]

 Allocate storage for the data structures common to symbolic factorization
 routines. For those unpredictable size, make a guess as FILL * nnz(A).
 Return value:
     0 if enough memory was available;
     otherwise, return the amount of space intended to allocate 
     when memory allocation failure occurred.
 

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,
mem_usage_t symb_mem_usage 
)

 
 Purpose
 =======
   symbfact_dist() performs symbolic factorization of matrix A suitable
   for performing the supernodal Gaussian elimination with no pivoting (GEPP). 
   This routine computes the structure of one column of L and one row of U 
   at a time.  It uses:
        o distributed input matrix
        o supernodes
        o symmetric structure pruning

 Arguments
 =========

 nprocs_num (input) int
         Number of processors SuperLU_DIST is executed on, and the input 
         matrix is distributed on.

 nprocs_symb (input) int
         Number of processors on which the symbolic factorization is
         performed.  It is equal to the number of independent domains
         idenfied in the graph partitioning algorithm executed
         previously and has to be a power of 2.  It corresponds to
         number of leaves in the separator tree.

 A       (input) SuperMatrix*
         Matrix A in A*X=B, of dimension (A->nrow, A->ncol). The
         number of the linear equations is A->nrow.  Matrix A is
         distributed in NRformat_loc format.
         Matrix A is not yet permuted by perm_c.

 perm_c  (input) int_t*
	   Column permutation vector of size A->ncol, which defines the 
         permutation matrix Pc; perm_c[i] = j means column i of A is 
         in position j in A*Pc.

 perm_r  (input) int_t*
	   Row permutation vector of size A->nrow, which defines the 
         permutation matrix Pr; perm_r[i] = j means column i of A is 
         in position j in Pr*A.

 sizes   (input) int_t*
         Contains the number of vertices in each separator.

 fstVtxSep (input) int_t*
         Contains first vertex for each separator.

 Pslu_freeable (output) Pslu_freeable_t*
         Returns the local L and U structure, and global to local
         information on the indexing of the vertices.  Contains all
         the information necessary for performing the data
         distribution towards the numeric factorization.

 num_comm (input) MPI_Comm*
         Communicator for numerical factorization

 symb_comm (input) MPI_Comm*
         Communicator for symbolic factorization

 symb_mem_usage (input) mem_usage_t *
         Statistics on memory usage.

 Return value
 ============
   < 0, number of bytes allocated on return from the symbolic factorization.
   > 0, number of bytes allocated when out of memory.

 Sketch of the algorithm
 =======================

  Distrbute the vertices on the processors using a subtree to
  subcube algorithm.

  Redistribute the structure of the input matrix A according to the
  subtree to subcube computed previously for the symbolic
  factorization routine.  This implies in particular a distribution
  from nprocs_num processors to nprocs_symb processors.

  Perform symbolic factorization guided by the separator tree provided by
  a graph partitioning algorithm.  The symbolic factorization uses a 
  combined left-looking, right-looking approach. 
 

static void symbfact_distributeMatrix ( int  iam,
int  nprocs_num,
int  nprocs_symb,
SuperMatrix A,
int_t perm_c,
int_t perm_r,
matrix_symbfact_t AS,
Pslu_freeable_t Pslu_freeable,
vtcsInfo_symbfact_t VInfo,
int_t tempArray,
MPI_Comm *  num_comm 
) [static]

 Purpose 
 =======

 Distribute input matrix A for the symbolic factorization routine.
 Only structural information is distributed.  The redistributed
 matrix has its rows and columns permuted according to perm_r and
 perm_c. A is not modified during this routine.
 

static void symbfact_free ( int  iam,
int  nprocs,
Llu_symbfact_t Llu_symbfact,
vtcsInfo_symbfact_t VInfo,
comm_symbfact_t CS 
) [static]

static float symbfact_mapVtcs ( int  iam,
int  nprocs_num,
int  nprocs_symb,
SuperMatrix A,
int_t fstVtxSep,
int_t sizes,
Pslu_freeable_t Pslu_freeable,
vtcsInfo_symbfact_t VInfo,
int_t tempArray,
int_t  maxSzBlk,
psymbfact_stat_t PS 
) [static]

 Purpose
 =======

  symbfact_mapVtcs maps the vertices of the graph of the input
  matrix A on nprocs_symb processors, using the separator tree
  returned by a graph partitioning algorithm from the previous step
  of the symbolic factorization.  The number of processors
  nprocs_symb must be a power of 2.

 Description of the algorithm
 ============================

  A subtree to subcube algorithm is used first to map the processors
  on the nodes of the separator tree.

  For each node of the separator tree, its corresponding vertices
  are distributed on the processors affected to this node, using a
  block cyclic distribution.

  After the distribution, fields of the VInfo structure are
  computed.  The array globToLoc and maxNvtcsPProc of Pslu_freeable
  are also computed.
 

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]

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]

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]


Generated on Sat Aug 29 04:21:57 2009 for SuperLUDistributed by  doxygen 1.5.9