Can matrix insertion values be speeded up?
I have a couple of observations on MatSetValues usage:
- Are all processes inserting values for "owned" rows (rows between rstart and rend of MatGetOwnershipRange) or some of the processes specify values that will end up on a different process after assembly?
- Calling repeatedly MatSetValues(A,1,&r,1,&c,&v) can be expensive, even if preallocation is done properly. Can we take advantage of some foam provided information and instead call MatSetValues(A,1,&r,n,cols,vals) or MatSetValues(A,n,rows,1,&cols,vals) when appropriate (already done in some part of the assembly process)