Matrix input file format

Matthew Knepley knepley at
Wed Jun 7 08:30:52 CDT 2006

On 6/7/06, Evrim Dizemen <gudik at> wrote:
> Hi all,
> First thanks for your comments. I still have the same problem but i
> agree with you all that reading a matrix from a file is not parallel
> programming. So i wonder if you can recommend an efficient and faster
> way to read a 30000x30000 sparse matrix where i got those values from my
> fortran code on aeroacoustics similation. I tried calling MatSetValues
> as i attached below. I found that way from the ex11f.F in the matrix
> examples and not sure if it is appropriate for my situation.
> !      do, i=1,n
> !       do, j=1,n
> !        value=Aval(i,j)
> !       if(value .ne. 0)then
> !       l=i-1
> !       m=j-1
> !        call MatSetValues(A,1,l,1,m,value,INSERT_VALUES,ierr)
> !       endif
> !       enddo
> !       enddo
> Thanks soooooo much

1) You should set an entire row at a time at least, not a single value

2) You need to preallocate the matrix for good performance:

3) You are here setting all values from one process. You should do as Randy
suggests and set only the values
     which are owned by each process.

4) I would consult an example, such as:


"Failure has a thousand explanations. Success doesn't need one" -- Sir Alec
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the petsc-users mailing list