<div dir="ltr"><div><div>Hi Lawrence,<br><br></div>I agree that you shouldn't expect magical things to work when using SOR in parallel, but I'm a bit surprised you see such variation for Poisson <br></div><div><br>
</div><div>Take<br>  src/ksp/ksp/examples/tutorials/ex28.c<br></div><div>for example<br></div><div><br></div><div>Running with 1 and 16 cores I get very similar convergence histories<br><br>mpiexec -n 1 ./ex29 -pc_type mg -pc_mg_levels 3 -da_grid_x 33 -da_grid_y 33 -mg_coarse_ksp_type cg -mg_coarse_pc_type jacobi -mg_coarse_ksp_max_it 100 -mg_levels_pc_type sor -ksp_type fgmres -ksp_monitor<br>
<br>  0 KSP Residual norm 6.680980151738e-03 <br>  1 KSP Residual norm 2.600644743629e-04 <br>  2 KSP Residual norm 7.722227428855e-06 <br>  3 KSP Residual norm 2.001120894208e-07 <br>  4 KSP Residual norm 6.663821440723e-09 <br>
<br>mpiexec -n 16 ./ex29 -pc_type mg -pc_mg_levels 3 -da_grid_x 33 -da_grid_y 33 -mg_coarse_ksp_type cg -mg_coarse_pc_type jacobi -mg_coarse_ksp_max_it 100 -mg_levels_pc_type sor -ksp_type fgmres -ksp_monitor<br></div><div>
<br>  0 KSP Residual norm 6.680980151738e-03 <br>  1 KSP Residual norm 4.555242291797e-04 <br>  2 KSP Residual norm 1.508911073478e-05 <br>  3 KSP Residual norm 3.520772689849e-07 <br>  4 KSP Residual norm 1.128900788683e-08 <br>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 21 July 2014 19:16, Lawrence Mitchell <span dir="ltr"><<a href="mailto:lawrence.mitchell@imperial.ac.uk" target="_blank">lawrence.mitchell@imperial.ac.uk</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">To follow up,<br>
<div class=""><br>
On 21 Jul 2014, at 13:11, Lawrence Mitchell <<a href="mailto:lawrence.mitchell@imperial.ac.uk">lawrence.mitchell@imperial.ac.uk</a>> wrote:<br>
<br>
><br>
> On 21 Jul 2014, at 12:52, Dave May <<a href="mailto:dave.mayhem23@gmail.com">dave.mayhem23@gmail.com</a>> wrote:<br>
><br>
>><br>
>> -pc_type mg -mg_levels_ksp_type richardson -mg_levels_pc_type jacobi -mg_levels_ksp_max_it 2<br>
>><br>
>> then I get identical convergence in serial and parallel<br>
>><br>
>><br>
>> Good. That's the correct result.<br>
>><br>
>> if, however, I run with<br>
>><br>
>> -pc_type mg -mg_levels_ksp_type chebyshev -mg_levels_pc_type sor -mg_levels_ksp_max_it 2<br>
>> (the default according to -ksp_view)<br>
>><br>
>> then I get very differing convergence in serial and parallel as described.<br>
>><br>
>><br>
>> It's normal that the behaviour is different. The PETSc SOR implementation is not parallel. It only performs SOR on your local subdomain.<br>
<br>
</div>I think I've convinced myself that I was just getting unlucky with the chebyshev+sor smoothing combination when I looked, modifying the sor weighting, or choosing something other than 2 processes for the particular problem I was seeing bad 2-process convergence on, gives good convergence again.<br>

<br>
I'll keep an eye on it in case it turns out I have been doing something stupid.  Thanks for the various pointers on debugging though.<br>
<br>
Cheers,<br>
<br>
Lawrence<br>
</blockquote></div><br></div>