[SciPy-User] memory errors when using savemat

Tyrel Newton newton at tethers.com
Sun Jul 25 13:13:57 EDT 2010


On Jul 25, 2010, at 9:49 AM, Pauli Virtanen wrote:

> Sat, 24 Jul 2010 10:37:33 -0700, Tyrel Newton wrote:
>> I'm trying to use scipy.io.savemat to export a very large set of data to
>> a .mat file. The dataset contains around 20 million floats. When I try
>> to export this to a .mat file, I get a MemoryError. The specific
>> MemoryError is:
>> 
>> File "C:\Python26\lib\site-packages\scipy\io\matlab\miobase.py", line
>> 557 in write_bytes
>> 	self.file_stream.write(arr.tostring(order='F'))
> 
> What is the complete error message? -- It typically indicates the 
> specific part in C code the error originates from. (The full traceback, 
> thanks!)

Attached is a Windows command line screenshot my colleague captured.

> 
> On the other hand, along that code path it seems the only source of a 
> MemoryError can really be a failure to allocate memory for the tostring. 
> Your data apparently needs 160 MB free for this to succeed -- which is 
> not so much. So the question comes to what is the memory usage of the 
> code when saving, compared to the available free memory?
> 

Yeah, my theory is that the tostring process is basically trying to duplicate the memory usage by creating a string that is then written to the file. This seems like an inefficient way to do it, but my understanding of the code is limited, so I'm probably missing something.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: memory_error_cropped.png
Type: image/png
Size: 108251 bytes
Desc: not available
URL: <http://mail.scipy.org/pipermail/scipy-user/attachments/20100725/d72276a5/attachment.png>


More information about the SciPy-User mailing list