Skip to content
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

Slow execution of point-by-point refinement #348

Open
jadball opened this issue Nov 9, 2024 · 1 comment
Open

Slow execution of point-by-point refinement #348

jadball opened this issue Nov 9, 2024 · 1 comment

Comments

@jadball
Copy link
Contributor

jadball commented Nov 9, 2024

The refine_map function is running quite slowly, even on a decent system. We use prange from Numba to iterate over each pixel of reconstruction space. At each pixel, we need to access a masked subset of 8 icolf columns (masking the sinogram).

Quite frequently when monitoring with htop, the processes that Numba creates are sitting in a D state, indicating uninterruptable sleep. Checking the Wait Channel with ps -o pid,stat,wchan:30,command -x gives:

PID STAT WCHAN
55794 Dl do_user_addr_fault

I believe this indicates a pagefault caused by our memory access pattern - we have many parallel processes (could be up to 196 at the ESRF) all wanting different portions of the same columnfile.

Is there a way we can mitigate this with the right columnfile sorting, or clever chunking/grouping?

def refine_map(refine_points, all_pbpmap_ubis, ri_col, rj_col, sx_grid, sy_grid, mask, # refinement stuff

@jonwright
Copy link
Member

jonwright commented Nov 12, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants