[petsc-users] Doubt in MPIPreallocation

Matthew Knepley knepley at gmail.com
Fri Feb 19 05:45:50 CST 2016


On Fri, Feb 19, 2016 at 5:09 AM, John Albequerque <johncfdcfd at gmail.com>
wrote:

> Dear Matt,
>
> Sorry, I am not able to get you, as if I do not provide i>=j then the
> matrix mentioned in the earlier mail won't be generated. For the code I
> mentioned earlier, the output obtained is as follows -
>
>
>
>
>
>
>
>
> *Mat Object: 1 MPI processes  type: mpiaijrow 0: (0, 1)  (1, 1)  (2, 1)
> (3, 1)  (4, 0)  (5, 0)  (6, 0)  (7, 0) row 1: (0, 0)  (1, 1)  (2, 1)  (3,
> 1)  (4, 1)  (5, 0)  (6, 0)  (7, 0) row 2: (0, 0)  (1, 0)  (2, 1)  (3, 1)
> (4, 1)  (5, 1)  (6, 0)  (7, 0) row 3: (0, 0)  (1, 0)  (2, 0)  (3, 1)  (4,
> 1)  (5, 1)  (6, 1)  (7, 0) row 4: (0, 0)  (1, 0)  (2, 0)  (3, 0)  (4, 1)
> (5, 1)  (6, 1)  (7, 1)*
> which is satisfactory, but once I use *MatMPIAIJSetPreallocation(A,0,d_nnz,0,o_nnz);
> *the code encounters a runtime error. And throws a malloc error as -
>
>
> *[0]PETSC ERROR: New nonzero at (0,4) caused a mallocUse MatSetOption(A,
> MAT_NEW_NONZERO_ALLOCATION_ERR, PETSC_FALSE) to turn off this check*
>

Print out your dnz and onz. You can clearly see they are wrong. The error
is your condition which I pointed out above.

   Matt


> Thanks
>
> ----
> John Albequerque.
>
>
> On Fri, Feb 19, 2016 at 4:17 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Fri, Feb 19, 2016 at 4:34 AM, John Albequerque <johncfdcfd at gmail.com>
>> wrote:
>>
>>> Currently I have used single processor. And without the Preallocation it
>>> works fine. And gives me the correct output as well. I have posted the full
>>> code for reference.
>>> *Here:* http://pastebin.com/kWUGHqSM
>>>
>>
>> Look at the last row. Your condition 'j >= i' will produce no
>> off-diagonal rows here, but
>> clearly you have them, and this is the error you are getting.
>>
>>    Matt
>>
>>
>>> On Fri, Feb 19, 2016 at 3:01 PM, Matthew Knepley <knepley at gmail.com>
>>> wrote:
>>>
>>>> On Fri, Feb 19, 2016 at 3:27 AM, John Albequerque <johncfdcfd at gmail.com
>>>> > wrote:
>>>>
>>>>> I came up with this could you please have a look at it as I am not
>>>>> getting it. I am getting an error
>>>>>
>>>>>
>>>>>
>>>>> *New nonzero at (0,4) caused a malloc*http://pastebin.com/ZxT7SWtc
>>>>>
>>>>> Could you please have a look at it.
>>>>>
>>>>
>>>> It looks like you are only allocating the upper triangle:
>>>>
>>>> if((j-i<=3) && (j>=i))
>>>>             values[(i-low)*nc+j]=1;
>>>> else
>>>> values[(i-low)*nc+j]=0;
>>>>
>>>>    Matt
>>>>
>>>>
>>>>> ---------------
>>>>> Thanks,
>>>>> John Albequerque
>>>>>
>>>>>
>>>>> On Fri, Feb 19, 2016 at 1:25 PM, Matthew Knepley <knepley at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> On Fri, Feb 19, 2016 at 1:50 AM, John Albequerque <
>>>>>> johncfdcfd at gmail.com> wrote:
>>>>>>
>>>>>>> Could someone help me setting up this matrix i.e from preallocation
>>>>>>> to Set Values for an MPIAIJ matrix which has its entries.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> *1  1  1  1  0  0  0  00  1  1  1  1  0  0  00  0  1  1  1  1  0
>>>>>>> 00  0  0  1  1  1  1  00  0  0  0  1  1  1  1*
>>>>>>>
>>>>>>> I am trying to do it from 3 days now but not able to figure it out.
>>>>>>> Could someone please help me do this.
>>>>>>>
>>>>>>
>>>>>> It will be enough to say that each row has 3 off-diagonal values, so
>>>>>> you can use the simplified preallocation rather
>>>>>> than giving a value for each row individually.
>>>>>>
>>>>>>    Matt
>>>>>>
>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>> ----
>>>>>>> John Albequerque.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 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
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> 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
>>>>
>>>
>>>
>>
>>
>> --
>> 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
>>
>
>


-- 
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/20160219/23f7aef3/attachment-0001.html>


More information about the petsc-users mailing list