[petsc-dev] Cache detection

Barry Smith bsmith at mcs.anl.gov
Wed Feb 3 08:06:50 CST 2010


On Feb 3, 2010, at 4:31 AM, Jed Brown wrote:

> On Tue, 2 Feb 2010 17:28:34 -0600, Barry Smith <bsmith at mcs.anl.gov>  
> wrote:
>>    That would be nice. :-)
>
> Done.  The downside of the way I'm currently doing this is that we  
> have
> no way to tell the user that autodetection failed so we're just using
> some arbitrary default.  It's not acceptable to be loud about this
> because it doesn't make a big difference and the user is unlikely to
> know these details off the top of their head (or know how to find  
> them).
>
> The current defaults underestimate the values on x86-64, but my tests
> (of MatMult_SeqAIJ_Inode) with incorrect line size (32 instead of 64)
> show little impact.  I expect that overestimating the values (using 64
> when the machine had 32) would be quite bad (maybe worse than no
> software prefetch at all).  If issuing a bunch of prefetches is
> expensive (e.g. I don't know what it costs on IBM hardware), then the
> underestimated line sizes could hurt performance too.
>
> Also, I just pushed prefetch for the forward-solve part of
> MatSolve_SeqAIJ_Inode.  For ex19, this gives me a 10-12 percent  
> speedup
> for the whole operation, but I was unsuccessful at speeding up the
> back-solve using prefetch.
>

     That's ok. There is a new MatSolve_SeqAIJ_Inode in the works that  
should greatly improve the backsolve by storing the factors  
"properly". Should be ready in a few days.

    Barry

> Jed




More information about the petsc-dev mailing list