<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Functional Globals in LabVIEW 8.5 - No Loop, No Joke</title>
	<atom:link href="http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/feed/" rel="self" type="application/rss+xml" />
	<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/</link>
	<description>an unfiltered stream of data flow consciousness</description>
	<pubDate>Fri,  5 Sep 2008 20:16:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
		<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1081</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Wed, 19 Sep 2007 16:07:24 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1081</guid>
		<description>Hi Jeff,

Thanks for the fast (and correct) response ;)  I'm happy to hear that you're working on it.  Is there a CAR number for this issue, so that we (the community) can more easily monitor progress?

Thanks,

-Jim</description>
		<content:encoded><![CDATA[<p>Hi Jeff,</p>
<p>Thanks for the fast (and correct) response <img src='http://thinkinging.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  I&#8217;m happy to hear that you&#8217;re working on it.  Is there a CAR number for this issue, so that we (the community) can more easily monitor progress?</p>
<p>Thanks,</p>
<p>-Jim</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeff Washington</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1079</link>
		<dc:creator>Jeff Washington</dc:creator>
		<pubDate>Wed, 19 Sep 2007 16:02:36 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1079</guid>
		<description>Hello,
The new feedback node was implemented by my group in LV 8.5 (and the original feedback node was implemented by my group in LV 7.0).  We've done experiments to verify the discussions here and investigated the causes.

It turns out that late in 8.5 we ran into incorrect behavior under certain conditions, so an extra copy was introduced to make the feedback nodes behave correctly in every scenario.  This fix resulted in a performance penalty which was not present when we did performance measurements earlier in the release process.

This is unfortunate, and we are investigating addressing this for future versions of LV.
Correct and fast would be better than correct and slow which is better than wrong and fast.

Jeff Washington
Principal Engineer
LabVIEW R&#38;D</description>
		<content:encoded><![CDATA[<p>Hello,<br />
The new feedback node was implemented by my group in LV 8.5 (and the original feedback node was implemented by my group in LV 7.0).  We&#8217;ve done experiments to verify the discussions here and investigated the causes.</p>
<p>It turns out that late in 8.5 we ran into incorrect behavior under certain conditions, so an extra copy was introduced to make the feedback nodes behave correctly in every scenario.  This fix resulted in a performance penalty which was not present when we did performance measurements earlier in the release process.</p>
<p>This is unfortunate, and we are investigating addressing this for future versions of LV.<br />
Correct and fast would be better than correct and slow which is better than wrong and fast.</p>
<p>Jeff Washington<br />
Principal Engineer<br />
LabVIEW R&amp;D</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1018</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Mon, 10 Sep 2007 23:04:14 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1018</guid>
		<description>Jeffrey: Thanks for the extra info.  I have added this to the &lt;a href="http://wiki.lavag.org/Functional_global_variable#Performance" rel="nofollow"&gt;"Concerns&gt;&gt;Performance" section of the Functional Global page on the LabVIEW Wiki&lt;/a&gt;.  If you would like to add to this, feel free. :)</description>
		<content:encoded><![CDATA[<p>Jeffrey: Thanks for the extra info.  I have added this to the <a href="http://wiki.lavag.org/Functional_global_variable#Performance" rel="nofollow">&#8220;Concerns>>Performance&#8221; section of the Functional Global page on the LabVIEW Wiki</a>.  If you would like to add to this, feel free. <img src='http://thinkinging.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey Habets</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1017</link>
		<dc:creator>Jeffrey Habets</dc:creator>
		<pubDate>Mon, 10 Sep 2007 22:45:00 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1017</guid>
		<description>Jim, yes I used the show buffer allocations tool..

The differences in speed I mentioned in my first reply where partly caused by me using the select node in the feedback-solution (as by your example here) and a case in the lv2-style global (force of habit :-)).

When using the select node in both solutions the lv2-style is still 1.5 times faster. When using a case as the select-mechanism, there is no difference in speed.

I'm testing this with an array of 500000 dbl's btw. Other (smaller) array size's give different results, ranging from approx. 1.5 to 3 times.</description>
		<content:encoded><![CDATA[<p>Jim, yes I used the show buffer allocations tool..</p>
<p>The differences in speed I mentioned in my first reply where partly caused by me using the select node in the feedback-solution (as by your example here) and a case in the lv2-style global (force of habit :-)).</p>
<p>When using the select node in both solutions the lv2-style is still 1.5 times faster. When using a case as the select-mechanism, there is no difference in speed.</p>
<p>I&#8217;m testing this with an array of 500000 dbl&#8217;s btw. Other (smaller) array size&#8217;s give different results, ranging from approx. 1.5 to 3 times.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1012</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Mon, 10 Sep 2007 20:34:00 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1012</guid>
		<description>Jeffrey: Regarding the memory allocation, have you looked at the VI's with the show buffer allocations tool?</description>
		<content:encoded><![CDATA[<p>Jeffrey: Regarding the memory allocation, have you looked at the VI&#8217;s with the show buffer allocations tool?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey Habets</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1011</link>
		<dc:creator>Jeffrey Habets</dc:creator>
		<pubDate>Mon, 10 Sep 2007 20:09:32 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1011</guid>
		<description>I benckmarked in 8.5 (pre 8.5 it wouldn't have been possible without a loop).

I tested some more and noticed some varying results.. Working with a case for the write/read selection, I get the same performance for feedback-node and lv2-style. When I replace the case with a select-primitive (this effectively seems to introduce an extra memory allocation), the lv2-style wins.</description>
		<content:encoded><![CDATA[<p>I benckmarked in 8.5 (pre 8.5 it wouldn&#8217;t have been possible without a loop).</p>
<p>I tested some more and noticed some varying results.. Working with a case for the write/read selection, I get the same performance for feedback-node and lv2-style. When I replace the case with a select-primitive (this effectively seems to introduce an extra memory allocation), the lv2-style wins.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1010</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Mon, 10 Sep 2007 17:10:48 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1010</guid>
		<description>Matt,

In &lt;a href="http://forums.lavag.org/LV2-style-globals-Ever-wondered-whether-to-use-While-Loops-or-For-Loops-t7175.html&#038;st=40#entry35411" rel="nofollow"&gt;this post on LAVA&lt;/a&gt; Rolf states:

"And yes Jeff [Washington] mentioned that the original Feedback node was implemented by an intern and they had thought he had chosen to implement it simply as a folded shift register but that seems to not have been the case and that is why it was much slower than a shift register. In 8.5 however Jeff claimed that the Feedback register should in all aspects we as user could possibly measure, behave exactly as a shift register."

I'm not sure if Jeffrey Habets benchmark was done in LabVIEW 8.5 or not.</description>
		<content:encoded><![CDATA[<p>Matt,</p>
<p>In <a href="http://forums.lavag.org/LV2-style-globals-Ever-wondered-whether-to-use-While-Loops-or-For-Loops-t7175.html&#038;st=40#entry35411" rel="nofollow">this post on LAVA</a> Rolf states:</p>
<p>&#8220;And yes Jeff [Washington] mentioned that the original Feedback node was implemented by an intern and they had thought he had chosen to implement it simply as a folded shift register but that seems to not have been the case and that is why it was much slower than a shift register. In 8.5 however Jeff claimed that the Feedback register should in all aspects we as user could possibly measure, behave exactly as a shift register.&#8221;</p>
<p>I&#8217;m not sure if Jeffrey Habets benchmark was done in LabVIEW 8.5 or not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt Holt</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1007</link>
		<dc:creator>Matt Holt</dc:creator>
		<pubDate>Mon, 10 Sep 2007 15:31:15 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1007</guid>
		<description>Crossing my fingers that this is NI's typical "Make it work, then make it fast" development style in full action.</description>
		<content:encoded><![CDATA[<p>Crossing my fingers that this is NI&#8217;s typical &#8220;Make it work, then make it fast&#8221; development style in full action.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jim Kring</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1004</link>
		<dc:creator>Jim Kring</dc:creator>
		<pubDate>Sun, 09 Sep 2007 22:19:13 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1004</guid>
		<description>Jeffrey: Thanks for posting your results.  It's too bad that there is such a huge difference in performance.  I guess we'll have to keep using the old-style for now :)</description>
		<content:encoded><![CDATA[<p>Jeffrey: Thanks for posting your results.  It&#8217;s too bad that there is such a huge difference in performance.  I guess we&#8217;ll have to keep using the old-style for now <img src='http://thinkinging.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeffrey Habets</title>
		<link>http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1003</link>
		<dc:creator>Jeffrey Habets</dc:creator>
		<pubDate>Sun, 09 Sep 2007 21:43:02 +0000</pubDate>
		<guid isPermaLink="false">http://thinkinging.com/2007/09/07/functional-globals-in-labview-85-no-loop-no-joke/#comment-1003</guid>
		<description>I did a quick benchmark and it looks like the lv2 old-style still outperforms the feedback-node solution. For writing the old-style was about 2 times faster, and for reading 3 times faster.

Jeffrey</description>
		<content:encoded><![CDATA[<p>I did a quick benchmark and it looks like the lv2 old-style still outperforms the feedback-node solution. For writing the old-style was about 2 times faster, and for reading 3 times faster.</p>
<p>Jeffrey</p>
]]></content:encoded>
	</item>
</channel>
</rss>
