Merged gravity M-M tasks
Merge the M-M tasks between two cells into one single M-M task that will perform all the operations on the pair's progenitors.
Additional changes are:
- Delay the drifting of the multipole to the task instead of the unskip.
- Use the CoM at rebuild time in
cell_can_use_pair_mm_rebuild()
as the name indicates. - Add extra timers to
engine_maketasks()
- Use the list of local cells (instead of all cells) in
space_regrid()
to infer the maximal smoothing length. - Fix the plotting scripts for matplotlib 2.x.
- Change the task flag to a
long long
instead ofint
.
Edited by Matthieu Schaller
Merge request reports
Activity
Ran this with the undefine sanitizer switched on and it said:
scheduler.c:927:38: runtime error: left shift of 1 by 63 places cannot be represented in type 'long long int' runner_doiact_grav.h:1338:28: runtime error: left shift of 1 by 63 places cannot be represented in type 'long long int'
I guess that means this should be an unsigned value, so the question is do we use as signed?
It may have been to protect the code against a segfault when accessing the
sid_scale[]
array?In any case, it seems to me that we always assign positive values to the flag:
- 0-12 for the hydro pairs/sub-pairs
- MPI tags for the communications
We also do not perform any arithmetic on the flags directly. There could be some
long long
toint
and back conversions but I think these are safe.added 1 commit
- 3f49741e - Moved the check of negative flags for hydro pairs to the debug code. That never…
added 1 commit
- f45ad952 - Moved the check of negative flags for hydro pairs to the debug code. That never…
mentioned in commit 19caade8
Please register or sign in to reply