I am developing a DAQ system which will use 3 PCI-6133 cards to read up to 24 channels of MHz data. However, I am running out of memory when I attempt to collect a large amount of data (e.g. for all 24 channels at 2.5 MHz, the limit is 2.9 MSamples, for only 8 channels at 2.5 MHz, the limit is 6.3 MSamples). I have attached the part of my code that collects and records the data. Is there any way to further optimize it? Thank you
If you click here you will be directed to a Knowledge base discussing optimizing memory usage in VIs. Also, looking at your code, you may want to add a clear daqmx task vi. Hope this helps!
You can look at data type.
24 ch * 2,9MSa * Doubles = 556Mb
If you have sufficient memory it might be an issue of achieving free chunks of memory, which leads to an old discussion of large data sets.
Additionally: Are you running 32- or 64bit?
With 32bit, the memory space you can adress is limited by default to 2GB per process. With some additional settings (see info here) you can extend it to 3GB.
Please note that arrays have to be contiguos in memory, hence memory fragmantation can always be an issue.
hope this helps,