Developer Reference

Contents

cluster_sparse_solver_set_csr_ptrs

Saves internally-provided pointers to the 3-array CSR data corresponding to the specified name.

Syntax

void
cluster_sparse_solver_set_csr_ptrs
(
_MKL_DSS_HANDLE_t
pt
,
_MKL_DSS_EXPORT_DATA
name
,
MKL_INT
*
rowptr
,
MKL_INT
*
colindx
,
void
*
vals
,
const int
*
comm
,
MKL_INT
*
error
);
Include Files
  • mkl_cluster_sparse_solver.h
Description
This routine internally saves the input pointers,
rowptr
,
colindx
, and
vals
, of the 3-array CSR data, which correspond to the provided
name
. It is assumed that the exported data will be distributed in the same way as the matrix
A
(as defined by
iparm
[39]
) used in
cluster_sparse_solver
.
The saved pointers can then be used for exporting corresponding data by means of
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
.
Do not modify
pt
after the calls to
cluster_sparse_solver
.
name
Specifies for which CSR data the pointers are provided.
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
-1
A
)*
Q
=
L
*
U
.
SPARSE_DPTLUQT_U
Factor
U
from
P
* (
D
-1
A
)*
Q
=
L
*
U
.
rowptr
Array of length at least (
local_nrows
+1) where
local_nrows
is the local number of rows, which can be obtained by calling
cluster_sparse_solver_get_csr_size
. This array contains row indices, such that
rowptr[i]
-
indexing
is the first index of row
i
in the array's
vals
and
colindx
. Here, the value of
indexing
is 0 for zero-based indexing and 1 for one-based indexing, and must be the same as it was for the matrix
A
used in the preceding calls to
cluster_sparse_solver
(also stored in
iparm[34]
).
Refer to
pointerB
array description in CSR Format for more details.
colindx
Array of length at least
rowptr[local_nrows]
rowptr[0]
. Indexing (zero- or one-based) must be the same as for
rowptr
. For one-based indexing, the array contains the column indices plus one for each non-zero element of the matrix which corresponds to the
name
. For zero-based indexing, the array contains the column indices for each non-zero element of the matrix.
vals
Array containing non-zero elements of the matrix which corresponds to the
name
. Its length is equal to length of the
colindx
array. Refer to values array description in CSR Format for more details.
It will be interpreted internally as
float*
/
double*
(
MKL_Complex8*
/
MKL_Complex16*
) depending on
mtype
(type of the matrix
A
) and
iparm[27]
(precision) specified in the preceding call to
cluster_sparse_solver
.
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
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
-12
internal memory error
Refer to
cl_solver_export_c.c
for an example using this functionality.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.