I need to handle 3D cube data. Its number of elements can be several billions. I understand I can’t allocate that much memory on Windows. So I am thinking disk-based operations with in-process database. Is there any better way to do this? Maybe something in boost?
Update: I will eventually have to provide browsing functionality with plots.
Update2: The following article seemed to be a good solution using memory mapped file. I will try it and update again. http://www.codeproject.com/Articles/26275/Using-memory-mapped-files-to-conserve-physical-mem
Can you perhaps store the data more efficiently (read “Programming Pearls” by Bentley), is it sparse data?!
If not, memory mapped files (MMF) are your friend and allow you to map chunks of MMF into memory that you can access like any other memory.
Use
CreateFileMappingandMapViewOfFileto map a chunk into your process.