[petsc-users] Converting complex PDE to real for KNL performance ?
Mark Adams
mfadams at lbl.gov
Tue Apr 14 14:50:44 CDT 2020
First, you need to order your equations (r_0, i_0, r_1, i_1, ...) and then
set a block size of two (times the real block size of your equations) in
the matrix, for GAMG to work. PETSc can do this for you with fieldsplit.
The symmetric stuff that GAMG requaries is just for the (parallel) graph
coarsening and you just need to add a parameter where GAMG will symmetrize
the graph used for coarsening, not your real matrix. Or you can use a zero
threshold.
Chebyshev is the default smoother in GAMG. Chebyshev is not well suited to
asymmetric matrices. You need to use the right form, which you seem to have
a handle on, and if the asymmetry is not too bad cheby might work.
Otherwise, I would use gmres or richardson/jacobi with a proper damping
parameter. If you use gmres you want to use fgmres as the outer solver.
Good luck, this is a tricky business,
Mark
On Tue, Apr 14, 2020 at 3:33 PM Stefano Zampini <stefano.zampini at gmail.com>
wrote:
> Tao does not support --with-scalar-type=complex
>
> Il Mar 14 Apr 2020, 22:09 Matthew Knepley <knepley at gmail.com> ha scritto:
>
>> On Tue, Apr 14, 2020 at 2:44 PM Sajid Ali <
>> sajidsyed2021 at u.northwestern.edu> wrote:
>>
>>> Hi Hong,
>>>
>>> Apologies for creating unnecessary confusion by continuing the old
>>> thread instead of creating a new one.
>>>
>>> While I looked into converting the complex PDE formulation to a real
>>> valued formulation in the past hoping for better performance, my concern
>>> now is with TAO being incompatible with complex scalars. I would've
>>> preferred to keep the complex PDE formulation as is (given that I spent
>>> some time tuning it and it works well now) for cost function and gradient
>>> evaluation while using TAO for the outer optimization loop.
>>>
>>> Using TAO has the obvious benefit of defining a multi objective cost
>>> function, parametrized as a fit to a series of measurements and a set of
>>> regularizers while not having to explicitly worry about differentiating the
>>> regularizer or have to think about implementing a good optimization scheme.
>>> But if it converting the complex formulation to a real formulation would
>>> mean a loss of well conditioned forward solve (and increase in solving time
>>> itself), I was wondering if it would be better to keep the complex PDE
>>> formulation and write an optimization loop in PETSc while defining the
>>> regularizer via a cost integrand.
>>>
>>>
>> What exactly is the problem with TAO and complex? Is it only for some
>> methods?
>>
>> Thanks,
>>
>> Matt
>>
>>
>>> Thank You,
>>> Sajid Ali | PhD Candidate
>>> Applied Physics
>>> Northwestern University
>>> s-sajid-ali.github.io
>>>
>>
>>
>> --
>> 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
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200414/4951baa2/attachment-0001.html>
More information about the petsc-users
mailing list