NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


Reply
Member
Tester11
Posts: 1
0 Kudos

compile error: How to modify .ini in 2010 SP1

Hello,

 

I am using the attached VI to stack cycles of data.  Ideally, I would like to stack 200-300 cycles, but anytime I get above 100-125 shift registers/cycles, the VI will not compile.  After 20-30 minutes, the error "out of memory exception caught in llvm gencode" appears.  

 

Follow past searches, I have increased the virtual memory as detailed below, which did not solve my problem.

http://zone.ni.com/reference/en-XX/help/371361G-01/lvhowto/enable_lrg_ad_aware/

 

I see this posting detailing modifying the .ini file as another possible solution.

http://digital.ni.com/public.nsf/websearch/BA4B9038D01F3C99862577CA004BE1AD?OpenDocument

 

Being unfamiliar with modifying the .ini file, how do I exactly do this?  Is it as simple as adding a line "LLVMLargeVIThreshold=12000" ? (or something greater than the standard 7500 value).  I have adding this line to the .ini file and still get the compiler error llvm issue.

 

Any other suggestions or thoughts?  I dont want to have to roll back from 2010SP1 in order to be able to run this vi and get around this issue...

 

Thank you

Proven Zealot
johnsold
Posts: 7,853
0 Kudos

Re: compile error: How to modify .ini in 2010 SP1

I can get it above 200 shift register elements and still get it to compile, but that may be due to system differences.

 

However, that design does not scale well.  Any time you want to change the number of elements you need to modify the program.

 

Have you considered a queue of datatype Array of Double?

 

If you look at buffer allocations in your program you get one buffer for each shift register element and one for the 2D array. Each must have contiguous memory due to the way arrays are stored in memory.  If the input array array grows in length, then all of the buffers need to be reallocated.  This should be a run time problem rather than compile-time, but the compliler may try to do some optimizations, particularly since it knows all the shift register buffers will be the same size.

 

The Queue stores each array separately and the arrays can be different lengths.  To get all the data, use Get Queue Status with return elements? set True.  This will return an array of clusters with each cluster containing one of the input arrays.

 

Lynn

By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page