SuperLU Distributed 9.0.0
gpu3d
trfAux.c File Reference

Auxiliary routines to support 3D algorithms. More...

#include "superlu_ddefs.h"
Include dependency graph for trfAux.c:

Functions

int_t getslu25D_enabled ()
 
int getNsupers (int n, Glu_persist_t *Glu_persist)
 
int set_tag_ub ()
 
int getNumThreads (int iam)
 
int_t getBigUSize (superlu_dist_options_t *options, int_t nsupers, gridinfo_t *grid, int_t **Lrowind_bc_ptr)
 
int_tgetFactPerm (int_t nsupers)
 
int_tgetFactIperm (int_t *perm, int_t nsupers)
 
int_tgetPerm_c_supno (int_t nsupers, superlu_dist_options_t *options, int_t *etree, Glu_persist_t *Glu_persist, int_t **Lrowind_bc_ptr, int_t **Ufstnz_br_ptr, gridinfo_t *grid)
 
int_tgetPerm_c_supno_allgrid (int_t nsupers, superlu_dist_options_t *options, int_t *etree, Glu_persist_t *Glu_persist, int_t **Lrowind_bc_ptr, int_t **Ufstnz_br_ptr, gridinfo3d_t *grid3d)
 
int_t Trs2_InitUblock_info (int_t klst, int_t nb, Ublock_info_t *Ublock_info, int_t *usub, Glu_persist_t *Glu_persist, SuperLUStat_t *stat)
 
void getSCUweight (int_t nsupers, treeList_t *treeList, int_t *xsup, int_t **Lrowind_bc_ptr, int_t **Ufstnz_br_ptr, gridinfo3d_t *grid3d)
 
void getSCUweight_allgrid (int_t nsupers, treeList_t *treeList, int_t *xsup, int_t **Lrowind_bc_ptr, int_t **Ufstnz_br_ptr, gridinfo3d_t *grid3d)
 
void applyRowPerm (int_t *colptr, int_t *rowind, int_t *perm_r, int_t n)
 
void permCol_SymbolicFact3d (superlu_dist_options_t *options, int n, SuperMatrix *GA, int_t *perm_c, int_t *etree, Glu_persist_t *Glu_persist, Glu_freeable_t *Glu_freeable, SuperLUStat_t *stat, superlu_dist_mem_usage_t *symb_mem_usage, gridinfo3d_t *grid3d)
 This function performs the symbolic factorization on matrix Pc*Pr*A*Pc' and sets up the nonzero data structures for L & U matrices. In the process, the matrix is also ordered and its memory usage information is fetched. More...
 
void allocBcastArray (void **array, int_t size, int root, MPI_Comm comm)
 Allocates and broadcasts an array in a MPI environment. More...
 
void allocBcastLargeArray (void **array, int64_t size, int root, MPI_Comm comm)
 
sForest_t ** compute_sForests (int_t nsupers, Glu_persist_t *Glu_persist, int_t *etree, gridinfo3d_t *grid3d)
 
gEtreeInfo_t fillEtreeInfo (int_t nsupers, int_t *setree, treeList_t *treeList)
 
int_tcreate_iperm_c_supno (int_t nsupers, superlu_dist_options_t *options, Glu_persist_t *Glu_persist, int_t *etree, int_t **Lrowind_bc_ptr, int_t **Ufstnz_br_ptr, gridinfo3d_t *grid3d)
 
int_tcreateSupernode2TreeMap (int_t nsupers, int_t maxLvl, int_t *gNodeCount, int_t **gNodeLists)
 
SupernodeToGridMap_tcreateSuperGridMap (int_t nsuper, int_t maxLvl, int_t *myTreeIdxs, int_t *myZeroTrIdxs, int_t *gNodeCount, int_t **gNodeLists)
 

Detailed Description

Auxiliary routines to support 3D algorithms.

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, Oak Ridge National Lab
May 12, 2021

Function Documentation

◆ allocBcastArray()

void allocBcastArray ( void **  array,
int_t  size,
int  root,
MPI_Comm  comm 
)

Allocates and broadcasts an array in a MPI environment.

This function sends the size from the root process to all other processes in the communicator. If the process is not the root, it receives the size from the root and allocates the array. Then, the function broadcasts the array from the root process to all other processes in the communicator.

Parameters
arrayPointer to the array to be allocated and broadcasted.
sizeThe size of the array.
commThe MPI communicator.
rootThe root process.
Here is the caller graph for this function:

◆ allocBcastLargeArray()

void allocBcastLargeArray ( void **  array,
int64_t  size,
int  root,
MPI_Comm  comm 
)
Here is the caller graph for this function:

◆ applyRowPerm()

void applyRowPerm ( int_t colptr,
int_t rowind,
int_t perm_r,
int_t  n 
)

