[petsc-users] MatCopy and MatSetValue consume most 99 percentage of runtime

Matthew Knepley knepley at gmail.com
Tue Apr 19 21:10:29 CDT 2011


On Tue, Apr 19, 2011 at 9:08 PM, Debao Shao <Debao.Shao at brion.com> wrote:

> Dear Barry:
>
> If I add "MatSetOption(C,MAT_KEEP_NONZERO_PATTERN,PETSC_TRUE)" before "
> MatZeroEntries", need I reset it back when doing MatCopy?
>

No.

   Matt


> I'm a freshman to PETSC, your reply is very appreciated.
>
> Thanks,
> Debao
>
> -----Original Message-----
> From: petsc-users-bounces at mcs.anl.gov [mailto:
> petsc-users-bounces at mcs.anl.gov] On Behalf Of Debao Shao
> Sent: Wednesday, April 20, 2011 9:50 AM
> To: PETSc users list
> Subject: Re: [petsc-users] MatCopy and MatSetValue consume most 99
> percentage of runtime
>
> Here is my sample code:
>  ierr = MatZeroEntries( M ); assert( ierr  == 0);
>  ierr = MatDiagonalSet( M, vec.pv, INSERT_VALUES );
>  ierr = MatCopy( ms->M, mStorage->M,  DIFFERENT_NONZERO_PATTERN );
>
> I checked PETSC api, both "MatDiagonalSet" and "MatCopy" called
> MatAssembly***, Is the usage wrong, or, how to deal with the problem?
>
> Thanks,
> Debao
> -----Original Message-----
> From: petsc-users-bounces at mcs.anl.gov [mailto:
> petsc-users-bounces at mcs.anl.gov] On Behalf Of Barry Smith
> Sent: Wednesday, April 20, 2011 9:40 AM
> To: PETSc users list
> Subject: Re: [petsc-users] MatCopy and MatSetValue consume most 99
> percentage of runtime
>
>
> On Apr 19, 2011, at 8:31 PM, Debao Shao wrote:
>
> > Hi, Barry:
> >
> > Thanks for the reply.
> >
> > I preallocated enough space for the sparse matrix, but I found
> mat->data->imax changed after "MatAssemblyEnd", and it caused many rowmax
> less than the number of nonzeros per row, then "MatSeqXAIJReallocateAIJ" is
> called frequently when doing MatSetValues again to the matrix.
>
>   Are you using MatZeroRows()? If so call MatSetOption(mat,
> MAT_KEEP_NONZERO_PATTERN) before calling the zero rows to retain that
> structure.
>
>    If you are not using MatZeroRows() then apparently the first time you
> set values in there and call MatAssemblyEnd() you have left many locations
> that later will be filled unfilled and so they are eliminated at MatAssembly
> time.  You must make sure that all potentially nonzero locations get a value
> put in initially (put zero for the locations that you don't yet have  a
> value for) before you first call MatAssemblyEnd().
>
>   Barry
>
>  PETSc matrices have no way of retaining extra locations you preallocated
> for unless you put something (like 0) in there.
>
> >
> > Any suggestions?
> >
> > Thanks,
> > Debao
> > -----Original Message-----
> > From: petsc-users-bounces at mcs.anl.gov [mailto:
> petsc-users-bounces at mcs.anl.gov] On Behalf Of Barry Smith
> > Sent: Friday, April 15, 2011 9:25 PM
> > To: PETSc users list
> > Subject: Re: [petsc-users] MatCopy and MatSetValue consume most 99
> percentage of runtime
> >
> >
> >   Debao,
> >
> >      Please see
> http://www.mcs.anl.gov/petsc/petsc-as/documentation/faq.html#efficient-assemblyIt should resolve the difficulties.
> >
> >    Barry
> >
> > On Apr 15, 2011, at 2:16 AM, Debao Shao wrote:
> >
> >> Dear Petsc:
> >>
> >> I'm trying on Petsc iterative solver(KSPCG & PCJACOBI), but it's strange
> that the two functions "MatCopy" and "MatSetValue" consume most of runtime,
> and the functions were not called frequently, just several times.
> >>
> >> My libpetsc.a is built as follows:
> >> 1, /config/configure.py --with-mpi=0 --with-debugging=0 -with-log=0
> -with-info=0
> >> 2, make all;
> >>
> >> It's very appreciated to get your reply.
> >>
> >> Thanks a lot,
> >> Debao
> >>
> >> -- The information contained in this communication and any attachments
> is confidential and may be privileged, and is for the sole use of the
> intended recipient(s). Any unauthorized review, use, disclosure or
> distribution is prohibited. Unless explicitly stated otherwise in the body
> of this communication or the attachment thereto (if any), the information is
> provided on an AS-IS basis without any express or implied warranties or
> liabilities. To the extent you are relying on this information, you are
> doing so at your own risk. If you are not the intended recipient, please
> notify the sender immediately by replying to this message and destroy all
> copies of this message and any attachments. ASML is neither liable for the
> proper and complete transmission of the information contained in this
> communication, nor for any delay in its receipt.
> >
> >
> > -- The information contained in this communication and any attachments is
> confidential and may be privileged, and is for the sole use of the intended
> recipient(s). Any unauthorized review, use, disclosure or distribution is
> prohibited. Unless explicitly stated otherwise in the body of this
> communication or the attachment thereto (if any), the information is
> provided on an AS-IS basis without any express or implied warranties or
> liabilities. To the extent you are relying on this information, you are
> doing so at your own risk. If you are not the intended recipient, please
> notify the sender immediately by replying to this message and destroy all
> copies of this message and any attachments. ASML is neither liable for the
> proper and complete transmission of the information contained in this
> communication, nor for any delay in its receipt.
>
>
> -- The information contained in this communication and any attachments is
> confidential and may be privileged, and is for the sole use of the intended
> recipient(s). Any unauthorized review, use, disclosure or distribution is
> prohibited. Unless explicitly stated otherwise in the body of this
> communication or the attachment thereto (if any), the information is
> provided on an AS-IS basis without any express or implied warranties or
> liabilities. To the extent you are relying on this information, you are
> doing so at your own risk. If you are not the intended recipient, please
> notify the sender immediately by replying to this message and destroy all
> copies of this message and any attachments. ASML is neither liable for the
> proper and complete transmission of the information contained in this
> communication, nor for any delay in its receipt.
>
> -- The information contained in this communication and any attachments is
> confidential and may be privileged, and is for the sole use of the intended
> recipient(s). Any unauthorized review, use, disclosure or distribution is
> prohibited. Unless explicitly stated otherwise in the body of this
> communication or the attachment thereto (if any), the information is
> provided on an AS-IS basis without any express or implied warranties or
> liabilities. To the extent you are relying on this information, you are
> doing so at your own risk. If you are not the intended recipient, please
> notify the sender immediately by replying to this message and destroy all
> copies of this message and any attachments. ASML is neither liable for the
> proper and complete transmission of the information contained in this
> communication, nor for any delay in its receipt.
>



-- 
What most experimenters take for granted before they begin their experiments
is infinitely more interesting than any results to which their experiments
lead.
-- Norbert Wiener
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20110419/d6664ed9/attachment-0001.htm>


More information about the petsc-users mailing list