SuperLU Distributed 8.2.1
Distributed memory sparse direct solver
|
Performs panel LU factorization. More...
#include <math.h>
#include "superlu_ddefs.h"
Macros | |
#define | GT 32 |
Functions | |
void | pdgstrf2_trsm (superlu_dist_options_t *options, int_t k0, int_t k, double thresh, Glu_persist_t *Glu_persist, gridinfo_t *grid, dLocalLU_t *Llu, MPI_Request *U_diag_blk_send_req, int tag_ub, SuperLUStat_t *stat, int *info) |
static int_t | LpanelUpdate (int off0, int nsupc, double *ublk_ptr, int ld_ujrow, double *lusup, int nsupr, SCT_t *SCT) |
void | Local_Dgstrf2 (superlu_dist_options_t *options, int_t k, double thresh, double *BlockUFactor, Glu_persist_t *Glu_persist, gridinfo_t *grid, dLocalLU_t *Llu, SuperLUStat_t *stat, int *info, SCT_t *SCT) |
void | pdgstrf2_xtrsm (superlu_dist_options_t *options, int_t nsupers, int_t k0, int_t k, double thresh, Glu_persist_t *Glu_persist, gridinfo_t *grid, dLocalLU_t *Llu, MPI_Request *U_diag_blk_send_req, int tag_ub, SuperLUStat_t *stat, int *info, SCT_t *SCT) |
int_t | dTrs2_GatherU (int_t iukp, int_t rukp, int_t klst, int_t nsupc, int_t ldu, int_t *usub, double *uval, double *tempv) |
int_t | dTrs2_ScatterU (int_t iukp, int_t rukp, int_t klst, int_t nsupc, int_t ldu, int_t *usub, double *uval, double *tempv) |
int_t | dTrs2_GatherTrsmScatter (int_t klst, int_t iukp, int_t rukp, int_t *usub, double *uval, double *tempv, int_t knsupc, int nsupr, double *lusup, Glu_persist_t *Glu_persist) |
void | pdgstrs2_omp (int_t k0, int_t k, Glu_persist_t *Glu_persist, gridinfo_t *grid, dLocalLU_t *Llu, Ublock_info_t *Ublock_info, SuperLUStat_t *stat) |
Performs panel LU 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.
-- Distributed SuperLU routine (version 7.0) -- Lawrence Berkeley National Lab, Univ. of California Berkeley. August 15, 2014 Modified: September 30, 2017 May 10, 2019 version 7.0.0Purpose ======= Panel factorization -- block column k Factor diagonal and subdiagonal blocks and test for exact singularity. Only the column processes that own block column *k* participate in the work. Arguments ========= options (input) superlu_dist_options_t* (global) The structure defines the input parameters to control how the LU decomposition will be performed. k0 (input) int (global) Counter of the next supernode to be factorized. k (input) int (global) The column number of the block column to be factorized. thresh (input) double (global) The threshold value = s_eps * anorm. Glu_persist (input) Glu_persist_t* Global data structures (xsup, supno) replicated on all processes. grid (input) gridinfo_t* The 2D process mesh. Llu (input/output) dLocalLU_t* Local data structures to store distributed L and U matrices. U_diag_blk_send_req (input/output) MPI_Request* List of send requests to send down the diagonal block of U. tag_ub (input) int Upper bound of MPI tag values. stat (output) SuperLUStat_t* Record the statistics about the factorization. See SuperLUStat_t structure defined in util.h. 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.
#define GT 32 |
int_t dTrs2_GatherTrsmScatter | ( | int_t | klst, |
int_t | iukp, | ||
int_t | rukp, | ||
int_t * | usub, | ||
double * | uval, | ||
double * | tempv, | ||
int_t | knsupc, | ||
int | nsupr, | ||
double * | lusup, | ||
Glu_persist_t * | Glu_persist | ||
) |
int_t dTrs2_GatherU | ( | int_t | iukp, |
int_t | rukp, | ||
int_t | klst, | ||
int_t | nsupc, | ||
int_t | ldu, | ||
int_t * | usub, | ||
double * | uval, | ||
double * | tempv | ||
) |
int_t dTrs2_ScatterU | ( | int_t | iukp, |
int_t | rukp, | ||
int_t | klst, | ||
int_t | nsupc, | ||
int_t | ldu, | ||
int_t * | usub, | ||
double * | uval, | ||
double * | tempv | ||
) |
void Local_Dgstrf2 | ( | superlu_dist_options_t * | options, |
int_t | k, | ||
double | thresh, | ||
double * | BlockUFactor, | ||
Glu_persist_t * | Glu_persist, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
SuperLUStat_t * | stat, | ||
int * | info, | ||
SCT_t * | SCT | ||
) |
|
static |
void pdgstrf2_trsm | ( | superlu_dist_options_t * | options, |
int_t | k0, | ||
int_t | k, | ||
double | thresh, | ||
Glu_persist_t * | Glu_persist, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
MPI_Request * | U_diag_blk_send_req, | ||
int | tag_ub, | ||
SuperLUStat_t * | stat, | ||
int * | info | ||
) |
Purpose ======= Panel factorization -- block column k Factor diagonal and subdiagonal blocks and test for exact singularity. Only the column processes that own block column *k* participate in the work. Arguments ========= options (input) superlu_dist_options_t* (global) The structure defines the input parameters to control how the LU decomposition will be performed. k0 (input) int (global) Counter of the next supernode to be factorized. k (input) int (global) The column number of the block column to be factorized. thresh (input) double (global) The threshold value = s_eps * anorm. Glu_persist (input) Glu_persist_t* Global data structures (xsup, supno) replicated on all processes. grid (input) gridinfo_t* The 2D process mesh. Llu (input/output) dLocalLU_t* Local data structures to store distributed L and U matrices. U_diag_blk_send_req (input/output) MPI_Request* List of send requests to send down the diagonal block of U. tag_ub (input) int Upper bound of MPI tag values. stat (output) SuperLUStat_t* Record the statistics about the factorization. See SuperLUStat_t structure defined in util.h. 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.
ALWAYS SEND TO ALL OTHERS - TO FIX
void pdgstrf2_xtrsm | ( | superlu_dist_options_t * | options, |
int_t | nsupers, | ||
int_t | k0, | ||
int_t | k, | ||
double | thresh, | ||
Glu_persist_t * | Glu_persist, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
MPI_Request * | U_diag_blk_send_req, | ||
int | tag_ub, | ||
SuperLUStat_t * | stat, | ||
int * | info, | ||
SCT_t * | SCT | ||
) |
Purpose ======= Panel factorization -- block column k Factor diagonal and subdiagonal blocks and test for exact singularity. Only the column processes that own block column *k* participate in the work. Arguments ========= options (input) superlu_dist_options_t* (global) The structure defines the input parameters to control how the LU decomposition will be performed. nsupers (input) int_t (global) Number of supernodes. k0 (input) int (global) Counter of the next supernode to be factorized. k (input) int (global) The column number of the block column to be factorized. thresh (input) double (global) The threshold value = s_eps * anorm. Glu_persist (input) Glu_persist_t* Global data structures (xsup, supno) replicated on all processes. grid (input) gridinfo_t* The 2D process mesh. Llu (input/output) dLocalLU_t* Local data structures to store distributed L and U matrices. U_diag_blk_send_req (input/output) MPI_Request* List of send requests to send down the diagonal block of U. tag_ub (input) int Upper bound of MPI tag values. stat (output) SuperLUStat_t* Record the statistics about the factorization. See SuperLUStat_t structure defined in util.h. 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. SCT (output) SCT_t* Additional statistics used in the 3D algorithm.
void pdgstrs2_omp | ( | int_t | k0, |
int_t | k, | ||
Glu_persist_t * | Glu_persist, | ||
gridinfo_t * | grid, | ||
dLocalLU_t * | Llu, | ||
Ublock_info_t * | Ublock_info, | ||
SuperLUStat_t * | stat | ||
) |
4/19/2019