Performs a row permutation operation on a sparse matrix (CSC format) using a user-provided permutation array.

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

◆ compute_sForests()

sForest_t ** compute_sForests ( int_t  nsupers,
Glu_persist_t Glu_persist,
int_t etree,
gridinfo3d_t grid3d 
)
Here is the call graph for this function:

◆ create_iperm_c_supno()

int_t * create_iperm_c_supno ( int_t  nsupers,
superlu_dist_options_t options,
Glu_persist_t Glu_persist,
int_t etree,
int_t **  Lrowind_bc_ptr,
int_t **  Ufstnz_br_ptr,
gridinfo3d_t grid3d 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createSuperGridMap()

SupernodeToGridMap_t * createSuperGridMap ( int_t  nsuper,
int_t  maxLvl,
int_t myTreeIdxs,
int_t myZeroTrIdxs,
int_t gNodeCount,
int_t **  gNodeLists 
)
Here is the caller graph for this function:

◆ createSupernode2TreeMap()

int_t * createSupernode2TreeMap ( int_t  nsupers,
int_t  maxLvl,
int_t gNodeCount,
int_t **  gNodeLists 
)
Here is the caller graph for this function:

◆ fillEtreeInfo()

gEtreeInfo_t fillEtreeInfo ( int_t  nsupers,
int_t setree,
treeList_t treeList 
)
Here is the caller graph for this function:

◆ getBigUSize()

int_t getBigUSize ( superlu_dist_options_t options,
int_t  nsupers,
gridinfo_t grid,
int_t **  Lrowind_bc_ptr 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getFactIperm()

int_t * getFactIperm ( int_t perm,
int_t  nsupers 
)
Here is the caller graph for this function:

◆ getFactPerm()

int_t * getFactPerm ( int_t  nsupers)

◆ getNsupers()

int getNsupers ( int  n,
Glu_persist_t Glu_persist 
)
Here is the caller graph for this function:

◆ getNumThreads()

int getNumThreads ( int  iam)
Here is the caller graph for this function:

◆ getPerm_c_supno()

int_t * getPerm_c_supno ( int_t  nsupers,
superlu_dist_options_t options,
int_t etree,
Glu_persist_t Glu_persist,
int_t **  Lrowind_bc_ptr,
int_t **  Ufstnz_br_ptr,
gridinfo_t grid 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPerm_c_supno_allgrid()

int_t * getPerm_c_supno_allgrid ( int_t  nsupers,
superlu_dist_options_t options,
int_t etree,
Glu_persist_t Glu_persist,
int_t **  Lrowind_bc_ptr,
int_t **  Ufstnz_br_ptr,
gridinfo3d_t grid3d 
)
Here is the call graph for this function:

◆ getSCUweight()

void getSCUweight ( int_t  nsupers,
treeList_t treeList,
int_t xsup,
int_t **  Lrowind_bc_ptr,
int_t **  Ufstnz_br_ptr,
gridinfo3d_t grid3d 
)
Here is the call graph for this function:

◆ getSCUweight_allgrid()

void getSCUweight_allgrid ( int_t  nsupers,
treeList_t treeList,
int_t xsup,
int_t **  Lrowind_bc_ptr,
int_t **  Ufstnz_br_ptr,
gridinfo3d_t grid3d 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getslu25D_enabled()

int_t getslu25D_enabled ( )

◆ permCol_SymbolicFact3d()

void permCol_SymbolicFact3d ( superlu_dist_options_t options,
int  n,
SuperMatrix GA,
int_t perm_c,
int_t etree,
Glu_persist_t Glu_persist,
Glu_freeable_t Glu_freeable,
SuperLUStat_t stat,
superlu_dist_mem_usage_t symb_mem_usage,
gridinfo3d_t grid3d 
)

This function performs the symbolic factorization on matrix Pc*Pr*A*Pc' and sets up the nonzero data structures for L & U matrices. In the process, the matrix is also ordered and its memory usage information is fetched.

Parameters
optionsThe options for the SuperLU distribution.
nDimension of the global matrix A.
GAA pointer to the global matrix A.
perm_cThe column permutation vector.
etreeThe elimination tree of Pc*Pr*A*Pc'.
Glu_persistPointer to the structure which tracks the symbolic factorization information.
Glu_freeablePointer to the structure which tracks the space used to store L/U data structures.
statInformation on program execution.
grid3dThe 3D process grid.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_tag_ub()

int set_tag_ub ( void  )
Here is the caller graph for this function:

◆ Trs2_InitUblock_info()

int_t Trs2_InitUblock_info ( int_t  klst,
int_t  nb,
Ublock_info_t Ublock_info,
int_t usub,
Glu_persist_t Glu_persist,
SuperLUStat_t stat 
)
Here is the caller graph for this function: