Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
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

call cluster_sparse_solver_get_csr_size (pt, name, local_nrows, local_nnz, comm, error)

Include Files

  • mkl_cluster_sparse_solver.f90

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(40)) 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

INTEGER*8 for 64-bit architectures

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

INTEGER

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.

comm

INTEGER*4

MPI communicator. The solver uses the Fortran MPI communicator internally.

Output Parameters

local_nrows

INTEGER

The local number of rows for the CSR data which correspond to the name.

local_nnz

INTEGER

The local number of nonzero entries for the CSR data which correspond to the name.

error

INTEGER

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_f90.f90 for an example using this functionality.