<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ATTN: An AppCore Bug-Fix Is Ready... in Intel® Moderncode for Parallel Architectures</title>
    <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/ATTN-An-AppCore-Bug-Fix-Is-Ready/m-p/856304#M2107</link>
    <description>&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;Here is some information on the bug that was fixed:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://groups.google.com/group/comp.programming.threads/browse_frm/thread/cf4a952ff5af7d"&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://groups.google.com/group/comp.programming.threads/browse_frm/thread/cf4a952ff5af7d" target="_blank"&gt;http://groups.google.com/group/comp.programming.threads/browse_frm/thread/cf4a952ff5af7d&lt;/A&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;(read all...)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;In addition to fixing the eventcount signaling logic wrt the&lt;BR /&gt;single-producer/consumer queue, I have added the following functions:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;ac_eventcount_algo1.h&lt;BR /&gt;____________________________________________________&lt;BR /&gt; ac_eventcount_algo1_signal_naked(...);&lt;BR /&gt; ac_eventcount_algo1_signal_fence(...);&lt;BR /&gt; #define ac_eventcount_algo1_signal &lt;BR /&gt; ac_eventcount_algo1_signal_fence&lt;BR /&gt;____________________________________________________&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;ac_queue_spsc.h&lt;BR /&gt;____________________________________________________&lt;BR /&gt; ac_queue_spsc_getec(...);&lt;BR /&gt; ac_queue_spsc_push_nosig(...);&lt;BR /&gt;____________________________________________________&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P align="left"&gt;&lt;FONT face="Courier New" size="1"&gt;You can use the functions above to take advantage of amortization wrt the #StoreLoad memory barrier that needs to be executed before the 'ac_eventcount_algo1_signal_naked(...)' gets called.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;One simple example... Build batches of nodes and push pointers to the batches into the queue using 'ac_queue_spsc_push_nosig(...)'. Once your done with that you can do something like this for the final signal, and memory barrier:&lt;BR /&gt;____________________________________________________&lt;BR /&gt;/* try and build multiple batches of work */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;/* push pointers to the batches into a set of&lt;BR /&gt; queues using 'ac_queue_spsc_push_nosig(...)' */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;/* call ac_mb_fence() */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;/* finally, signal each queues eventcount using */&lt;BR /&gt; ac_eventcount_algo1_signal_naked(&lt;BR /&gt; ac_queue_spsc_getec(...)&lt;BR /&gt; )&lt;BR /&gt;____________________________________________________&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;This makes improvement on AppCore queuing API; what do you think?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;-- &lt;BR /&gt;Chris M. Thomasson&lt;BR /&gt;&lt;/FONT&gt;&lt;A href="http://appcore.home.comcast.net/"&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://appcore.home.comcast.net" target="_blank"&gt;http://appcore.home.comcast.net&lt;/A&gt;&lt;FONT face="Courier New" size="1"&gt; &lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
    <pubDate>Sat, 02 Feb 2008 12:52:10 GMT</pubDate>
    <dc:creator>Chris_M__Thomasson</dc:creator>
    <dc:date>2008-02-02T12:52:10Z</dc:date>
    <item>
      <title>ATTN: An AppCore Bug-Fix Is Ready...</title>
      <link>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/ATTN-An-AppCore-Bug-Fix-Is-Ready/m-p/856304#M2107</link>
      <description>&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;Here is some information on the bug that was fixed:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://groups.google.com/group/comp.programming.threads/browse_frm/thread/cf4a952ff5af7d"&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://groups.google.com/group/comp.programming.threads/browse_frm/thread/cf4a952ff5af7d" target="_blank"&gt;http://groups.google.com/group/comp.programming.threads/browse_frm/thread/cf4a952ff5af7d&lt;/A&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;(read all...)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;In addition to fixing the eventcount signaling logic wrt the&lt;BR /&gt;single-producer/consumer queue, I have added the following functions:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;ac_eventcount_algo1.h&lt;BR /&gt;____________________________________________________&lt;BR /&gt; ac_eventcount_algo1_signal_naked(...);&lt;BR /&gt; ac_eventcount_algo1_signal_fence(...);&lt;BR /&gt; #define ac_eventcount_algo1_signal &lt;BR /&gt; ac_eventcount_algo1_signal_fence&lt;BR /&gt;____________________________________________________&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;ac_queue_spsc.h&lt;BR /&gt;____________________________________________________&lt;BR /&gt; ac_queue_spsc_getec(...);&lt;BR /&gt; ac_queue_spsc_push_nosig(...);&lt;BR /&gt;____________________________________________________&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P align="left"&gt;&lt;FONT face="Courier New" size="1"&gt;You can use the functions above to take advantage of amortization wrt the #StoreLoad memory barrier that needs to be executed before the 'ac_eventcount_algo1_signal_naked(...)' gets called.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="Courier New" size="1"&gt;One simple example... Build batches of nodes and push pointers to the batches into the queue using 'ac_queue_spsc_push_nosig(...)'. Once your done with that you can do something like this for the final signal, and memory barrier:&lt;BR /&gt;____________________________________________________&lt;BR /&gt;/* try and build multiple batches of work */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;/* push pointers to the batches into a set of&lt;BR /&gt; queues using 'ac_queue_spsc_push_nosig(...)' */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;/* call ac_mb_fence() */&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;/* finally, signal each queues eventcount using */&lt;BR /&gt; ac_eventcount_algo1_signal_naked(&lt;BR /&gt; ac_queue_spsc_getec(...)&lt;BR /&gt; )&lt;BR /&gt;____________________________________________________&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;This makes improvement on AppCore queuing API; what do you think?&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="1"&gt;-- &lt;BR /&gt;Chris M. Thomasson&lt;BR /&gt;&lt;/FONT&gt;&lt;A href="http://appcore.home.comcast.net/"&gt;&lt;FONT face="Courier New" size="1"&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;A href="http://appcore.home.comcast.net" target="_blank"&gt;http://appcore.home.comcast.net&lt;/A&gt;&lt;FONT face="Courier New" size="1"&gt; &lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 02 Feb 2008 12:52:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Moderncode-for-Parallel/ATTN-An-AppCore-Bug-Fix-Is-Ready/m-p/856304#M2107</guid>
      <dc:creator>Chris_M__Thomasson</dc:creator>
      <dc:date>2008-02-02T12:52:10Z</dc:date>
    </item>
  </channel>
</rss>

