Intel® oneAPI Math Kernel Library Developer Reference - C

DSS Distributed Symmetric Matrix Storage

The distributed assembled matrix input format can be used by the Parallel Direct Sparse Solver for Clusters Interface.

In this format, the symmetric input matrix A is divided into sequential row subsets, or domains. Each domain belongs to an MPI process. Neighboring domains can overlap. For such intersection between two domains, the element values of the full matrix can be obtained by summing the respective elements of both domains.

As in the centralized format, the distributed format uses three arrays to describe the input data, but the values, columns, and rowIndex arrays on each processor only describe the domain belonging to that particular processor and not the entire matrix.

For example, consider a symmetric matrix A:



This array could be distributed between two domains corresponding to two MPI processes, with the first containing rows 1 through 3, and the second containing rows 3 through 5.

Note

For the symmetric input matrix, it is not necessary to store the values from the lower triangle.



Distributed Storage Arrays for a Symmetric Matrix, Domain 1
one-based indexing              
values = (6 -1 -3 5 3 2)
columns = (1 2 4 2 3 5)
rowIndex = (1 4 5 7)    
zero-based indexing              
values = (6 -1 -3 5 3 2)
columns = (0 1 3 1 2 4)
rowIndex = (0 3 4 6)    



Distributed Storage Arrays for a Symmetric Matrix, Domain 2
one-based indexing            
values = (8 5 2 10 5)
columns = (3 4 5 4 5)
rowIndex = (1 4 5 6)  
zero-based indexing            
values = (8 5 2 10 5)
columns = (2 3 4 3 4)
rowIndex = (0 3 4 5)  

The third row of matrix A is common between domain 1 and domain 2. The values of row 3 of matrix A are the sums of the respective elements of row 3 of matrix ADomain1 and row 1 of matrix ADomain2.

Storage Format Restrictions

The storage format for the sparse solver must conform to two important restrictions:

The second restriction implies that if symmetric or structurally symmetric matrices have zero diagonal elements, then they must be explicitly represented in the values array.

Product and Performance Information

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

Notice revision #20201201