Hi folks, I'm an enthusiastic Intel-MKL user employing parallel Fortran and C code. I need to perform specific
CSR matrix-dot-matrix operations like MKL_SPARSE_SYRK without resorting
to dense matrices at all. Where I can found some examples showing practical use of these routines in
Fortran? Why there is no example even in the most recent version of the manual?
Pleaase, consider that this topic is fundamental for solving large sparse algebraic parallel problems
in CFD and electromagnetics (e.g. Tykhonov Regolarization of ill-posed problems) so all suggestions are welcome.
ANCILLARY ROUTINES: mkl_sparse_d_create_csr, mkl_sparse_convert_csr, etc.
The example spblasf/sparse_z_export_csr.f90 does give a decent small example of using FORTRAN interfaces with CSR matrices to do the sparse spmm operation (It performs B = A*A). It is a fairly simple change to enable sparse syrk or sp2m or sypr instead of spmm. You may also need to change the data type as it is complex See, for example, https://software.intel.com/en-us/mkl-developer-reference-fortran-mkl-sparse-syrk for the exact arguments of syrk. This example also has the added benefit of showing how to use mkl_sparse_?_export_csr() to retrieve the sparse solution from the sparse matrix object after your computation is completed.