-
Notifications
You must be signed in to change notification settings - Fork 50
Accelerate Maxwellian boundaries in Flowthrough_amr #1161
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
base: dev
Are you sure you want to change the base?
Conversation
|
Here are the results for similar tests with Flowthrough_damr. As reference, that #1099 latest stage linked above: The below run on LUMI-C. On 16 tasks x 16 threads, default case (existing testpackage settings), I get: On 32 tasks x 1 thread each, Maxwellian boundary acc on, comparing the last file, I get (absolute and relative 0-diff listed) On 1 task x 64 threads, Maxwellian boundary acc on: On 16 tasks x 16 threads, Maxwellian acc on: So for this test, the benefit of accelerating these boundary cells is not obvious/this doesn't fix anything. |
|
Sneak peek: Flowthrough_damr run serially has slightly larger diffs with accelerated Maxwellian boundaries than without, so the diff source of this test isn't affected it seems. I'll let that run overnight. |
|
Final state of Flowthrough_damr run serially, for the base case and the Maxwellian-accelerated case, in dev and in the #1099 branch. Which is fascinating as I was ascribing at least part of these diffs (compare the 16x16 CI values above) to the "well-known" AMR pencil summation + threading. 🤔 |
|
Here is the vg_rho diff data for a full run of FLowthrough_damr run on single task and single thread, with the base case and the accelerated Maxwellian boundary case, diffing the #1099 branch vs dev.
|
|
I'd still advocate for activating the Maxwellian boundary acceleration as suggested in this branch given it alleviated some spurious diffs we can do without when working on some branch. |
|
Fell again into that rabbit hole.
all have little to no effect on the errors/diffs appearing in Flowthrough_damr. Add to that the fact running serially yields the same diffs and I am still utterly baffled. I can't help but think there must be some subtle use of uninitialised memory somewhere, or some incorrect pencil neighbor? pointer? VDF? use that's not quite wrong but not quite right either, and unrelated to all of the parameters tested above, notably OpenMP threading and MPI/ghosts. |
|
All right in my current test setup using Flowthrough_damr I see diffs (as have been commonly observed in the last couple of years), with none of the above making much difference. What I do observe is that the diffs are the same/very similar no matter what LB algorithm I use, if I change the LB frequency but retain the AMR at the same times, and especially when run serially. This means that I suggest to activate this Maxwellian acceleration for Flowthrough_amr as it seemingly "fixes" some of the diffs we were disliking so far, but I leave the remaining investigation of the cause of the Flowthrough_damr diffs to a later stage/other investigator. |


During investigations of diffs in #1099 I was baffled again by our diffs in the testpackage Flowthrough_amr test. What struck me today is that diffs were jumping up by factors of 2 to 6 at every change in dt step-by-step when the "normal" changes are diffs growing by about 10% per step or thereabout.
I tested activating
which is well-established in production.
In #1099 at today's state https://github.com/fmihpc/vlasiator/actions/runs/16967516987/job/48291190426 the diffs in Flowthrough_amr are (Carrington CI), but this has been known to be a bit instable and sometimes be 100x larger:
Running manually dev vs the branch on LUMI-C, on a single task and single thread, I get
If I activate the Maxwellian boundary acceleration, still single task, single thread, I get
If I activate the Maxwellian boundary acceleration on 16 tasks x 16 threads I get
In the latter two cases, the diffs don't increase monotonically any more for all variables, so this doesn't rid us of all diffs. I'm also a bit surprised the 16 x 16 diverges less than the serial version. But well.
Note that dt changes "macroscopically" of course, and new reference data will be needed after this, but it seems to make Flowthrough_amr less diffy.