-
Notifications
You must be signed in to change notification settings - Fork 37
minor tweaks and parameter changes #39
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -24,24 +24,24 @@ | |
| # set global logger (remove this if you do not want the output at all) | ||
| logger = Log.setup_custom_logger('root') | ||
|
|
||
| num_procs = 8 | ||
| num_procs = 16 | ||
|
|
||
| # This comes as read-in for the level class | ||
| lparams = {} | ||
| lparams['restol'] = 1E-8 | ||
| lparams['restol'] = 5E-6 | ||
|
|
||
| swparams = {} | ||
| swparams['collocation_class'] = collclass.CollGaussLobatto | ||
| swparams['num_nodes'] = 3 | ||
| swparams['do_LU'] = True | ||
|
|
||
| sparams = {} | ||
| sparams['maxiter'] = 12 | ||
| sparams['maxiter'] = 16 | ||
|
|
||
| # setup parameters "in time" | ||
| t0 = 0 | ||
| Tend = 3000 | ||
| Nsteps = 500 | ||
| Tend = 384 | ||
| Nsteps = 128 | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The GS example takes 640 steps.. can you extend this a little bit? We have randomized fault injections, so we need many steps to get good statistics.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You can just increase Tend and Nsteps by constant factors, so e.g. Tend = 768 and Nsteps = 1000 or so. Only increasing Nsteps would also work, a finer resolution might help PFASST converge better. |
||
| #Tend = 30 | ||
| #Nsteps = 5 | ||
| dt = Tend/float(Nsteps) | ||
|
|
@@ -57,8 +57,8 @@ | |
| pparams['order'] = [4, 2] # [fine_level, coarse_level] | ||
| pparams['order_upw'] = [5, 1] | ||
| pparams['gmres_maxiter'] = [50, 50] | ||
| pparams['gmres_restart'] = [20, 20] | ||
| pparams['gmres_tol'] = [1e-8, 1e-8] | ||
| pparams['gmres_restart'] = [10, 10] | ||
| pparams['gmres_tol'] = [1e-10, 1e-10] | ||
|
|
||
| # This comes as read-in for the transfer operations | ||
| tparams = {} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you need this fixed at 16? The thing is that for FT we need to keep this free, otherwise we cannot estimate the overhead..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, you can set this to whatever value you want. The only problem is that with too few iterations, PFASST can become unstable over the course of the simulation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK, so PFASST will reasonably converge with the residual criterion?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, yes. You might have to tweak the tolerance a bit, PFASST takes quite long to reach very fine residuals. I tried to go for something between 1e-5 and 1e-6. The residual after the first iteration is already 1e-4, so larger values do not make much sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What would be a reasonable tolerance to get approx. 10-20 iterations per block, then? Does this change during the simulation or is it more or less constant?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Try 1e-6 or 1e-7... for 16 processors, this might already give you quite a lot of iterations. It seems not to change too much over the simulation, but I did not take a systematic look at it.