<?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 You get 64 bit compiles if in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029488#M110207</link>
    <description>&lt;P&gt;You get 64 bit compiles if you compile in a "64 bit compiler" command prompt.&amp;nbsp; That's called "Intel 64" today, it may have been "em64t" or some such back in 11.1 days.&amp;nbsp; In Visual Studio you get it if you have created and selected the x64 platform (create via Build &amp;gt; Configuration Manager or similar).&lt;/P&gt;

&lt;P&gt;If the compiler accept /arch:ia32, then you are not compiling for 64 bit.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;(Equally telling - if your program runs out of address space allocating allocatable arrays after only 2GB of allocations... you are not compiling for 64 bit.)&lt;/P&gt;

&lt;P&gt;If you can't find the appropriate command prompt or if VS doesn't appear to know about 64 bit compilation, then note that for some VS editions/versions there is (was?) the requirement to manually select installation of 64 bit compiler components when installing.&amp;nbsp; In ifort's case you may have needed to select the correct combined ia32/x64 installation package.&amp;nbsp; Can't remember details now, sorry.&lt;/P&gt;</description>
    <pubDate>Sun, 24 Aug 2014 13:27:39 GMT</pubDate>
    <dc:creator>IanH</dc:creator>
    <dc:date>2014-08-24T13:27:39Z</dc:date>
    <item>
      <title>Insufficient Virtual Memory on Allocation - again</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029485#M110204</link>
      <description>&lt;P&gt;Hello:&lt;/P&gt;

&lt;P&gt;I have a user who managed to create a very large case and hit the "Insufficient Virtual Memory" (error 41 on Allocate) error.&lt;/P&gt;

&lt;P&gt;So, I made up a small test program that allocates and deallocates successively larger arrays, until it hits the allocation error limit.&lt;/P&gt;

&lt;P&gt;That limit seems to be about 2GB, which is consistent with everything I've read.&lt;/P&gt;

&lt;P&gt;Then I tried combinations of the following variations to try to get around the limit:&lt;/P&gt;

&lt;P&gt;1. /3GB using BCDEDIT /set IncreaseUserVa 3072.... no change&lt;/P&gt;

&lt;P&gt;2. Set Largeaddressaware ...&amp;nbsp; no change&lt;/P&gt;

&lt;P&gt;3. Compiled with both ia32 and SSE3 ..&amp;nbsp; no change&lt;/P&gt;

&lt;P&gt;4. set file Pagefile.sys to 10 GB ...&amp;nbsp; no change&lt;/P&gt;

&lt;P&gt;The only other hint I could find is in the Fortran Help pages where it says:&lt;/P&gt;

&lt;P&gt;"See the product Release Notes for more information on memory limits for large data objects."&lt;/P&gt;

&lt;P&gt;I can find nothing in the product Release Notes.&lt;/P&gt;

&lt;P&gt;I am using &lt;SPAN&gt;&lt;SPAN&gt;Intel® Visual Fortran Compiler Professional Edition 11.1&lt;/SPAN&gt;&lt;/SPAN&gt;.&lt;/P&gt;

&lt;P&gt;My test program runs on Windows7, 4GB RAM, but my user has access to all sorts of different machines and they all generate the same problem.&lt;/P&gt;

&lt;P&gt;Although my test program just allocates one large array, the real program is allocating several smaller (but still large) arrays. That doesn't seem to make a difference.&lt;/P&gt;

&lt;P&gt;Questions:&lt;/P&gt;

&lt;P&gt;1. Does this compiler (version??) have some intrinsic limit of 2 GB?&lt;/P&gt;

&lt;P&gt;2. Is there some way around this that escapes me?&lt;/P&gt;

&lt;P&gt;Thank you for any advice.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Aug 2014 04:20:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029485#M110204</guid>
      <dc:creator>YertleTheTurtle</dc:creator>
      <dc:date>2014-08-24T04:20:35Z</dc:date>
    </item>
    <item>
      <title>The obvious solution is to</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029486#M110205</link>
      <description>&lt;P&gt;The obvious solution is to move to 64 bit compilation and operating system.&amp;nbsp; Otherwise you are pretty much hard up against the fundamental limits of virtual memory for 32 bit windows.&lt;BR /&gt;
	&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Aug 2014 05:53:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029486#M110205</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2014-08-24T05:53:53Z</dc:date>
    </item>
    <item>
      <title>I am running 64 bit Windows 7</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029487#M110206</link>
      <description>&lt;P&gt;I am running 64 bit Windows 7, and I thought I was doing 64 bit compilation by using&lt;/P&gt;

&lt;P&gt;ifort /arch:sse3&lt;/P&gt;

&lt;P&gt;but it made no difference to the test case.&lt;/P&gt;

&lt;P&gt;There doesn't seem to be a flag for something like arch:ia64, so how does one guarantee 64-bit compilation? I have searched the help documents looking&amp;nbsp; for a "64-bit compilation" option and found nothing.&lt;/P&gt;

&lt;P&gt;To make things clear, the problem is not that I have a &amp;gt;2GB array. I have more than 10 arrays each of which is about 0.2GB, and I am hitting the 2GB limit when I try to allocate more or less the 10'th one.&lt;/P&gt;

&lt;P&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Sun, 24 Aug 2014 12:58:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029487#M110206</guid>
      <dc:creator>YertleTheTurtle</dc:creator>
      <dc:date>2014-08-24T12:58:21Z</dc:date>
    </item>
    <item>
      <title>You get 64 bit compiles if</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029488#M110207</link>
      <description>&lt;P&gt;You get 64 bit compiles if you compile in a "64 bit compiler" command prompt.&amp;nbsp; That's called "Intel 64" today, it may have been "em64t" or some such back in 11.1 days.&amp;nbsp; In Visual Studio you get it if you have created and selected the x64 platform (create via Build &amp;gt; Configuration Manager or similar).&lt;/P&gt;

&lt;P&gt;If the compiler accept /arch:ia32, then you are not compiling for 64 bit.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;(Equally telling - if your program runs out of address space allocating allocatable arrays after only 2GB of allocations... you are not compiling for 64 bit.)&lt;/P&gt;

&lt;P&gt;If you can't find the appropriate command prompt or if VS doesn't appear to know about 64 bit compilation, then note that for some VS editions/versions there is (was?) the requirement to manually select installation of 64 bit compiler components when installing.&amp;nbsp; In ifort's case you may have needed to select the correct combined ia32/x64 installation package.&amp;nbsp; Can't remember details now, sorry.&lt;/P&gt;</description>
      <pubDate>Sun, 24 Aug 2014 13:27:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029488#M110207</guid>
      <dc:creator>IanH</dc:creator>
      <dc:date>2014-08-24T13:27:39Z</dc:date>
    </item>
    <item>
      <title>If the compiler that you use</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029489#M110208</link>
      <description>&lt;P&gt;If the compiler that you use does not generate 64-bit code, all that you are going to have available to run is a 32-bit program limited to 3/4GB, regardless of whether you will run on another machine with 32-bit Windows or 64-bit Windows. If you have a compiler that generates 64-bit code, the resulting EXE/DLL will only run on a machine with 64-bit Windows.&lt;/P&gt;

&lt;P&gt;Finding out the version of your compiler is easy. Just open the command window from the Intel Compiler 11.xx start menu, and type "ifort"; the output banner line will tell you the target type. For example,&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;"Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version..."&lt;/P&gt;

&lt;P&gt;OR&lt;/P&gt;

&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;"Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version..."&lt;/P&gt;

&lt;P&gt;Some earlier versions of Intel Fortran were cross-compilers, but yours is probably not such a one.&lt;/P&gt;

&lt;P&gt;Finally, you do not want /arch:ia64 unless you have a machine with an Itanium CPU.&lt;/P&gt;</description>
      <pubDate>Sun, 24 Aug 2014 13:39:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029489#M110208</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2014-08-24T13:39:00Z</dc:date>
    </item>
    <item>
      <title>There is no /arch:ia64. /arch</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029490#M110209</link>
      <description>&lt;P&gt;There is no /arch:ia64. /arch is an instruction set selector that omits the check for a supported Intel CPU when the program is run. /arch:ia32 restricts the instruction set to what the Pentium II supported.&lt;/P&gt;

