[petsc-dev] Chebyshev hybrid option has no functional interface or man pages

Hong Zhang hzhang at mcs.anl.gov
Fri Mar 14 15:21:42 CDT 2014


Barry:
>
>    Beats me. It is worth keeping only if the "slight performance advantage" is of practical use. Like while, for example, used in a multigrid smoother. If it just makes a bad algorithm you won't use anyways slightly better than it is not work keeping

It does not improve mg smoother:
mpiexec -n 8 ./ex56 -ne 19 -alpha 1.e-3 -ksp_monitor_short -ksp_type
cg -ksp_max_it 50 -pc_gamg_type agg -pc_gamg_agg_nsmooths 1
-ksp_converged_reason -pc_gamg_coarse_eq_limit 80 -mg_levels_ksp_type
chebyshev -mg_levels_ksp_chebyshev_estimate_eigenvalues 0,0.05,0,1.05
-mg_levels_pc_type sor -pc_gamg_reuse_interpolation true
0 KSP Residual norm 2884.32
...
11 KSP Residual norm 0.00529973

adding '-mg_levels_ksp_chebyshev_hybrid' may skew the convergence:
0 KSP Residual norm 3327.84
...
12 KSP Residual norm 0.0197856

I'll remove it.
Hong


> On Mar 14, 2014, at 2:20 PM, Hong Zhang <hzhang at mcs.anl.gov> wrote:
>
>> Barry,
>> Currently, we have following options for hybrid Chebyshev:
>>  -ksp_chebyshev_hybrid: <FALSE> Use hybrid Chebyshev ()
>>  -ksp_chebyshev_hybrid_chebysteps <20000>: Number of Chebyshev steps
>> in hybrid Chebyshev ()
>>  -ksp_chebyshev_hybrid_eststeps <10>: Number of adaptive/est steps in
>> hybrid Chebyshev ()
>>  -ksp_chebyshev_hybrid_purification: <TRUE> Use purification in
>> hybrid Chebyshev ()
>>
>> In my experiments, when -ksp_chebyshev_hybrid=true,
>> hybrid_purification=true (also use gmres steps to improve starting
>> vector) has slight performance advantage.
>>
>> Small number of 'hybrid_chebysteps' gives gmres/cheby hybrid method
>> which does not show any performance gain, thus I set the default as
>> 20000 unless user wants to use it.
>>
>> Want to remove it or keep it?
>> Hong
>>
>> On Fri, Mar 14, 2014 at 1:13 PM, Smith, Barry F. <bsmith at mcs.anl.gov> wrote:
>>>
>>>  I'd remove it.
>>>
>>>  Thanks
>>>
>>>  Barry
>>>
>>> On Mar 13, 2014, at 9:49 PM, Hong Zhang <hzhang at mcs.anl.gov> wrote:
>>>
>>>> Barry,
>>>> I sent this email out, but apparently it failed to reach you.
>>>>
>>>> On Tue, Mar 11, 2014 at 10:46 PM, Hong Zhang <hzhang at mcs.anl.gov> wrote:
>>>>> Barry,
>>>>> The hybrid Chebyshev was implemented for experimentation, but had not
>>>>> been found useful, so the default is set as FALSE.
>>>>> I can add a functional interface though.
>>>>
>>>> As you and Jed do not believed in this method, and my experiments had
>>>> not shown any useful of it.
>>>> Shall we keep it or remove it?
>>>>
>>>> Hong
>>>>
>>>>>
>>>>> On Tue, Mar 11, 2014 at 9:15 PM, Smith, Barry F. <bsmith at mcs.anl.gov> wrote:
>>>>>>
>>>>>> There should be a functional interface for turning this on and off with a manual page.
>>>>>>
>>>>>>  Barry
>>>>>>
>>>>>> /*
>>>>>>  Use hybrid Chebyshev.
>>>>>>  Ref: "A hybrid Chebyshev Krylov-subspace algorithm for solving nonsymmetric systems of linear equations",
>>>>>>        Howard Elman and Y. Saad and P. E. Saylor, SIAM Journal on Scientific and Statistical Computing, 1986.
>>>>>>  */
>>>>>> ierr = PetscOptionsBool("-ksp_chebyshev_hybrid","Use hybrid Chebyshev","",cheb->hybrid,&cheb->hybrid,NULL);CHKERRQ(ierr);
>>>>>> ierr = PetscOptionsInt("-ksp_chebyshev_hybrid_chebysteps","Number of Chebyshev steps in hybrid Chebyshev","",cheb->chebysteps,&cheb->chebysteps,NULL);CHKERRQ(ierr);
>>>>>> ierr = PetscOptionsInt("-ksp_chebyshev_hybrid_eststeps","Number of adaptive/est steps in hybrid Chebyshev","",cheb->eststeps,&cheb->eststeps,NULL);CHKERRQ(ierr);
>>>>>> ierr = PetscOptionsBool("-ksp_chebyshev_hybrid_purification","Use purification in hybrid Chebyshev","",cheb->purification,&cheb->purification,NULL);CHKERRQ(ierr);
>>>>>>
>>>>>>
>>>>>>
>>>
>



More information about the petsc-dev mailing list