SuperLU_DIST  4.0
superlu_dist on CPU and GPU clusters
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Functions | Variables
zlook_ahead_update.c File Reference

Look-ahead update of the Schur complement. More...

Functions

 arrive_at_ublock (j,&iukp,&rukp,&jb,&ljb,&nsupc, iukp0, rukp0, usub, perm_u, xsup, grid)
 
 while (usub[jj]==klst)
 
 if (0)
 
 for (jj=iukp;jj< iukp+nsupc;++jj)
 
 if (myrow==krow)
 
 if (look_ahead[kk]==k0 &&kcol==mycol)
 

Variables

 j
 
 jj0
 
 jj = iukp
 
 lptr = lptr0
 
 luptr = luptr0
 
 else
 
 tempu = bigU
 
 rukp = usub[iukp - 1]
 
 nbrow = lsub[1]
 
 iukp = nsupc
 
 kk = jb
 
 kcol = PCOL (kk, grid)
 
 kk0 = perm_u[2 * (j - 1)]
 
 look_id = kk0 % (1 + num_look_aheads)
 

Detailed Description

Look-ahead update of the Schur complement.

Purpose

PZGSTRF performs the LU factorization in parallel.

Arguments

options (input) superlu_options_t*
        The structure defines the input parameters to control
        how the LU decomposition will be performed.
        The following field should be defined:
        o ReplaceTinyPivot (yes_no_t)
          Specifies whether to replace the tiny diagonals by
          sqrt(epsilon)*norm(A) during LU factorization.
m      (input) int
       Number of rows in the matrix.
n      (input) int
       Number of columns in the matrix.
anorm  (input) double
       The norm of the original matrix A, or the scaled A if
       equilibration was done.
LUstruct (input/output) LUstruct_t*
        The data structures to store the distributed L and U factors.
        The following fields should be defined:
        o Glu_persist (input) Glu_persist_t*
          Global data structure (xsup, supno) replicated on all processes,
          describing the supernode partition in the factored matrices
          L and U:
        xsup[s] is the leading column of the s-th supernode,
            supno[i] is the supernode number to which column i belongs.
        o Llu (input/output) LocalLU_t*
          The distributed data structures to store L and U factors.
          See superlu_ddefs.h for the definition of 'LocalLU_t'.
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_ddefs.h for the definition of 'gridinfo_t'.
stat   (output) SuperLUStat_t*
       Record the statistics on runtime and floating-point operation count.
       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
       > 0: if info = i, U(i,i) is exactly zero. The factorization has
            been completed, but the factor U is exactly singular,
            and division by zero will occur if it is used to solve a
            system of equations.
– Distributed SuperLU routine (version 4.0) –
Lawrence Berkeley National Lab, Univ. of California Berkeley.
October 1, 2014

Function Documentation

arrive_at_ublock ( j  ,
iukp,
rukp,
jb,
ljb,
nsupc,
iukp0  ,
rukp0  ,
usub  ,
perm_u  ,
xsup  ,
grid   
)
for ( )
if ( )
if ( myrow  = = krow)
if ( look_ahead  [kk] = = k0 && kcol == mycol)
while ( usub  [jj] = = klst)

Variable Documentation

else
Initial value:
{
tempu = bigU
tempu
Definition: dlook_ahead_update.c:71
iukp = nsupc
j
jj = iukp
jj0
kcol = PCOL (kk, grid)
kk = jb
kk0 = perm_u[2 * (j - 1)]
look_id = kk0 % (1 + num_look_aheads)
lptr = lptr0
luptr = luptr0
nbrow = lsub[1]
rukp = usub[iukp - 1]
tempu = bigU