You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If I understand the code correctly, FillBoundary only iterates over cells close to the boundary,
while SumBoundary copies the entire Field into a temporary array and then copies it back with updated boundaries,
wich is not nessisary for the vast majority of cells in the center of the box.
With one rank and one box SumBoundary is much slower than FillBoundary.
In HiPACE++ I could make a custom single-box local SumBoundary version, but maybe there is a better option from AMReX?
For context: HiPACE++ currently uses FillBoundary for charge and currents, which is wrong, but changing it to SumBoundary increases the total runtime by 5%.
The text was updated successfully, but these errors were encountered:
The current implementation of SumBoundary tries to reuse what we have. And the thinking was for large jobs, the MPI communication cost will dominate the local copy cost. We could reimplement the function for efficiency .
If I understand the code correctly, FillBoundary only iterates over cells close to the boundary,
while SumBoundary copies the entire Field into a temporary array and then copies it back with updated boundaries,
wich is not nessisary for the vast majority of cells in the center of the box.
With one rank and one box SumBoundary is much slower than FillBoundary.
In HiPACE++ I could make a custom single-box local SumBoundary version, but maybe there is a better option from AMReX?
For context: HiPACE++ currently uses FillBoundary for charge and currents, which is wrong, but changing it to SumBoundary increases the total runtime by 5%.
The text was updated successfully, but these errors were encountered: