In my application, I use mkl_dcsrmv(). I encounter matrices with empty rows. At most, one eighth of the rows are empty. Is there any solution to skip empty rows in CSR-based sparse matrix-vector multiplication?
One solution is to remove empty rows before mkl_dcsrmv() and scatter/gather the vectors. But this does not seem feasible and it may not be efficient.
A solution, which is adopted in OSKI[1], is adding a list that contains non-empty rows and iterating over this list during the sparse matrix-vector multiplication.
Link Copied
I am not sure understand the reason you want to skip such rows.Do you expect that in this way you will accelerate the speed of computing?
For more complete information about compiler optimizations, see our Optimization Notice.