Closed jdmoorman closed 3 years ago
@jdmoorman thank you for noticing this behavior! I will get back to you on this one, in the next few days.
@jdmoorman Thank you for this one. I took a closer look - I believe that the not noticeable difference in memory between low_storage and low_ram is due to the fact that if you ran the two one after the other, low_storage is reusing precomputed blocks. Running the same test as you, but with one order of magnitude larger spatial dimension gives me:
Regarding the streaming version, running the larger problem above gives me indeed a larger memory use. I will reflect that in the manuscript and documentation and remove the claim.
If the streaming version of the algorithm has a larger memory footprint than the other versions, is there any situation where the streaming version should be used?
@jdmoorman Yes, probably it should only stay in a development branch, as the footprint is larger; I can remove it from the paper. Although, it is an instructive one to have, as it is a different implementation. Let me know
I am having trouble verifying that the low RAM and streaming variants of SPOD use less RAM than the low storage variant. I am generating synthetic data as in
methods_comparison_file.py
:In a separate script, I make a data handler
define the parameters
and run the algorithm e.g.
Using the python package
memory-profiler
, I get plots of the memory usage over time for each algorithm (below). From the plots, it seems the difference between low RAM and low storage is not significant, and the streaming variant actually requires more RAM than the low storage variant.Low RAM
Low Storage
Streaming