Ryan Yan vyan2000 at
Sun Sep 20 10:48:32 CDT 2009

 Hi Barry,
Thank you very much for the suggestion,

I will try it.


On Sun, Sep 20, 2009 at 11:36 AM, Barry Smith <bsmith at> wrote:

>   Yan,
>     Simply read through the ASCII file(s) twice. The first time count the
> number of blocks per row, then preallocate then read through the ASCII file
> again reading and setting the values. This will be very fast.
>   Barry
> On Sep 20, 2009, at 10:20 AM, Ryan Yan wrote:
>  Hi All,
>> I have a large size application. Mesh size is 30000 nodes, with dof 25 on
>> each vertex. And it's 3d unstructured,  Tet, and Hex mesh. In the following
>> I will denote blksize=25
>> I am testing how to build up a PETSc matrix object quick and fast.
>> The data I have is Block Compressed Sparse Row(BCSR) files. And my
>> objective is to read BCSR files and generate PETSc Binaries
>> Firstly, I choose the MATMPIAIJ, I opened the BCSR data files on each
>> processor, and set up the preallocation use
>> MatMPIAIJSetPreallocation(A,blksize,PETSC_NULL,blksize,PETSC_NULL); The
>> reason why I choose 25 as the number for d_nz and o_nz is that I do not have
>> access to the ordering of the vertices. So it's the worst case set up, and
>> it takes about 7 minutes on 30 MIPS node(180 processors) to write the output
>> into PETSc binaries.
>> Secondly, I choose the MatMPIBAIJ, and same procedure as above, but also
>> set up
>> MatMPIBAIJSetPreallocation(A,blksize,blksize,PETSC_NULL,blksize,PETSC_NULL),
>> here blksize = 25 and it's also the worst case; This experiments takes
>> forever and could not generate the PETSc binaries.
>> I guess the reason why it takes so long in the MATMPIBAIJ case is that I
>> did not set up the preallocation accurately. Alougth I think the
>> preallocation is also not accurate in the MATMPIAIJ case, but it seems like
>> the preallocation effect is not as serious as for the MPIBAIJ. Correct me
>> please, if there are other reasons.
>> Can I anyone please give a hint on how to set up the preallocation right
>> for a unstructured mesh without knowing the mesh ordering?
>> Thank you very much in advance,
>> Yan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the petsc-users mailing list