&lt;P&gt;I agree that you need to build a 64-bit application using the "Intel 64" compiler.&lt;/P&gt;

&lt;P&gt;For information on memory limits, see&amp;nbsp;https://software.intel.com/en-us/articles/memory-limits-applications-windows&lt;/P&gt;</description>
      <pubDate>Mon, 25 Aug 2014 00:33:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029490#M110209</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-08-25T00:33:47Z</dc:date>
    </item>
    <item>
      <title>Now that it is explained how</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029491#M110210</link>
      <description>&lt;P&gt;Now that it is explained how to compile for 64-bit applications, I found a lot of information in the help documents.&lt;/P&gt;

&lt;P&gt;(Once you know what you need to know, it's easy to find. Just a matter of already knowing where to look.)&lt;/P&gt;

&lt;P&gt;I had previously compiled a 64-bit version using Visual Studio x64 configuration, without understanding that it was invoking a different compiler, not just a few different compilation switches.&lt;/P&gt;

&lt;P&gt;But the problem persisted, because I hadn't increased pagefile.sys.&lt;/P&gt;

&lt;P&gt;Hence the test program.&lt;/P&gt;

&lt;P&gt;Thank you all - that solved it.&lt;/P&gt;

&lt;P&gt;BTW - version 11.1 was new when I bought it, and that doesn't feel like so long ago.&lt;/P&gt;

&lt;P&gt;Is there something in the newest version that I really need?&lt;/P&gt;</description>
      <pubDate>Mon, 25 Aug 2014 02:16:58 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029491#M110210</guid>
      <dc:creator>YertleTheTurtle</dc:creator>
      <dc:date>2014-08-25T02:16:58Z</dc:date>
    </item>
    <item>
      <title>Well, the newer version is</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029492#M110211</link>
      <description>&lt;P&gt;Well, the newer version is supported, has more language standard features, supports newer Visual Studios and has bugs fixed.&lt;/P&gt;</description>
      <pubDate>Mon, 25 Aug 2014 13:44:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029492#M110211</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-08-25T13:44:27Z</dc:date>
    </item>
    <item>
      <title>When creating a 32-bit</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029493#M110212</link>
      <description>&lt;P&gt;When creating a 32-bit executable, the largest array size for a single allocatable array is &amp;lt; 2gb. With a 64-bit executable, this limit no longer applies.&lt;/P&gt;

&lt;P&gt;Using Windows 7_64 OS on another 32-bit Fortran compiler,&amp;nbsp;I can create multiple allocatable arrays, each less than 2gb, with a combined allocation of up to about 3.7gb. It is like defaulting to a /4gb switch. I am not sure if ifort_32 allows this but it should support /3gb functionality.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;I (very) rarely use ifort_32, as I find ifort_64 to be a much more flexible solution. However if you are testing ifort_64 to see how big an array can be allocated, this can be deceptive, as you can allocate a larger virtual array than can be practically used, when the limits of the paging file size apply as the program uses this allocated memory.&lt;/P&gt;

&lt;P&gt;John&lt;/P&gt;</description>
      <pubDate>Tue, 26 Aug 2014 13:04:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029493#M110212</guid>
      <dc:creator>John_Campbell</dc:creator>
      <dc:date>2014-08-26T13:04:04Z</dc:date>
    </item>
    <item>
      <title>The stack size setting is</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029494#M110213</link>
      <description>&lt;P&gt;The stack size setting is unrelated to errors on an ALLOCATE.&lt;/P&gt;</description>
      <pubDate>Wed, 27 Aug 2014 18:41:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Insufficient-Virtual-Memory-on-Allocation-again/m-p/1029494#M110213</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2014-08-27T18:41:10Z</dc:date>
    </item>
  </channel>
</rss>

