SuperLU Distributed 9.0.0
gpu3d
sssvx3dAux.c File Reference
#include <stdlib.h>
#include <mpi.h>
#include "superlu_sdefs.h"
Include dependency graph for sssvx3dAux.c:

Macros

#define LOG_FUNC_ENTER()   printf("\033[1;32mEntering function %s at %s:%d\033[0m\n", __func__, __FILE__, __LINE__)
 

Functions

void validateInput_psgssvx3d (superlu_dist_options_t *options, SuperMatrix *A, int ldb, int nrhs, gridinfo3d_t *grid3d, int *info)
 Validates the input parameters for a given problem. More...
 
void sscaleRows (int_t m_loc, int_t fst_row, int_t *rowptr, float *a, float *R)
 
void sscaleColumns (int_t m_loc, int_t *rowptr, int_t *colind, float *a, float *C)
 
void sscaleBoth (int_t m_loc, int_t fst_row, int_t *rowptr, int_t *colind, float *a, float *R, float *C)
 
void sscalePrecomputed (SuperMatrix *A, sScalePermstruct_t *ScalePermstruct)
 
void sscaleFromScratch (SuperMatrix *A, sScalePermstruct_t *ScalePermstruct, gridinfo_t *grid, int *rowequ, int *colequ, int *iinfo)
 
void sscaleMatrixDiagonally (fact_t Fact, sScalePermstruct_t *ScalePermstruct, SuperMatrix *A, SuperLUStat_t *stat, gridinfo_t *grid, int *rowequ, int *colequ, int *iinfo)
 
void sfindRowPerm_MC64 (gridinfo_t *grid, int_t job, int_t m, int_t n, int_t nnz, int_t *colptr, int_t *rowind, float *a_GA, int_t Equil, int_t *perm_r, float *R1, float *C1, int *iinfo)
 
void sscale_distributed_matrix (int rowequ, int colequ, int_t m, int_t n, int_t m_loc, int_t *rowptr, int_t *colind, int_t fst_row, float *a, float *R, float *C, float *R1, float *C1)
 
void spermute_global_A (int_t m, int_t n, int_t *colptr, int_t *rowind, int_t *perm_r)
 
void sperform_LargeDiag_MC64 (superlu_dist_options_t *options, fact_t Fact, sScalePermstruct_t *ScalePermstruct, sLUstruct_t *LUstruct, int_t m, int_t n, gridinfo_t *grid, SuperMatrix *A, SuperMatrix *GA, SuperLUStat_t *stat, int_t job, int Equil, int *rowequ, int *colequ, int *iinfo)
 Performs a set of operations on distributed matrices including finding row permutations, scaling, and permutation of global A. The operations depend on job and iinfo parameters. More...
 
void sperform_row_permutation (superlu_dist_options_t *options, fact_t Fact, sScalePermstruct_t *ScalePermstruct, sLUstruct_t *LUstruct, int_t m, int_t n, gridinfo_t *grid, SuperMatrix *A, SuperMatrix *GA, SuperLUStat_t *stat, int job, int Equil, int *rowequ, int *colequ, int *iinfo)
 
float scomputeA_Norm (int notran, SuperMatrix *A, gridinfo_t *grid)
 This function computes the norm of a matrix A. More...
 
void sallocScalePermstruct_RC (sScalePermstruct_t *ScalePermstruct, int_t m, int_t n)
 

Macro Definition Documentation

◆ LOG_FUNC_ENTER

#define LOG_FUNC_ENTER ( )    printf("\033[1;32mEntering function %s at %s:%d\033[0m\n", __func__, __FILE__, __LINE__)

Function Documentation

◆ sallocScalePermstruct_RC()

