> On Jun 22, 2016, at 1:24 AM, Lisandro Dalcin <[email protected]> wrote:
> 
> On 22 June 2016 at 00:30, Barry Smith <[email protected]> wrote:
>> Why not just remove the first if test (below) and just have the two 
>> conditions diag != 0.0 and drag == 0.0
>> 
>>     if ((diag != 0.0) && (mat->A->rmap->N == mat->A->cmap->N)) {
>>        ierr = MatZeroRows(mat->A, len, lrows, diag, NULL, 
>> NULL);CHKERRQ(ierr);
> 
> What about comparing mat->rmap->N and mat->cmap->N, then compare
> size(mat->rmap->comm) and size(mat->cmap->comm), and finally compare
> (memcmp) mat->rmap-range and mat->rmap-range? If everything matches,
> the row&col layout is square, you know that in all processes so no
> need to do reductions, and then  you can take the fast path zeroing
> rows on the diagonal block mat->A.

   By then it is worth the optimization?

> 
> 
> -- 
> Lisandro Dalcin
> ============
> Research Scientist
> Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)
> Extreme Computing Research Center (ECRC)
> King Abdullah University of Science and Technology (KAUST)
> http://ecrc.kaust.edu.sa/
> 
> 4700 King Abdullah University of Science and Technology
> al-Khawarizmi Bldg (Bldg 1), Office # 0109
> Thuwal 23955-6900, Kingdom of Saudi Arabia
> http://www.kaust.edu.sa
> 
> Office Phone: +966 12 808-0459

Reply via email to