[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