void sallocScalePermstruct_RC ( sScalePermstruct_t ScalePermstruct,
int_t  m,
int_t  n 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ scomputeA_Norm()

float scomputeA_Norm ( int  notran,
SuperMatrix A,
gridinfo_t grid 
)

This function computes the norm of a matrix A.

Parameters
notranA flag which determines the norm type to be calculated.
AThe input matrix for which the norm is computed.
gridThe gridinfo_t object that contains the information of the grid.
Returns
Returns the computed norm of the matrix A.

the iam process is the root (iam=0), it prints the computed norm to the standard output.

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

◆ sfindRowPerm_MC64()

void sfindRowPerm_MC64 ( gridinfo_t grid,
int_t  job,
int_t  m,
int_t  n,
int_t  nnz,
int_t colptr,
int_t rowind,
float *  a_GA,
int_t  Equil,
int_t perm_r,
float *  R1,
float *  C1,
int *  iinfo 
)

Finds row permutations using the MC64 algorithm in a distributed manner.

Parameters
gridThe grid info object, which includes the current node's information and MPI communicator.
jobThe type of job to be done.
mThe number of rows in the sparse matrix.
nThe number of columns in the sparse matrix.
nnzThe number of non-zero elements in the sparse matrix.
colptrThe column pointer array of the sparse matrix (CSC format).
rowindThe row index array of the sparse matrix (CSC format).
a_GAThe non-zero values of the sparse matrix.
EquilThe equilibration flag.
perm_rThe output permutation array for the rows.
R1The output row scaling factors.
C1The output column scaling factors.
iinfoThe output status code.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sperform_LargeDiag_MC64()

void sperform_LargeDiag_MC64 ( superlu_dist_options_t options,
fact_t  Fact,
sScalePermstruct_t ScalePermstruct,
sLUstruct_t LUstruct,
int_t  m,
int_t  n,
gridinfo_t grid,
SuperMatrix A,
SuperMatrix GA,
SuperLUStat_t stat,
int_t  job,
int  Equil,
int *  rowequ,
int *  colequ,
int *  iinfo 
)

Performs a set of operations on distributed matrices including finding row permutations, scaling, and permutation of global A. The operations depend on job and iinfo parameters.

Parameters
[in]optionsSuperLU options.
[in]FactFactored form of the matrix.
[in,out]ScalePermstructScaling and Permutation structure.
[in,out]LUstructLU decomposition structure.
[in]mNumber of rows in the matrix.
[in]nNumber of columns in the matrix.
[in]gridGrid information for distributed computation.
[in,out]ASuperMatrix A to be operated upon.
[in,out]GASuperMatrix GA to be operated upon.
[out]statSuperLU statistics object to record factorization statistics.
[in]jobThe type of job to be done.
[in]EquilThe equilibration flag.
[in]rowequFlag indicating whether rows of the matrix should be equalized.
[in]colequFlag indicating whether columns of the matrix should be equalized.
[out]iinfoThe output status code.
Note
The functions sfindRowPerm_MC64, dscale_distributed_matrix and dpermute_global_A are called in this function.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sperform_row_permutation()

void sperform_row_permutation ( superlu_dist_options_t options,
fact_t  Fact,
sScalePermstruct_t ScalePermstruct,
sLUstruct_t LUstruct,
int_t  m,
int_t  n,
gridinfo_t grid,
SuperMatrix A,
SuperMatrix GA,
SuperLUStat_t stat,
int  job,
int  Equil,
int *  rowequ,
int *  colequ,
int *  iinfo 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ spermute_global_A()

void spermute_global_A ( int_t  m,
int_t  n,
int_t colptr,
int_t rowind,
int_t perm_r 
)

Performs a permutation operation on the rows of a sparse matrix (CSC format).

Parameters
mThe number of rows in the sparse matrix.
nThe number of columns in the sparse matrix.
colptrThe column pointer array of the sparse matrix (CSC format).
rowindThe row index array of the sparse matrix (CSC format).
perm_rThe permutation array for the rows.
Here is the caller graph for this function:

◆ sscale_distributed_matrix()

void sscale_distributed_matrix ( int  rowequ,
int  colequ,
int_t  m,
int_t  n,
int_t  m_loc,
int_t rowptr,
int_t colind,
int_t  fst_row,
float *  a,
float *  R,
float *  C,
float *  R1,
float *  C1 
)

This function scales a distributed matrix.

Parameters
[in]rowequA flag indicating whether row should be equalized.
[in]colequA flag indicating whether column should be equalized.
[in]mNumber of rows in the matrix.
[in]nNumber of columns in the matrix.
[in]m_locThe local row dimension.
[in]rowptrPointer to the array holding row pointers.
[in]colindPointer to the array holding column indices.
[in]fst_rowThe first row of the local block.
[in,out]aPointer to the array holding the values of the matrix.
[in,out]RPointer to the row scaling factors.
[in,out]CPointer to the column scaling factors.
[in,out]R1Pointer to the array holding the new row scaling factors.
[in,out]C1Pointer to the array holding the new column scaling factors.
Here is the caller graph for this function:

◆ sscaleBoth()

void sscaleBoth ( int_t  m_loc,
int_t  fst_row,
int_t rowptr,
int_t colind,
float *  a,
float *  R,
float *  C 
)
Here is the caller graph for this function:

◆ sscaleColumns()

void sscaleColumns ( int_t  m_loc,
int_t rowptr,
int_t colind,
float *  a,
float *  C 
)
Here is the caller graph for this function:

◆ sscaleFromScratch()

void sscaleFromScratch ( SuperMatrix A,
sScalePermstruct_t ScalePermstruct,
gridinfo_t grid,
int *  rowequ,
int *  colequ,
int *  iinfo 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sscaleMatrixDiagonally()

void sscaleMatrixDiagonally ( fact_t  Fact,
sScalePermstruct_t ScalePermstruct,
SuperMatrix A,
SuperLUStat_t stat,
gridinfo_t grid,
int *  rowequ,
int *  colequ,
int *  iinfo 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sscalePrecomputed()

void sscalePrecomputed ( SuperMatrix A,
sScalePermstruct_t ScalePermstruct 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ sscaleRows()

void sscaleRows ( int_t  m_loc,
int_t  fst_row,
int_t rowptr,
float *  a,
float *  R 
)
Here is the caller graph for this function:

◆ validateInput_psgssvx3d()

void validateInput_psgssvx3d ( superlu_dist_options_t options,
SuperMatrix A,
int  ldb,
int  nrhs,
gridinfo3d_t grid3d,
int *  info 
)

Validates the input parameters for a given problem.

This function checks the input parameters for a given problem and sets the error code in the 'info' variable accordingly. If there is an error, it prints an error message and returns.

Parameters
[in]optionsPointer to the options structure containing Fact, RowPerm, ColPerm, and IterRefine values.
[in]APointer to the matrix A structure containing nrow, ncol, Stype, Dtype, and Mtype values.
[in]ldbThe leading dimension of the array B.
[in]nrhsThe number of right-hand sides.
[in]gridPointer to the grid structure.
[out]infoPointer to an integer variable that stores the error code.
Here is the call graph for this function:
Here is the caller graph for this function: