[petsc-dev] Adding support for new sparse BLAS inspector-executor routines in MKL

Richard Mills richardtmills at gmail.com
Tue Sep 29 17:16:01 CDT 2015


Hi Folks,

It's come up in discussions a few times that, ideally, the burden of
supporting very specific optimizations for complex architectures like
Intel's upcoming Knights Landing MIC processor should be handled as much as
possible by a library like MKL.  To take some concrete steps towards this,
I want to add support for using the new sparse BLAS inspector-executor
("SpMV 2" -- no idea why they called it that) routines that were added in
the recent release (11.3) of MKL.  These use an inspector-executor model to
provide some optimized operations (sparse matrix-vector multiplication,
sparse matrix-matrix multiplication, triangular solve, sparse matrix
addition).  Those interested can have a look at the documentation here:

  https://software.intel.com/en-us/node/590105

I am thinking that the cleanest way to support this is to add a new matrix
subclass that mostly inherits from MATAIJ (or MATBAIJ), calling the
inspection ("analysis") routines upon matrix assembly finalization and
using the "SpMV 2" routines as appropriate.  Then if someone wants to use
the SpMV 2 stuff, they ensure that their matrix ends up as MATMKLSPMV2 (or
whatever better name we come up with).  Does this sound reasonable?  If you
have a better suggestion, please let me hear it.

--Richard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20150929/7fc6833d/attachment.html>


More information about the petsc-dev mailing list