01-18-2010 10:05 PM
I want to create a 1D array of 40M element of Double: so I use Initialize Array, element is double 1, dimension size is 40M (and put a Sum at the end so as to make sure lv do attempt to create that array). Supposed this only need 320M of memory, and my system has over 1G free memory available as shown in Task Manager, but when Labview runs this VI, it tells me "Not enough memory to complete this operation" "Labview: memory is full, top level VI is stopped at Initalize Array", so it seems LV is unable to handle such an array, even if there is apparently more than enough free memory in the system.
Does anyone know why labview fails to allocate memory for this VI? Anyway to solve this problem?
01-18-2010 10:24 PM - edited 01-18-2010 10:25 PM
This question has been asked many times. Have you tried to do a search? Arrays require contiguous memory. It doesn't matter if you have 40 GB of RAM. Unless you have a contiguous block for your array, the allocation will fail. You should read the chapter in the LabVIEW Help on managing large data sets. There are also a couple of KnowledgeBase articles.
Of course, the obvious question is: why do you need to create such a large array in the first place?
02-02-2010 04:31 AM
Bigger arrays can be created with this library:
Fragmented Array Library:
http://decibel.ni.com/content/docs/DOC-9321
It automatically creates several smaller arrays transparently and lets you manipulate it like a single array.
Regards,