08-25-2012 12:54 PM - edited 08-25-2012 01:03 PM
Hi all,
I was expecting a performance increase upgrading to LV2012, per usual, unfortunately it seems it's been degraded by more than 50% for a simple benchmark I created for the purpose.
For the time being, I will stick with LV2011 due to this.
LV2011 running on a sbRIO9606 (steady around 3800 dereferencing/referencings per second):
LV2012 on the same computer (at about 1300 dereferencing/referencings per second😞
Any takes on the issue?
Source attached.
Br,
/Roger
Solved! Go to Solution.
08-25-2012 01:10 PM - edited 08-25-2012 01:20 PM
Small correction:
I got the wrong graph for LV2011..
And the correct source also attached..
Otherwise, the post above is correct.
Br,
/Roger
08-26-2012 06:02 PM
Both of your LoadCores have 0 wait, causing starving loops. Might that be a reason?
/Y
08-26-2012 11:38 PM
@Yamaeda wrote:
Both of your LoadCores have 0 wait, causing starving loops. Might that be a reason?
/Y
Hi, Yameada,
I dont think it's a starvation issue that explains the large difference between LV2011 and 2012?
Furthermore, the two loops are almost evenly balanced in the number of iterations/s?
Can you perhaps elaborate your point further?
Br,
/Roger
08-28-2012 01:00 PM
Not directly, but since you'll get a recompile due to the upgrade things might work differently afterwards, race conditions between locals being a prime example. Maybe those loops get higher priority in the new compiler?
Besides, you dont need to check for button presses 4 billion times a second. 🙂
Before we can say that 2012 is the culprit we must remove obvious problems in the program, right?
/Y
08-28-2012 01:12 PM - edited 08-28-2012 01:12 PM
"Check for button presses 4 billion times a second".
So what? It's a benchmark program. It's not intended for any practical use besides showing off the performance degradation that I experience in the newer version of labview.
"race conditions between locals being a prime example"
Did you cut'n paste that nonsense from the internetz?
"Maybe those loops get higher priority in the new compiler"
What does priority have to do with execution performance?
You are clearly not understanding the issue here.
Br,
/Roger
08-28-2012 01:28 PM
@User002 wrote:
"Check for button presses 4 billion times a second".
So what? It's a benchmark program. It's not intended for any practical use besides showing off the performance degradation that I experience in the newer version of labview.
"race conditions between locals being a prime example"
Did you cut'n paste that nonsense from the internetz?
"Maybe those loops get higher priority in the new compiler"
What does priority have to do with execution performance?
You are clearly not understanding the issue here.
Br,
/Roger
Could you please post images of the benchmarking code?
The machine I use for the forums does not have a modern version of LV so I can only look at pictures.
There is a chance I may be able to explain your observations.
No promises!
Curious,
Ben
08-28-2012 01:37 PM
@Ben wrote:
@User002 wrote:
"Check for button presses 4 billion times a second".
So what? It's a benchmark program. It's not intended for any practical use besides showing off the performance degradation that I experience in the newer version of labview.
"race conditions between locals being a prime example"
Did you cut'n paste that nonsense from the internetz?
"Maybe those loops get higher priority in the new compiler"
What does priority have to do with execution performance?
You are clearly not understanding the issue here.
Br,
/Roger
Could you please post images of the benchmarking code?
The machine I use for the forums does not have a modern version of LV so I can only look at pictures.
There is a chance I may be able to explain your observations.
No promises!
Curious,
Ben
I wonder you don't have LV2011.( Oh you have personnal copy back home? 🙂 )
08-28-2012 01:43 PM
@P Anand wrote:
...I wonder you don't have LV2011.( Oh you have personnal copy back home? 🙂 )
This machine has LV 6i and LV 7.1.
I have other machines that are not used on any public network that cover all of the other versions and yes I have a personal copy of LV 2011 on my laptop at home. To look at any code above LV 7.1 I have to down load it to a server, boot a machine with that version...
Take care,
Ben
08-28-2012 01:52 PM - edited 08-28-2012 01:52 PM
Ok Ben, thanks! Appreciated!
Here's a large picture with all the 'important' stuff.
Hope this is enough....
Its actually very simple as I got a single element queue and an overridden method for populating the class cluster with whatever I got in the queue.
The benchmark part is fairly straight forward.
Br,
/Roger