[petsc-dev] Adding support for new sparse BLAS	inspector-executor routines in MKL
    Barry Smith 
    bsmith at mcs.anl.gov
       
    Tue Sep 29 19:55:00 CDT 2015
    
    
  
  Richard,
   Sounds reasonable to me.
  Barry
> On Sep 29, 2015, at 5:16 PM, Richard Mills <richardtmills at gmail.com> wrote:
> 
> 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
    
    
More information about the petsc-dev
mailing list