LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Labview out of memory message: memory full; not enough memory to complete this operation

Hello,
I have programmed various algorithms for preprocessing of large data sets, mainly using the linear algebra toolkit. 
I am having memory problems with labview when I run my program - even when testing with a 'small' data set  of 2000 columns and 2000 rows. I get messages like: Labvie out of memory; memory full; not enough memory to complete operation. And these messages come very soon after I import the data - i.e. i do not get much chance to do much processing!
I will appreciate help with this. I have tried to streamline my code, but I am sure I am still missing things. I know it is difficult without seeing the code, but I will try to explain. Briefly, this is how the program works:
 
In the front panel I use a tab display, where each tab displays: 1. a data import, where the user may select varaibles to analyse, etc. and 2. - 6. display and allow user to run various techniques for preprocessing and analysisn these data.
 
In the back I use a case structure to go through the data import and different techniques. This case structure sits inside a while loop, which I use to get the program to run. The selector terminal of each case is used to run the programs in each tab. I hope you can see what I have done and this is making sense.
 
In the first tab, once the data is in and the user selects the data variables to analyse, etc. , the data is displayed in arrays and in a xy graph so that the user may see if all OK before processing. The selected data is passed on to the next case (and other cases, depending on what is needed) for processing. The data is passed on using local variables.
 
In this second case, I do some simple math manipulations to the data and I use case structures arranged one after the other to allow the user to select the best preprocessing techniques for their data. Once they have preprocessed it, I again use local variables to pass this data on to the next case for analysisng the data..
 
In the third case I allow the user to do some more analysis and their results can be used for more processing in case four, etc. etc then pass these results to case five and then after more analysis to case six. So as you can see I do pass data on from case to case using local variables - this may be a problem (?) but I do not know how else to do it!
 
Now in the front pannel I also use xy graphs and waveform graphs to display data - I have tried to minimie their use, and I have, but really they are very useful so I would like to keep them. One thing I have done with regards to graphics - which I think helps is I have used a second while loop, where the plotting is done. So again I use local variables to pass the data out of the different cases in the first while loop and into the second for plotting.
 
I will really appreciate some pointers on why I am having this 'Labview out of memory' problem and how I may fix it. The dataset I am using for testing is not particularly large. I think it is my lack of programming skills....
 
Thanks.
 
 
 
 
 
 
   
0 Kudos
Message 1 of 5
(3,493 Views)
It is difficult to say much without seeing the code, but most likely you are creating a huge amound of data copies.
 
One problem is probably the use of local variables to shuttle huge data sets between code locations. Local variable always create data copies. Typically, you should place all data into shift registers so a single copy of the data is available in all cases. Locals are rarely needed.
 
Extra data copes are also created in controls and indicators. You should make sure to limit the data in indicators to reasonable sets. For example don't feed 2000x2000 points to an xy-graph, use some kind of data reduction. For array indicators only display the subset that is visible, then scroll through it by selecting different subsets of the data in the shift register as a function of custom index controls.
 
Have a look at the application note Managing Large Data Sets in LabVIEW
 
If you can, post your code and we might be able to point out other bottlenecks and suggest workarounds. 🙂
 
What is your LabVIEW version?

Message Edited by altenbach on 06-16-2006 08:17 PM

0 Kudos
Message 2 of 5
(3,490 Views)

Hello

thank you for your prompt reply. Yes I agree that the issue may be the local variables and the graph indicators. I will try to do as you suggest regarding the controls and indicators.

It is a bit difficult to send you my entire code as it is a large program. However, I will be grateful if you could show me an example of how to pass data from one case to the nex using shift registers.

I am using Labview 7.1.

Thanks again.

0 Kudos
Message 3 of 5
(3,480 Views)


@RVR wrote:

...However, I will be grateful if you could show me an example of how to pass data from one case to the nex using shift registers.



I made a simple example where the data is contained in a shift register to be available in several event cases for further processing.
 
(It can easily be expanded by adding more cases, e.g. for saving the data.)
 
Let me know if you have any questions. 🙂
0 Kudos
Message 4 of 5
(3,474 Views)

thank you very much i will let you know how I go.

 

0 Kudos
Message 5 of 5
(3,468 Views)