Turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library & Intel® Math Kernel Library
- Partial Matrix-Vector Multiplication of a Sparse Matrix?

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Highlighted
##

Precioso__Ali

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-30-2017
08:00 PM

73 Views

Partial Matrix-Vector Multiplication of a Sparse Matrix?

**mkl_zcsrsymv**" and "**mkl_zcsrmv**" in order to multiply a complex valued sparse matrix A with a vector b (MVP or y=A*b). Now I need to use a *partial *matrix-vector multiplication, in which **only selected rows of the matrix A in a range** specified by *rowStart** *to *rowEnd* needs to be multiplied by the vector b in its efficient way. How can I perform such a multiplication with these functions? is there any other MVP routine in MKL library for such a need? As the matrix is in CSR format, this should be applied to the internal loop for doing the MVP for every row and the range of that loop should be from *rowStart* * *to *rowEnd* , but I was not successful in finding an approach to transfer such info? Thank you for your comments.

2 Replies

Highlighted
##

Ying_H_Intel

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

11-01-2017
07:11 PM

73 Views

Hi Precioso,

If the *partial *matrix-vector multiplication, in which **only selected rows of the matrix A in a range** , you may try the MKL new Sparse BLAS interface:

https://software.intel.com/en-us/mkl-developer-reference-c-2018-beta-mkl-sparse-create-csr

and https://software.intel.com/en-us/mkl-developer-reference-c-2018-beta-mkl-sparse-mv

and sample code under MKL install folder.

and if this is still a question, please create a request to Online Service Center: https://supporttickets.intel.com/

Best Regards,

Ying

Highlighted
##

Precioso__Ali

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

11-02-2017
08:47 AM

73 Views

Many thanks for your comment.

Yes indeed this way of inspector-executor BLAS operation would work to command MVP on selected rows of a general type sparse matrix (mkl_zcsrmv). I am also wondering if same sort of partial operation can be applied to the multiplication of the **inverse components **computed by PARDISO routine in MKL. Here is exactly what is needed:

Currently the dss_create is being used to initialize the sparse solver and pre compute factorization components of the matrix A. The handle and its data stucture are being used repeatedly later to compute the operation y=inv (A)*b. The inv (A) however is block structured, having non-zeros only in some diagonal blocks and zero coupling everywhere between the blocks ( i.e. it could be represented by the sum of multiple inverse operations for each block and appropriate indexing). Is it possible to call the operation y=inv (A)*b partially by specifying a range of desired rows of the matrix inv(A)? How is it possible to access to the internal data of the PARDISO handle created by dss_create, like factorization components (L, D, L transposed) or pivoting data, to be multiplied partially in a specified range of rows with the right hands side vector b? This, in combination with partial MVP, is really needed for the block Gauss Seidel inversion of block-structured sparse matrices and I hope there is a solution for it. Thank you in advance.

For more complete information about compiler optimizations, see our Optimization Notice.