[petsc-users] Converting complex PDE to real for KNL performance ?

Dener, Alp adener at anl.gov
Tue Apr 14 17:52:46 CDT 2020


This is correct. As long as the optimization variables and the objective function, and it’s gradient are real valued, intermediate variables (such as PDE states) can be complex.

In principle it is also possible to minimize real valued functions in complex variables by converting to rectangular or polar coordinate space and working with real numbers only (this will double the size of the optimization problem). The same transformation for complex valued functions yields a multi objective optimization problem.

There’s no guarantee though that TAO algorithms will work with this out of the box. When PETSc is compiled complex, the above transformation yields TAO solution vectors that are still complex but carry all the information in the real component with zeros in the imaginary. Linear algebra with these vectors may not turn out to be equivalent to the real-compiled counterparts.

This potential issue also applies to carrying around complex state variables in a PDE constrained problem. Even though the optimization algorithm never sees them, the PETSc data structures in TAO would still be complex valued with zeros in the imaginary. We’ve never tested TAO this way.

Alp

On Apr 14, 2020, at 5:26 PM, Stefano Zampini <stefano.zampini at gmail.com> wrote:

 Not true in general when you minimize an objective function as a functional of the parameter only
For same methods (Newton for example, gradient descent, etc) the state variables do no enter the minimization, so it should be fine to have complex-valued state variables


On Apr 15, 2020, at 1:04 AM, Zhang, Hong via petsc-users <petsc-users at mcs.anl.gov<mailto:petsc-users at mcs.anl.gov>> wrote:

Sorry for the time travel. As far as I know, optimization over complex-valued parameters is not a well-defined problem. I am not sure how you can develop an optimization algorithm for it. Perhaps our optimization experts have better suggestions in this direction.

The real-valued formulation seems to be more promising to me. The preconditioning is hard, but still doable with fieldsplit as Mark mentioned.

Hong (Mr.)

On Apr 14, 2020, at 1:42 PM, Sajid Ali <sajidsyed2021 at u.northwestern.edu<mailto: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.

Thank You,
Sajid Ali | PhD Candidate
Applied Physics
Northwestern University
s-sajid-ali.github.io<http://s-sajid-ali.github.io/>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200414/a6820ead/attachment-0001.html>


More information about the petsc-users mailing list