<?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 Forall and Do Concurrent in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777993#M26097</link>
    <description>The statements within the DO CONCURRENT are executed in order, in each "iteration", but there is no dependence on other iterations. FORALL could have array assignments only, but each assignment needed to be completed by all iterations before the next one executed, effectively creating a "wait for all" after each assignment. Yes, the idea of FORALL was to help with parallelization, but like a lot of High-Performance Fortran, the obsolete variant from which FORALL comes, it was not well thought through and parallelization was much more difficult than it seemed it would.</description>
    <pubDate>Wed, 24 Nov 2010 20:22:39 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2010-11-24T20:22:39Z</dc:date>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777990#M26094</link>
      <description>Hello to everyone! &lt;BR /&gt;&lt;BR /&gt;Yesterday I was looking at the new F2008 standards and I noticed a new type of loop, the &lt;A class="sectionBody" href="http://en.wikipedia.org/wiki/Scalable_parallelism" title="Scalable parallelism"&gt;DO CONCURRENT&lt;/A&gt;. I discovered it is now implemented in Fortran Composer XE 2011. I red its description and I think it is very similar (perhaps equal) to the forall statement. Is this new statement replacing the forall? Or there are some differences between these statements? Thank you very much for all the answers. &lt;BR /&gt;</description>
      <pubDate>Wed, 24 Nov 2010 18:46:44 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777990#M26094</guid>
      <dc:creator>psantos</dc:creator>
      <dc:date>2010-11-24T18:46:44Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777991#M26095</link>
      <description>Yes, DO CONCURRENT is "FORALL done right". The problem with FORALL was its semantics as a series of array assignments that had to be executed one after the other. Many people thought of FORALL as a "parallel DO", which it was not, and it was difficult to parallelize effectively. DO CONCURRENT is much simpler and specifies that each "instance" of the DO body can be executed in any order. The Intel compiler will try to parallelize DO CONCURRENT when /parallel is specified.</description>
      <pubDate>Wed, 24 Nov 2010 19:32:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777991#M26095</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2010-11-24T19:32:21Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777992#M26096</link>
      <description>Steve, thank you very much for your quick answer. I must admit that I'm a little shocked because I always admitted that the compiler could easily parallelize the forall statement, since it also specifies that each iteration of the loop could be executed in any order. Personally, I thought that the forall statement was created precisely to allow an easy parallelization of the code. One more question, if inside the DO CONCURRENT exists more than one code statement, they are serially executed, like in the forall? Thank you.&lt;BR /&gt;&lt;BR /&gt;Pedro</description>
      <pubDate>Wed, 24 Nov 2010 19:59:34 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777992#M26096</guid>
      <dc:creator>psantos</dc:creator>
      <dc:date>2010-11-24T19:59:34Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777993#M26097</link>
      <description>The statements within the DO CONCURRENT are executed in order, in each "iteration", but there is no dependence on other iterations. FORALL could have array assignments only, but each assignment needed to be completed by all iterations before the next one executed, effectively creating a "wait for all" after each assignment. Yes, the idea of FORALL was to help with parallelization, but like a lot of High-Performance Fortran, the obsolete variant from which FORALL comes, it was not well thought through and parallelization was much more difficult than it seemed it would.</description>
      <pubDate>Wed, 24 Nov 2010 20:22:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777993#M26097</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2010-11-24T20:22:39Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777994#M26098</link>
      <description>Thank you Steve. Now I really understand the differences between the forall and the do concurrent. I must admit that I am surprised with your "revelations". I have one side question to make: when will be implemented the &lt;B&gt;block construct&lt;/B&gt;? It's one of the F2008 features that I find very useful. Thank again for your help.</description>
      <pubDate>Wed, 24 Nov 2010 20:55:17 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777994#M26098</guid>
      <dc:creator>psantos</dc:creator>
      <dc:date>2010-11-24T20:55:17Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777995#M26099</link>
      <description>I can't tell you at this time when BLOCK will appear in our compiler.</description>
      <pubDate>Wed, 24 Nov 2010 22:17:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777995#M26099</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2010-11-24T22:17:57Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777996#M26100</link>
      <description>Ok. I will keep an eye on Intel Fortran releases. I understand that implement all the 2008 features will take some time. Tank you very much for your help.</description>
      <pubDate>Wed, 24 Nov 2010 22:28:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777996#M26100</guid>
      <dc:creator>psantos</dc:creator>
      <dc:date>2010-11-24T22:28:26Z</dc:date>
    </item>
    <item>
      <title>Forall and Do Concurrent</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777997#M26101</link>
      <description>I just noticed that DO CONCURRENT accepts the !DIR$ VECTOR ..... directives where FORALL did not.&lt;BR /&gt;gfortran 4.7 (getting close to release) supports DO CONCURRENT.&lt;BR /&gt;</description>
      <pubDate>Thu, 02 Feb 2012 22:17:19 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Forall-and-Do-Concurrent/m-p/777997#M26101</guid>
      <dc:creator>TimP</dc:creator>
      <dc:date>2012-02-02T22:17:19Z</dc:date>
    </item>
  </channel>
</rss>

