[petsc-users] MatMPIAIJSetPreallocation question

Gideon Simpson gideon.simpson at gmail.com
Mon Feb 16 09:29:40 CST 2015


Got it.  I had a coding error.
-gideon

> On Feb 15, 2015, at 10:34 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
> 
>> On Feb 15, 2015, at 9:17 PM, Gideon Simpson <gideon.simpson at gmail.com> wrote:
>> 
>> Got it, one follow up question:
>> 
>> When calling MatMPIAIJSetPreallocation, is there a reason why the number of nonzero entries in the off-diagonal sub matrix cannot be zero?
> 
> It could be zero; that means there is not coupling between processes however so essentially each process has its own independent problem; thus normally it is most definitely not zero.
> 
>  Barry
> 
>> 
>> -gideon
>> 
>>> On Feb 15, 2015, at 9:31 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>> 
>>> 
>>>> On Feb 15, 2015, at 8:22 PM, Gideon Simpson <gideon.simpson at gmail.com> wrote:
>>>> 
>>>> I’m trying to get a handle on the different ways of constructing matrices.  Currently, I have:
>>>> 
>>>> MatCreate(...)
>>>> MatSetSizes(...)
>>>> MatSetFromOptions(...)
>>>> MatSetUp(…)
>>>> 
>>>> but I gather from reading the manual that, by not preallocating, I’m losing out in performance.  If I assume that my matrix will either by SeqAIJ or MPIAIJ, depending on the number of processors available, how would I go about doing this.  I see some of the example codes with:
>>>> 
>>>> MatSeqAIJSetPreallocation(…)
>>>> MatMPIAIJSetPreallocation(…)
>>>> 
>>>> as successive commands.  Should I interpret this as saying that PETSc will just ignore the one that is not the active one in the current instance? 
>>> 
>>> Exactly*.
>>> 
>>> You can also use MatXAIJSetPreallocation() which sets the possible preallocation forms for all the matrix types without requiring you to set one each individuallly.
>>> 
>>> Barry
>>> 
>>> * We support this in many places because we hate requiring users to put a bunch of if (type == xxx) kind of code in their applications. For example KSPGMRESSetRestart() is ignored if the KSP type is not GMRES.
>>> 
>>> 
>>>> 
>>>> -gideon
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150216/899e47f2/attachment.html>


More information about the petsc-users mailing list