[aspect-devel] pressure normalization
Wolfgang Bangerth
bangerth at math.tamu.edu
Fri Aug 30 11:11:21 PDT 2013
On 08/30/2013 09:05 AM, Thomas Geenen wrote:
> this time via the devel list....
>
> when i was running the code on > 2000 cores i noticed that a lot of time
> was wasted in the pressure normalization (bad load balance interior
> versus boundary subdomains). i would suggest putting it by default to
> off (or to off from 500+ cores or so) or use the volume normalization one.
Interesting. The function contains one explicit MPI call, one creation
of a completely distributed vector (should not be very expensive) plus
one copy from a completely distributed to a ghosted vector (should also
not be very expensive). Can you break down which part of the function is
expensive?
> i do not think many models actually use the exact value of the pressure
> so my vote would be to setting it to off by default.
This may be a good time to have this conversation anyway, since we run
into this all the time:
There are definitely places where Aspect is slow. This is one. The
linear solver is one. There are probably others. Some of the reasons for
this is that in the past we've always erred on the side of trying to be
pedantically correct with the model and the solvers. For example, the
tolerances of the solver are almost certainly too tight.
My view on this is that we could relax many of these restrictions, or
switch off pressure normalization, and make the code run faster. That
said, I always tried to follow the principle of least surprise, which
would mean to make sure that the pressure is normalized or that the
linear systems are indeed solved to sufficient accuracy. It's just so
easy to get some results and publish them just to find out later that
what you see completely depends on how you set your solver tolerance. I
simply didn't want anyone to fall into this trap.
On the other hand, we haven't done a particularly good job at
documenting the knobs you can turn and the holds you can relax if you
know what you want and you're willing to try a bit whether they affect
the results you get. Could I propose the following:
Instead of globally relaxing tolerances or switch off pressure
normalization, how about having a section in the manual in which we list
ways to make the code faster if you know what you do? I'll be happy to
write this section.
Best
Wolfgang
--
------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth at math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/
More information about the Aspect-devel
mailing list