-
Notifications
You must be signed in to change notification settings - Fork 193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
changed default settings from 2.0.0 to 2.30.0 #1063
Comments
Hi @MatthiasHeilManchester Can you please copy AMG setup parameters as you did for the solve phase, something like the following, for both versions? Thanks
|
@liruipeng : Sure (and sorry about the delay): here's the full setup/solve information for a representative run. I'd omitted the explicit listing of the output from the setup phase in the original post because there doesn't seem to be much difference, but maybe I've overlooked something. This is from one of the runs where using the newer version of hypre causes an increase in the (outer) iteration count by a modest amount. This is fairly typical (and would probably have flown under the radar). However, there are a couple of tests where the increase is so dramatic that the outermost Newton solver fails to converge (the outer linear solver bails out after 100 iterations). In that case we're using Falgout-CLJP as the Coarsening Type. Again I can't see much difference but can send the full output for that too if it rings a bell. version 2.3.0:
version 2.0.0:
|
@liruipeng : ...actually just for completeness, here's the corresponding output from the more dramatic case. With the old version of hypre, the Newton solver takes three steps, and for each solve the outer GMRES iteration converges in about 20 iterations. With the new version, GMRES bails out after 100 iterations and the final approximation to the solution is so poor that the Newton method fails to converge within 10 iterations, at which point the code bails completely. Anyway, here's the stats: version 2.3.0:
version2.0.0:
|
We've recently upgraded Hypre v2.0.0 to v2.30.0. We use BoomerAMG (with a fixed number of cycles) as a preconditioner and noticed that following the upgrade the iteration counts in the (outer) iterative solver increased by more than the tolerances in our self-tests accept (and sometimes catastrophically so).
The difference only occurs when the code is run in parallel; when run serially (or with
mpirun -np 1
) the behaviour is essentially the same as in v2.0.0.We only had to make two straightforward changes to the code (listed at the end) to make it compile with v2.30.0. Apart from those changes, our own code remains completely unchanged, so the behaviour appears to be entirely due to the different version of hypre that we're linking against.
We have looked through the Hypre Changelog but couldn't find anything that would explain the changed behaviour. Any hints would be appreciated and we're obviously happy to provide further diagnostics (this is all done on ubuntu using openmpi).
Diagnostics:
I have called
to set the print level to 3 (= as verbose as possible).
Comparing the output from v2.0.0 and 2.30.0 (running on two processors
using mpi, and one OpenMP thread) then shows the following
differences:
version 2.30.0 outputs "
No global partition option chosen
" which, based on the code inparcsr_ls/par_stats.c
, is output all the time and is probably a relic of the removal of an associated option in version 2.21.0 (see Hypre Changelog).Version 2.30.0 outputs "
Interpolation = extended+i interpolation
" whereas version 2.2.0 says "Interpolation = modified classical interpolation
". This can be reset by callingHYPRE_BoomerAMGSetOldDefault(...)
. Doing this made no real difference.when setting the print level to 3, the solver parameters are output as follows:
Possibly just a change in the way the Pre/Post-CG relaxation is documented (I don't fully understand the meaning of this output, so can't judge if this is just cosmetic or an indication of an actual change to what the code does).
Interface changes:
To compile with the new version of Hypre we had to make two changes:
and
Everything else stays the same.
The text was updated successfully, but these errors were encountered: