[petsc-users] Correlation between da_refine and pg_mg_levels

Matthew Knepley knepley at gmail.com
Thu Mar 30 15:39:15 CDT 2017


On Thu, Mar 30, 2017 at 3:38 PM, Justin Chang <jychang48 at gmail.com> wrote:

> Okay, got it. What are the options for setting GAMG as the coarse solver?
>

-mg_coarse_pc_type gamg I think


> On Thu, Mar 30, 2017 at 3:37 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Thu, Mar 30, 2017 at 3:04 PM, Justin Chang <jychang48 at gmail.com>
>> wrote:
>>
>>> Yeah based on my experiments it seems setting pc_mg_levels to $DAREFINE
>>> + 1 has decent performance.
>>>
>>> 1) is there ever a case where you'd want $MGLEVELS <= $DAREFINE? In some
>>> of the PETSc tutorial slides (e.g., http://www.mcs.anl.gov/
>>> petsc/documentation/tutorials/TutorialCEMRACS2016.pdf on slide 203/227)
>>> they say to use $MGLEVELS = 4 and $DAREFINE = 5, but when I ran this, it
>>> was almost twice as slow as if $MGLEVELS >= $DAREFINE
>>>
>>
>> Depending on how big the initial grid is, you may want this. There is a
>> balance between coarse grid and fine grid work.
>>
>>
>>> 2) So I understand that one cannot refine further than one grid point in
>>> each direction, but is there any benefit to having $MGLEVELS > $DAREFINE by
>>> a lot?
>>>
>>
>> Again, it depends on the size of the initial grid.
>>
>> On really large problems, you want to use GAMG as the coarse solver,
>> which will move the problem onto a smaller number of nodes
>> so that you can coarsen further.
>>
>>    Matt
>>
>>
>>> Thanks,
>>> Justin
>>>
>>> On Thu, Mar 30, 2017 at 2:35 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>>>
>>>>
>>>>   -da_refine $DAREFINE  determines how large the final problem will be.
>>>>
>>>>   By default if you don't supply pc_mg_levels then it uses $DAREFINE +
>>>> 1 as the number of levels of MG to use; for example -da_refine 1 would
>>>> result in 2 levels of multigrid.
>>>>
>>>>
>>>> > On Mar 30, 2017, at 2:17 PM, Justin Chang <jychang48 at gmail.com>
>>>> wrote:
>>>> >
>>>> > Hi all,
>>>> >
>>>> > Just a general conceptual question: say I am tinkering around with
>>>> SNES ex48.c and am running the program with these options:
>>>> >
>>>> > mpirun -n $NPROCS -pc_type mg -M $XSEED -N $YSEED -P $ZSEED
>>>> -thi_mat_type baij -da_refine $DAREFINE -pc_mg_levels $MGLEVELS
>>>> >
>>>> > I am not too familiar with mg, but it seems to me there is a very
>>>> strong correlation between $MGLEVELS and $DAREFINE as well as perhaps even
>>>> the initial coarse grid size (provided by $X/YZSEED).
>>>> >
>>>> > Is there a rule of thumb on how these parameters should be? I am
>>>> guessing it probably is also hardware/architectural dependent?
>>>> >
>>>> > Thanks,
>>>> > Justin
>>>>
>>>>
>>>
>>
>>
>> --
>> 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/20170330/9caee3e0/attachment.html>


More information about the petsc-users mailing list