Developer Reference for Intel® oneAPI Math Kernel Library for C
cluster_sparse_solver_get_csr_size
Computes the (local) number of rows and (local) number of nonzero entries for (distributed) CSR data corresponding to the provided name.
Syntax
void cluster_sparse_solver_get_csr_size (
_MKL_DSS_HANDLE_t pt , _MKL_DSS_EXPORT_DATA name ,
MKL_INT * local_nrows , MKL_INT * local_nnz ,
const int * comm , MKL_INT * error );
Include Files
mkl_cluster_sparse_solver.h
Description
This routine uses the internal data created during the factorization phase of cluster_sparse_solver for matrix \(A\) . The routine then:
Computes the local number of rows and the local number of nonzeros for CSR data that correspond to the provided name
Returns the computed values in local_nrows and local_nnz
It is assumed that the CSR data defined by the name will be distributed in the same way as the matrix \(A\) (as defined by iparm[39] ) used in cluster_sparse_solver .
The returned values can be used for allocating CSR arrays for factors \(L\) and \(U\) , and also for allocating arrays for permutations \(P\) and \(Q\) , or scaling matrix \(D\) which can then be used with cluster_sparse_solver_set_csr_ptrs or cluster_sparse_solver_set_ptr for exporting corresponding data via cluster_sparse_solver_export .
Only call this routine after the factorization phase ( phase=22 ) of the cluster_sparse_solver has been called. Neither pt , nor iparm should be changed after the preceding call to cluster_sparse_solver .
Input Parameters
pt
Array with size of 64. Handle to internal data structure used in the prior calls to cluster_sparse_solver .
name
Specifies CSR data for which the output values are computed.
SPARSE_PTLUQT_L |
Factor L from \(P\cdot A \cdot Q = L \cdot U\). |
SPARSE_PTLUQT_U |
Factor U from \(P\cdot A \cdot Q = L \cdot U\). |
SPARSE_DPTLUQT_L |
Factor L from \(P \cdot (D^{-1}A) \cdot Q = L \cdot U\). |
SPARSE_DPTLUQT_U |
Factor U from \(P \cdot (D^{-1}A) \cdot Q = L \cdot U\). |
- local_nrows
-
On entry, an array of size 1.
- local_nnz
-
On entry, an array of size 1.
comm
MPI communicator. The solver uses the Fortran MPI communicator internally. Convert the MPI communicator to Fortran using the MPI_Comm_c2f() function. See the examples in the <install_dir>/examples directory.
Output Parameters
local_nrows
On output, the local number of rows for the CSR data which correspond to the name .
local_nnz
On output, the local number of nonzero entries for the CSR data which correspond to the name .
error
The error indicator:
0 |
no error |
|---|---|
-1 |
pt is a null pointer |
-2 |
invalid pt |
-3 |
invalid name |
-4 |
unsupported name |
-9 |
unsupported internal code path, consider switching off non-default iparm parameters for cluster_sparse_solver |
-10 |
unsupported case when the matrix A is distributed among processes with overlap in the preceding calls to cluster_sparse_solver |
-12 |
internal memory error |