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

Dynamically scale CPU count per volume in submitit #485

Open
ziw-liu opened this issue Nov 26, 2024 · 2 comments
Open

Dynamically scale CPU count per volume in submitit #485

ziw-liu opened this issue Nov 26, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@ziw-liu
Copy link
Contributor

ziw-liu commented Nov 26, 2024

When the reconstruction volume is large, RAM needed becomes disproportional to the one CPU core:

Preparing 1 job with 1 CPU and 41 GB of memory per CPU.

Since HPC nodes don't usually have more than 15 GB RAM per CPU, this is leaving CPU horsepower on the table, as both PyTorch (compute) and zarr-python's numcodecs (I/O) can potentially be multi-threaded. This needs some tweaking of the threading though, as it used to cause problems in multi-processing.

@ziw-liu ziw-liu added the enhancement New feature or request label Nov 26, 2024
@talonchandler
Copy link
Collaborator

Thanks for flagging @ziw-liu.

My understanding of the the current reconstruction pipeline is that for large arrays FFTs are the bottleneck, so I expect additional CPUs to give marginal improvements at best. Unless you have reason to believe torch can easily multiprocess an FFT(?).

I think this bottleneck might move to I/O when we move the FFTs to the GPU, though. I'll keep an eye out.

@ziw-liu
Copy link
Contributor Author

ziw-liu commented Nov 27, 2024

Unless you have reason to believe torch can easily multiprocess an FFT(?).

I would guess that torch can do multi-threaded FFT on the CPU just like it can on the GPU. There was a previous (maybe the current stable) version of recOrder/waveorder that benefits from multiple CPU threads for reconstructions.

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

No branches or pull requests

2 participants