SuperLU Distributed 9.0.0
gpu3d
pzgstrs3d.c File Reference

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

#include <math.h>
#include "superlu_zdefs.h"
Include dependency graph for pzgstrs3d.c:

Macros

#define ISEND_IRECV
 

Functions

int_t ztrs_B_init3d (int_t nsupers, doublecomplex *x, int nrhs, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d)
 
int_t ztrs_B_init3d_newsolve (int_t nsupers, doublecomplex *x, int nrhs, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, ztrf3Dpartition_t *trf3Dpartition)
 
int ztrs_compute_communication_structure (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, int *supernodeMask, gridinfo_t *grid, SuperLUStat_t *stat)
 
int_t ztrs_x_reduction_newsolve (int_t nsupers, doublecomplex *x, int nrhs, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, ztrf3Dpartition_t *trf3Dpartition, doublecomplex *recvbuf, xtrsTimer_t *xtrsTimer)
 
int_t ztrs_x_broadcast_newsolve (int_t nsupers, doublecomplex *x, int nrhs, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, ztrf3Dpartition_t *trf3Dpartition, doublecomplex *recvbuf, xtrsTimer_t *xtrsTimer)
 
int_t zreduceSolvedX_newsolve (int_t treeId, int_t sender, int_t receiver, doublecomplex *x, int nrhs, ztrf3Dpartition_t *trf3Dpartition, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, doublecomplex *recvbuf, xtrsTimer_t *xtrsTimer)
 
int_t ztrs_X_gather3d (doublecomplex *x, int nrhs, ztrf3Dpartition_t *trf3Dpartition, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer)
 
int_t zp2pSolvedX3d (int_t treeId, int_t sender, int_t receiver, doublecomplex *x, int nrhs, ztrf3Dpartition_t *trf3Dpartition, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer)
 
int_t zfsolveReduceLsum3d (int_t treeId, int_t sender, int_t receiver, doublecomplex *lsum, doublecomplex *recvbuf, int nrhs, ztrf3Dpartition_t *trf3Dpartition, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer)
 
int_t zbsolve_Xt_bcast (int_t ilvl, zxT_struct *xT_s, int nrhs, ztrf3Dpartition_t *trf3Dpartition, zLUstruct_t *LUstruct, gridinfo3d_t *grid3d, xtrsTimer_t *xtrsTimer)
 
int_t zlsumForestFsolve (int_t k, doublecomplex *lsum, doublecomplex *x, doublecomplex *rtemp, zxT_struct *xT_s, int nrhs, zLUstruct_t *LUstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, SuperLUStat_t *stat)
 
int_t znonLeafForestForwardSolve3d (int_t treeId, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, zxT_struct *xT_s, doublecomplex *recvbuf, doublecomplex *rtemp, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t zleafForestForwardSolve3d (superlu_dist_options_t *options, int_t treeId, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, doublecomplex *recvbuf, doublecomplex *rtemp, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
void zlsum_fmod_leaf (int_t treeId, ztrf3Dpartition_t *trf3Dpartition, doublecomplex *lsum, doublecomplex *x, doublecomplex *xk, doublecomplex *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, zLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t zleafForestForwardSolve3d_newsolve (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, doublecomplex *recvbuf, doublecomplex *rtemp, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
void zForwardSolve3d_newsolve_reusepdgstrs (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, int *supernodeMask, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
void zlsum_fmod_leaf_newsolve (ztrf3Dpartition_t *trf3Dpartition, doublecomplex *lsum, doublecomplex *x, doublecomplex *xk, doublecomplex *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, zLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t zlasum_bmod_Tree (int_t pTree, int_t cTree, doublecomplex *lsum, doublecomplex *x, zxT_struct *xT_s, int nrhs, zlsumBmod_buff_t *lbmod_buf, zLUstruct_t *LUstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, SuperLUStat_t *stat)
 
int_t zinitLsumBmod_buff (int_t ns, int nrhs, zlsumBmod_buff_t *lbmod_buf)
 
int_t zfreeLsumBmod_buff (zlsumBmod_buff_t *lbmod_buf)
 
int zpackUblock (int ldu, int_t *indCols, int_t knsupc, int_t iklrow, int_t *usub, doublecomplex *tempu, doublecomplex *uval)
 
int_t zpackXbmod (int_t knsupc, int_t ncols, int_t nrhs, int_t *indCols, doublecomplex *xk, doublecomplex *tempx)
 
int_t zlsumBmod (int_t gik, int_t gjk, int nrhs, zlsumBmod_buff_t *lbmod_buf, int_t *usub, doublecomplex *uval, doublecomplex *xk, doublecomplex *lsum, int_t *xsup, SuperLUStat_t *stat)
 
int_t zlsumForestBsolve (int_t k, int_t treeId, doublecomplex *lsum, doublecomplex *x, zxT_struct *xT_s, int nrhs, zlsumBmod_buff_t *lbmod_buf, zLUstruct_t *LUstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, SuperLUStat_t *stat)
 
int_t zbCastXk2Pck (int_t k, zxT_struct *xT_s, int nrhs, zLUstruct_t *LUstruct, gridinfo_t *grid, xtrsTimer_t *xtrsTimer)
 
int_t zlsumReducePrK (int_t k, doublecomplex *x, doublecomplex *lsum, doublecomplex *recvbuf, int nrhs, zLUstruct_t *LUstruct, gridinfo_t *grid, xtrsTimer_t *xtrsTimer)
 
int_t znonLeafForestBackSolve3d (int_t treeId, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, zxT_struct *xT_s, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zlsumBmod_buff_t *lbmod_buf, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t zleafForestBackSolve3d (superlu_dist_options_t *options, int_t treeId, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zlsumBmod_buff_t *lbmod_buf, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t zleafForestBackSolve3d_newsolve (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zlsumBmod_buff_t *lbmod_buf, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
void zBackSolve3d_newsolve_reusepdgstrs (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, int *supernodeMask, gridinfo3d_t *grid3d, doublecomplex *x, doublecomplex *lsum, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
void zlsum_bmod_GG (doublecomplex *lsum, doublecomplex *x, doublecomplex *xk, int nrhs, zlsumBmod_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, zLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
void zlsum_bmod_GG_newsolve (ztrf3Dpartition_t *trf3Dpartition, doublecomplex *lsum, doublecomplex *x, doublecomplex *xk, int nrhs, zlsumBmod_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, zLocalLU_t *Llu, MPI_Request send_req[], SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t zlocalSolveXkYk (trtype_t trtype, int_t k, doublecomplex *x, int nrhs, zLUstruct_t *LUstruct, gridinfo_t *grid, SuperLUStat_t *stat)
 
int_t ziBcastXk2Pck (int_t k, doublecomplex *x, int nrhs, int **sendList, MPI_Request *send_req, zLUstruct_t *LUstruct, gridinfo_t *grid, xtrsTimer_t *xtrsTimer)
 
int_t pzReDistribute3d_B_to_X (doublecomplex *B, int_t m_loc, int nrhs, int_t ldb, int_t fst_row, int_t *ilsum, doublecomplex *x, zScalePermstruct_t *ScalePermstruct, Glu_persist_t *Glu_persist, gridinfo3d_t *grid3d, zSOLVEstruct_t *SOLVEstruct)
 
int_t pzReDistribute3d_X_to_B (int_t n, doublecomplex *B, int_t m_loc, int_t ldb, int_t fst_row, int nrhs, doublecomplex *x, int_t *ilsum, zScalePermstruct_t *ScalePermstruct, Glu_persist_t *Glu_persist, gridinfo3d_t *grid3d, zSOLVEstruct_t *SOLVEstruct)
 
void pzgstrs3d (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *B, int_t m_loc, int_t fst_row, int_t ldb, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, int *info)
 
void pzgstrs3d_newsolve (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *B, int_t m_loc, int_t fst_row, int_t ldb, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, int *info)
 
int_t pzgsTrForwardSolve3d (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x3d, doublecomplex *lsum3d, zxT_struct *xT_s, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t pzgsTrForwardSolve3d_newsolve (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x3d, doublecomplex *lsum3d, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t pzgsTrBackSolve3d (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, zScalePermstruct_t *ScalePermstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x3d, doublecomplex *lsum3d, zxT_struct *xT_s, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 
int_t pzgsTrBackSolve3d_newsolve (superlu_dist_options_t *options, int_t n, zLUstruct_t *LUstruct, ztrf3Dpartition_t *trf3Dpartition, gridinfo3d_t *grid3d, doublecomplex *x3d, doublecomplex *lsum3d, doublecomplex *recvbuf, MPI_Request *send_req, int nrhs, zSOLVEstruct_t *SOLVEstruct, SuperLUStat_t *stat, xtrsTimer_t *xtrsTimer)
 

Variables

doublecomplexzready_x
 
doublecomplexzready_lsum
 

Detailed Description

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

Macro Definition Documentation

◆ ISEND_IRECV

#define ISEND_IRECV

Function Documentation

◆ pzgsTrBackSolve3d()

int_t pzgsTrBackSolve3d ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x3d,
doublecomplex lsum3d,
zxT_struct xT_s,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)

Loop over all the levels from root to leaf

Adding dlsumBmod_buff_t* lbmod_buf

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzgsTrBackSolve3d_newsolve()

int_t pzgsTrBackSolve3d_newsolve ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x3d,
doublecomplex lsum3d,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)

Adding dlsumBmod_buff_t* lbmod_buf

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzgsTrForwardSolve3d()

int_t pzgsTrForwardSolve3d ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x3d,
doublecomplex lsum3d,
zxT_struct xT_s,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)

Loop over all the levels from root to leaf

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzgsTrForwardSolve3d_newsolve()

int_t pzgsTrForwardSolve3d_newsolve ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x3d,
doublecomplex lsum3d,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzgstrs3d()

void pzgstrs3d ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex B,
int_t  m_loc,
int_t  fst_row,
int_t  ldb,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
int *  info 
)
Purpose


PZGSTRS solves a system of distributed linear equations
A*X = B with a general N-by-N matrix A using the LU factorization
computed by PZGSTRF.
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) zLUstruct_t*
       The distributed data structures storing L and U factors.
       The L and U factors are obtained from PZGSTRF for
       the possibly scaled and permuted matrix A.
       See superlu_ddefs.h for the definition of 'zLUstruct_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) doublecomplex*
       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) zSOLVEstruct_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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzgstrs3d_newsolve()

void pzgstrs3d_newsolve ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex B,
int_t  m_loc,
int_t  fst_row,
int_t  ldb,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
int *  info 
)

Reduce the Solve flops from all the grids to grid zero

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzReDistribute3d_B_to_X()

int_t pzReDistribute3d_B_to_X ( doublecomplex B,
int_t  m_loc,
int  nrhs,
int_t  ldb,
int_t  fst_row,
int_t ilsum,
doublecomplex x,
zScalePermstruct_t ScalePermstruct,
Glu_persist_t Glu_persist,
gridinfo3d_t grid3d,
zSOLVEstruct_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) doublecomplex*
       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) doublecomplex*
       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

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pzReDistribute3d_X_to_B()

int_t pzReDistribute3d_X_to_B ( int_t  n,
doublecomplex B,
int_t  m_loc,
int_t  ldb,
int_t  fst_row,
int  nrhs,
doublecomplex x,
int_t ilsum,
zScalePermstruct_t ScalePermstruct,
Glu_persist_t Glu_persist,
gridinfo3d_t grid3d,
zSOLVEstruct_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.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zBackSolve3d_newsolve_reusepdgstrs()

void zBackSolve3d_newsolve_reusepdgstrs ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
int *  supernodeMask,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zbCastXk2Pck()

int_t zbCastXk2Pck ( int_t  k,
zxT_struct xT_s,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo_t grid,
xtrsTimer_t xtrsTimer 
)
Here is the caller graph for this function:

◆ zbsolve_Xt_bcast()

int_t zbsolve_Xt_bcast ( int_t  ilvl,
zxT_struct xT_s,
int  nrhs,
ztrf3Dpartition_t trf3Dpartition,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zForwardSolve3d_newsolve_reusepdgstrs()

void zForwardSolve3d_newsolve_reusepdgstrs ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
int *  supernodeMask,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zfreeLsumBmod_buff()

int_t zfreeLsumBmod_buff ( zlsumBmod_buff_t lbmod_buf)
Here is the caller graph for this function:

◆ zfsolveReduceLsum3d()

int_t zfsolveReduceLsum3d ( int_t  treeId,
int_t  sender,
int_t  receiver,
doublecomplex lsum,
doublecomplex recvbuf,
int  nrhs,
ztrf3Dpartition_t trf3Dpartition,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
xtrsTimer_t xtrsTimer 
)
Here is the caller graph for this function:

◆ ziBcastXk2Pck()

int_t ziBcastXk2Pck ( int_t  k,
doublecomplex x,
int  nrhs,
int **  sendList,
MPI_Request *  send_req,
zLUstruct_t LUstruct,
gridinfo_t grid,
xtrsTimer_t xtrsTimer 
)
Here is the caller graph for this function:

◆ zinitLsumBmod_buff()

int_t zinitLsumBmod_buff ( int_t  ns,
int  nrhs,
zlsumBmod_buff_t lbmod_buf 
)
Here is the caller graph for this function:

◆ zlasum_bmod_Tree()

int_t zlasum_bmod_Tree ( int_t  pTree,
int_t  cTree,
doublecomplex lsum,
doublecomplex x,
zxT_struct xT_s,
int  nrhs,
zlsumBmod_buff_t lbmod_buf,
zLUstruct_t LUstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
SuperLUStat_t stat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zleafForestBackSolve3d()

int_t zleafForestBackSolve3d ( superlu_dist_options_t options,
int_t  treeId,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zlsumBmod_buff_t lbmod_buf,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zleafForestBackSolve3d_newsolve()

int_t zleafForestBackSolve3d_newsolve ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zlsumBmod_buff_t lbmod_buf,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zleafForestForwardSolve3d()

int_t zleafForestForwardSolve3d ( superlu_dist_options_t options,
int_t  treeId,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
doublecomplex recvbuf,
doublecomplex rtemp,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zleafForestForwardSolve3d_newsolve()

int_t zleafForestForwardSolve3d_newsolve ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
doublecomplex recvbuf,
doublecomplex rtemp,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlocalSolveXkYk()

int_t zlocalSolveXkYk ( trtype_t  trtype,
int_t  k,
doublecomplex x,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo_t grid,
SuperLUStat_t stat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsum_bmod_GG()

void zlsum_bmod_GG ( doublecomplex lsum,
doublecomplex x,
doublecomplex xk,
int  nrhs,
zlsumBmod_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,
zLocalLU_t Llu,
MPI_Request  send_req[],
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsum_bmod_GG_newsolve()

void zlsum_bmod_GG_newsolve ( ztrf3Dpartition_t trf3Dpartition,
doublecomplex lsum,
doublecomplex x,
doublecomplex xk,
int  nrhs,
zlsumBmod_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,
zLocalLU_t Llu,
MPI_Request  send_req[],
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsum_fmod_leaf()

void zlsum_fmod_leaf ( int_t  treeId,
ztrf3Dpartition_t trf3Dpartition,
doublecomplex lsum,
doublecomplex x,
doublecomplex xk,
doublecomplex 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,
zLocalLU_t Llu,
MPI_Request  send_req[],
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsum_fmod_leaf_newsolve()

void zlsum_fmod_leaf_newsolve ( ztrf3Dpartition_t trf3Dpartition,
doublecomplex lsum,
doublecomplex x,
doublecomplex xk,
doublecomplex 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,
zLocalLU_t Llu,
MPI_Request  send_req[],
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsumBmod()

int_t zlsumBmod ( int_t  gik,
int_t  gjk,
int  nrhs,
zlsumBmod_buff_t lbmod_buf,
int_t usub,
doublecomplex uval,
doublecomplex xk,
doublecomplex lsum,
int_t xsup,
SuperLUStat_t stat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsumForestBsolve()

int_t zlsumForestBsolve ( int_t  k,
int_t  treeId,
doublecomplex lsum,
doublecomplex x,
zxT_struct xT_s,
int  nrhs,
zlsumBmod_buff_t lbmod_buf,
zLUstruct_t LUstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
SuperLUStat_t stat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsumForestFsolve()

int_t zlsumForestFsolve ( int_t  k,
doublecomplex lsum,
doublecomplex x,
doublecomplex rtemp,
zxT_struct xT_s,
int  nrhs,
zLUstruct_t LUstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
SuperLUStat_t stat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ zlsumReducePrK()

int_t zlsumReducePrK ( int_t  k,
doublecomplex x,
doublecomplex lsum,
doublecomplex recvbuf,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo_t grid,
xtrsTimer_t xtrsTimer 
)
Here is the caller graph for this function:

◆ znonLeafForestBackSolve3d()

int_t znonLeafForestBackSolve3d ( int_t  treeId,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
zxT_struct xT_s,
doublecomplex recvbuf,
MPI_Request *  send_req,
int  nrhs,
zlsumBmod_buff_t lbmod_buf,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)

Pkk(Yk) = sumOver_PrK (Yk)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ znonLeafForestForwardSolve3d()

int_t znonLeafForestForwardSolve3d ( int_t  treeId,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
ztrf3Dpartition_t trf3Dpartition,
gridinfo3d_t grid3d,
doublecomplex x,
doublecomplex lsum,
zxT_struct xT_s,
doublecomplex recvbuf,
doublecomplex rtemp,
MPI_Request *  send_req,
int  nrhs,
zSOLVEstruct_t SOLVEstruct,
SuperLUStat_t stat,
xtrsTimer_t xtrsTimer 
)

Pkk(Yk) = sumOver_PrK (Yk)

Here is the call graph for this function:
Here is the caller graph for this function:

◆ zp2pSolvedX3d()

int_t zp2pSolvedX3d ( int_t  treeId,
int_t  sender,
int_t  receiver,
doublecomplex x,
int  nrhs,
ztrf3Dpartition_t trf3Dpartition,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
xtrsTimer_t xtrsTimer 
)
Here is the caller graph for this function:

◆ zpackUblock()

int zpackUblock ( int  ldu,
int_t indCols,
int_t  knsupc,
int_t  iklrow,
int_t usub,
doublecomplex tempu,
doublecomplex uval 
)
Here is the caller graph for this function:

◆ zpackXbmod()

int_t zpackXbmod ( int_t  knsupc,
int_t  ncols,
int_t  nrhs,
int_t indCols,
doublecomplex xk,
doublecomplex tempx 
)
Here is the caller graph for this function:

◆ zreduceSolvedX_newsolve()

int_t zreduceSolvedX_newsolve ( int_t  treeId,
int_t  sender,
int_t  receiver,
doublecomplex x,
int  nrhs,
ztrf3Dpartition_t trf3Dpartition,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
doublecomplex recvbuf,
xtrsTimer_t xtrsTimer 
)
Here is the caller graph for this function:

◆ ztrs_B_init3d()

int_t ztrs_B_init3d ( int_t  nsupers,
doublecomplex x,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d 
)
Here is the caller graph for this function:

◆ ztrs_B_init3d_newsolve()

int_t ztrs_B_init3d_newsolve ( int_t  nsupers,
doublecomplex x,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
ztrf3Dpartition_t trf3Dpartition 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ztrs_compute_communication_structure()

int ztrs_compute_communication_structure ( superlu_dist_options_t options,
int_t  n,
zLUstruct_t LUstruct,
zScalePermstruct_t ScalePermstruct,
int *  supernodeMask,
gridinfo_t grid,
SuperLUStat_t stat 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ztrs_x_broadcast_newsolve()

int_t ztrs_x_broadcast_newsolve ( int_t  nsupers,
doublecomplex x,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
ztrf3Dpartition_t trf3Dpartition,
doublecomplex recvbuf,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ztrs_X_gather3d()

int_t ztrs_X_gather3d ( doublecomplex x,
int  nrhs,
ztrf3Dpartition_t trf3Dpartition,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ztrs_x_reduction_newsolve()

int_t ztrs_x_reduction_newsolve ( int_t  nsupers,
doublecomplex x,
int  nrhs,
zLUstruct_t LUstruct,
gridinfo3d_t grid3d,
ztrf3Dpartition_t trf3Dpartition,
doublecomplex recvbuf,
xtrsTimer_t xtrsTimer 
)
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ zready_lsum

doublecomplex * zready_lsum

◆ zready_x

doublecomplex* zready_x