- edited description
relion_run_motioncorr std::bad_alloc
Seem to be experiencing a error with relion_run_motioncorr 100 frame 8k tif movies works fine with CPU and GPU versions 200 frame 8k tif movies errors out: * terminate called after throwing an instance of 'std::bad_alloc' * what(): std::bad_alloc
CL run of same 200 frame 8k tif with MotionCor2 works fine. Relion3 GUI wrapper run of same 200 frame 8k mrc with MortionCor2 works fine.
Please advise.
Comments (6)
-
reporter -
How much memory do you have and how many MPI processes do you use? 200 frames x 8K x 8K is very large! It will consume > 100 GB of RAM per MPI process. Also consider using the
--early_binning
option if you apply binning. -
- marked as trivial
-
reporter I have ~64GB RAM which is fine for GPU version, not run through relion_run_motioncorr.
For testing, I ran the CPU version on a machine with 500GB RAM and it proceeds, although it seems the output has worse patch alignment than the gpu version. I'll test differing groupings, patches, and other options to improve.
-
Thanks for testing.
For testing, I ran the CPU version on a machine with 500GB RAM and it proceeds
This proves that the problem was memory shortage. 200 frames x 8K x 8K are beyond my design consideration for the CPU version. If such large datasets become common in future, I will improve my implementation for better memory handling.
it seems the output has worse patch alignment than the gpu version. I'll test differing groupings, patches, and other options to improve.
My CPU version might not give as good trajectories as the UCSF MotionCor2 in some datasets. As long as you use Bayesian Polishing afterwards, the accuracy of initial motion correction is not very important.
-
- changed status to resolved
- Log in to comment