I think so. Keeping the size of blocks as what is in the original matrix would be a safe choice. Here maximum gain is belonged to naturally block-wize matrices.<br><br><div class="gmail_quote">On Fri, Oct 14, 2011 at 6:17 PM, Satish Balay <span dir="ltr"><<a href="mailto:balay@mcs.anl.gov">balay@mcs.anl.gov</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Fri, 14 Oct 2011, Jed Brown wrote:<br>
<br>
> On Fri, Oct 14, 2011 at 09:09, behzad baghapour<br>
> <<a href="mailto:behzad.baghapour@gmail.com">behzad.baghapour@gmail.com</a>>wrote:<br>
<br>
</div><div class="im">> > 2- "the block size is the same the matrix block size" means that there is<br>
> > no way to combine the matrix elements to build blocks of possible maximum<br>
> > size like Hash method or something like this?<br>
> ><br>
><br>
> For AIJ, there are "Inodes" which automatically detect identical rows where<br>
> blocking can be used. This helps more or less, depending on the hardware.<br>
> There is no such thing for BAIJ, but it wouldn't offer much improvement in<br>
> memory performance anyway. BAIJ performance approaches dense mat-vec as long<br>
> as the ordering is such that the vector can be reused.<br>
<br>
</div>I view AIJ+inode as variable-blocking in 1 dimenstion. Doing variable<br>
blocking in 2 dimensions is perhaps very difficult - and not worth the<br>
exta cost of keeping track of these blocks during each arithmetic<br>
operation [and parallel partitioning of such variable blocks has its<br>
own additional issues]<br>
<font color="#888888"><br>
Satish<br>
</font></blockquote></div><br><br clear="all"><br>-- <br>==================================<br>Behzad Baghapour<br>Ph.D. Candidate, Mechecanical Engineering<br>University of Tehran, Tehran, Iran<br><a href="https://sites.google.com/site/behzadbaghapour" target="_blank">https://sites.google.com/site/behzadbaghapour</a><br>
Fax: 0098-21-88020741<br>==================================<br><br>