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

Hong Zhang hzhang at mcs.anl.gov
Fri Mar 14 14:20:43 CDT 2014


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