Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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.

NOTE:

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.

CAUTION:

Do not modify pt after the calls to cluster_sparse_solver.

name

Specifies CSR data for which the output values are computed.

SPARSE_PTLUQT_L

Factor L from P*A*Q=L*U.

SPARSE_PTLUQT_U

Factor U from P*A*Q=L*U.

SPARSE_DPTLUQT_L

Factor L from P* (D-1A)*Q=L*U.

SPARSE_DPTLUQT_U

Factor U from P* (D-1A)*Q=L*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:

error
Information
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

NOTE:
Refer to cl_solver_export_c.c for an example using this functionality.