I suppose this is more of a question than a feature request (at least, right now )
I’ll preface this by saying that I only barely understand the math behind cryoSPARC and I don’t understand GPU coding or HPC at all, but I’m curious why cryoSPARC only ever uses 1 GPU for refinement/reconstruction. I would expect that, especially during the expectation step, multiple GPUs could significantly speed up these processes. I’m curious if there’s an algorithmic reason for sticking to one GPU for these processes (but not, for instance, for 2D classification).
Thank you @posertinlab for using cryoSPARC.
Yes. The algorithms have great potential for parallelization, but bottlenecks may occur in handling the data before and after the potentially parallel tasks. In deciding where (and when) to parallelize across multiple GPUs, we are looking at overall performance, complexity of implementation, alternative (or complementary) methods for faster computations. And we re-evaluate our choices as circumstances change…
That makes sense! I figured it must be associated with costs of getting data in and out of a paralellizable structure. Thanks for the information!