<?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 Speeding up I/O in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797545#M36041</link>
    <description>I was not suggesting changing the on-disk layout. A sequential file of fixed-length records is interchangeable with a direct-access file. Have you considered using an SSD for these files? I'll bet that would speed it up a lot.</description>
    <pubDate>Fri, 02 Mar 2012 21:17:05 GMT</pubDate>
    <dc:creator>Steven_L_Intel1</dc:creator>
    <dc:date>2012-03-02T21:17:05Z</dc:date>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797542#M36038</link>
      <description>I have a file with DIRECT, UNFORMATTED access. It seems totakes a really long time to write the data to the file. Is there some easy way to speed this process up, and still have the same access permissions?&lt;BR /&gt;&lt;BR /&gt;Dave</description>
      <pubDate>Fri, 02 Mar 2012 20:31:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797542#M36038</guid>
      <dc:creator>dajum</dc:creator>
      <dc:date>2012-03-02T20:31:31Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797543#M36039</link>
      <description>How much data are we talking about? What is the record size? Direct access is slower because you can't take advantage of buffering. Does the data need to be written with direct access? Can you write it as sequential access with fixed record length and then read it randomly? Are you aware that RECL? is in units of 4 bytes?</description>
      <pubDate>Fri, 02 Mar 2012 20:44:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797543#M36039</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-03-02T20:44:29Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797544#M36040</link>
      <description>RECL=8*16 and we use the compiler option /assume:byterecl &lt;BR /&gt;We access the file from many different programs so the format needs to stay the same. The file isn't written sequentially (although most of the data we write into is sequential in spots). When we read it we are computing where to read data from in the file as we ususally only wantvery small pieces of it. The size of the file varies as the number of records vary with each file. In the case I have the file grows to about 900 MB, and it has several thousands cases on it, each made up of a lot of records.It takes about 2 minutes to write each case out, so it takes about 12 hours to do all the writingfor this case (the rest of the computations take about 2 days). Reducing this would be very helpful. I know writing it out sequentially takes very little time.</description>
      <pubDate>Fri, 02 Mar 2012 21:07:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797544#M36040</guid>
      <dc:creator>dajum</dc:creator>
      <dc:date>2012-03-02T21:07:59Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797545#M36041</link>
      <description>I was not suggesting changing the on-disk layout. A sequential file of fixed-length records is interchangeable with a direct-access file. Have you considered using an SSD for these files? I'll bet that would speed it up a lot.</description>
      <pubDate>Fri, 02 Mar 2012 21:17:05 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797545#M36041</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-03-02T21:17:05Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797546#M36042</link>
      <description>Already using an SSD.&lt;BR /&gt;&lt;BR /&gt;Since we don't write it all sequentially wouldn't that be difficult?</description>
      <pubDate>Fri, 02 Mar 2012 21:25:53 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797546#M36042</guid>
      <dc:creator>dajum</dc:creator>
      <dc:date>2012-03-02T21:25:53Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797547#M36043</link>
      <description>Well, it was worth a shot... Yes, if you are writing some of the data randomly you can't use sequential access. Almost sounds like you need a database API, but you probably have too much invested in the current method.&lt;BR /&gt;&lt;BR /&gt;Have you run the program through a performance analyzer such as Intel VTune Amplifier XE to see where the time is being spent? If you're waiting for the OS to complete the write or the position, there's not much you can do on the Fortran side.</description>
      <pubDate>Fri, 02 Mar 2012 21:41:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797547#M36043</guid>
      <dc:creator>Steven_L_Intel1</dc:creator>
      <dc:date>2012-03-02T21:41:02Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797548#M36044</link>
      <description>No I haven't used an analyzer on this problem since I was pretty sure it was I/O limited by the OS. My only real thought was to buffer all the data being written and then put the writes into another thread so the main code could continue. But I'm not sure I want to mess with that option.&lt;BR /&gt;&lt;BR /&gt;On the plus side we are in the process of switching to a database so maybe that will be an improvement.</description>
      <pubDate>Fri, 02 Mar 2012 21:48:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797548#M36044</guid>
      <dc:creator>dajum</dc:creator>
      <dc:date>2012-03-02T21:48:28Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797549#M36045</link>
      <description>&amp;gt;&amp;gt;it takes about 12 hours to do all the writingfor this case &lt;BR /&gt;&lt;BR /&gt;Consider writing your updates into a seperate file(s). Then run a sequential merge into your 900MB file.&lt;BR /&gt;&lt;BR /&gt;The merge of 900MB main file and one or more small files could be on the order of 100MB/sec.&lt;BR /&gt;Your milage may vary. Can your main file be "off line" for under a minute?&lt;BR /&gt;&lt;BR /&gt;Jim Dempsey</description>
      <pubDate>Fri, 02 Mar 2012 22:01:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797549#M36045</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2012-03-02T22:01:00Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797550#M36046</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1330903242015="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=4406" href="https://community.intel.com/en-us/profile/4406/" class="basic"&gt;dajum&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;EM&gt;No I haven't used an analyzer on this problem since I was pretty sure it was &lt;STRONG&gt;I/O limited by the OS&lt;/STRONG&gt;...&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;]&lt;STRONG&gt;Windows OS&lt;/STRONG&gt;doesn't have and doesn't imposeany &lt;STRONG&gt;I/O&lt;/STRONG&gt; limitations for applications. It tries&lt;BR /&gt; toallocate as much as possible memory for datacaches and then data from these caches&lt;BR /&gt; is written to an&lt;STRONG&gt;HDD&lt;/STRONG&gt;.&lt;BR /&gt;&lt;BR /&gt;&lt;EM&gt;On the plus side we are in the process of switching to a database so maybe that will be an improvement.&lt;BR /&gt;&lt;BR /&gt;&lt;/EM&gt; [&lt;STRONG&gt;SergeyK&lt;/STRONG&gt;] What database are you going to use?&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;Alow-level APIdeveloped inC/C++to store some data from a Fortran application could be another option.&lt;BR /&gt;But, since a database will be used anywayit doesn't make sensetospend time on a such API.&lt;BR /&gt;&lt;BR /&gt;I'm planning some performance tests / evaluations with some C/C++ APInext week and I could provide&lt;BR /&gt;withsome numbers forcases with&lt;STRONG&gt;1GB&lt;/STRONG&gt; and &lt;STRONG&gt;2GB&lt;/STRONG&gt;data files ( in &lt;STRONG&gt;binary&lt;/STRONG&gt; and &lt;STRONG&gt;txt&lt;/STRONG&gt; formats ).&lt;BR /&gt;&lt;BR /&gt;Best regards,&lt;BR /&gt;Sergey&lt;/P&gt;</description>
      <pubDate>Sun, 04 Mar 2012 23:38:48 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797550#M36046</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-03-04T23:38:48Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797551#M36047</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;it takes about &lt;STRONG&gt;12 hours&lt;/STRONG&gt; to do all the writingfor this case &lt;BR /&gt;&lt;BR /&gt;I verified performance of a low level API ( C/C++ ) for writing some data into a data file for &lt;STRONG&gt;Text&lt;/STRONG&gt; and &lt;STRONG&gt;Binary&lt;/STRONG&gt; formats.&lt;/P&gt;&lt;P&gt;In case of a &lt;STRONG&gt;Text&lt;/STRONG&gt; format a content looked like:&lt;/P&gt;&lt;P&gt; ROW1= &lt;VALUE11&gt; &lt;VALUE12&gt; &lt;VALUE13&gt;... &lt;VALUE1N&gt;&lt;BR /&gt; ROW2= &lt;VALUE21&gt; &lt;VALUE22&gt; &lt;VALUE23&gt;... &lt;VALUE2N&gt;&lt;BR /&gt; ...&lt;BR /&gt; ROWN= &lt;VALUEN1&gt; &lt;VALUEN2&gt; &lt;VALUEN3&gt;... &lt;VALUENN&gt;&lt;/VALUENN&gt;&lt;/VALUEN3&gt;&lt;/VALUEN2&gt;&lt;/VALUEN1&gt;&lt;/VALUE2N&gt;&lt;/VALUE23&gt;&lt;/VALUE22&gt;&lt;/VALUE21&gt;&lt;/VALUE1N&gt;&lt;/VALUE13&gt;&lt;/VALUE12&gt;&lt;/VALUE11&gt;&lt;/P&gt;&lt;P&gt;In case of a &lt;STRONG&gt;Binary&lt;/STRONG&gt; format a content looked like:&lt;/P&gt;&lt;P&gt; ROW1=&lt;BINARYVALUE11&gt;&lt;BINARYVALUE12&gt;&lt;BINARYVALUE13&gt;...&lt;BINARYVALUE1N&gt;&lt;BR /&gt; ROW2=&lt;BINARYVALUE21&gt;&lt;BINARYVALUE22&gt;&lt;BINARYVALUE23&gt;...&lt;BINARYVALUE2N&gt;&lt;BR /&gt; ...&lt;BR /&gt; ROWN=&lt;BINARYVALUEN1&gt;&lt;BINARYVALUEN2&gt;&lt;BINARYVALUEN3&gt;...&lt;BINARYVALUENN&gt;&lt;/BINARYVALUENN&gt;&lt;/BINARYVALUEN3&gt;&lt;/BINARYVALUEN2&gt;&lt;/BINARYVALUEN1&gt;&lt;/BINARYVALUE2N&gt;&lt;/BINARYVALUE23&gt;&lt;/BINARYVALUE22&gt;&lt;/BINARYVALUE21&gt;&lt;/BINARYVALUE1N&gt;&lt;/BINARYVALUE13&gt;&lt;/BINARYVALUE12&gt;&lt;/BINARYVALUE11&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Here are results and numbers are relative:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;    &lt;STRONG&gt;Text&lt;/STRONG&gt; Format   &lt;STRONG&gt;Binary&lt;/STRONG&gt; Format&lt;/P&gt;&lt;P&gt; Data file size 250MB 1x  ~&lt;STRONG&gt;5.0x&lt;/STRONG&gt; faster&lt;/P&gt;&lt;P&gt; Data file size 500MB 1x   ~&lt;STRONG&gt;4.5x&lt;/STRONG&gt; faster&lt;/P&gt;&lt;P&gt; Data file size 1GB  1x   ~&lt;STRONG&gt;4.0x&lt;/STRONG&gt; faster&lt;/P&gt;</description>
      <pubDate>Sat, 10 Mar 2012 01:47:41 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797551#M36047</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-03-10T01:47:41Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797552#M36048</link>
      <description>Hello&lt;BR /&gt;
&lt;BR /&gt;
Don''t forget the physical layer. As far as I know, data are written on 
the disk by cluster. So If you want to write 8x16 bytes, the cluster in which your data has to be written 
must be read in memory from the disk, then your data is inserted in it
 and the cluster has to be written back to the disk. For a common 
cluster size of 4kb, you read and write 4kb each time you believe you are writing only 108b.&lt;BR /&gt;
&lt;BR /&gt;</description>
      <pubDate>Sat, 10 Mar 2012 21:35:55 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797552#M36048</guid>
      <dc:creator>GVautier</dc:creator>
      <dc:date>2012-03-10T21:35:55Z</dc:date>
    </item>
    <item>
      <title>Speeding up I/O</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797553#M36049</link>
      <description>&lt;DIV id="tiny_quote"&gt;&lt;DIV style="margin-left: 2px; margin-right: 2px;"&gt;Quoting &lt;A jquery1331430231015="58" rel="/en-us/services/profile/quick_profile.php?is_paid=&amp;amp;user_id=182649" href="https://community.intel.com/en-us/profile/182649/" class="basic"&gt;gvautier&lt;/A&gt;&lt;/DIV&gt;&lt;DIV style="background-color: #e5e5e5; margin-left: 2px; margin-right: 2px; border: 1px inset; padding: 5px;"&gt;&lt;I&gt;...For a common cluster size of 4kb, you read and write 4kb each time you believe you are writing only 108b...&lt;BR /&gt;&lt;/I&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&lt;BR /&gt;Thanks for the note. I think nobody would argue regarding this. Here are some additional details. All tests&lt;BR /&gt;were writing a content of a matrix of single-precision values ( '&lt;STRONG&gt;float&lt;/STRONG&gt;' data type):&lt;BR /&gt;&lt;BR /&gt;Size of output txt-file: ~&lt;STRONG&gt;250&lt;/STRONG&gt;MB - Matrix size: &lt;STRONG&gt;5250x 5250&lt;/STRONG&gt;&lt;BR /&gt;Size of output txt-file: ~&lt;STRONG&gt;500&lt;/STRONG&gt;MB - Matrix size: &lt;STRONG&gt;8000x 8000&lt;/STRONG&gt;&lt;BR /&gt;Size of output txt-file: ~ &lt;STRONG&gt;1&lt;/STRONG&gt;GB - Matrix size: &lt;STRONG&gt;10750x10750&lt;BR /&gt;&lt;BR /&gt;Note:&lt;/STRONG&gt; To calculate a totallength of a rowmultiply a matrix '&lt;STRONG&gt;m&lt;/STRONG&gt;' valueby '&lt;STRONG&gt;9&lt;/STRONG&gt;'. For example, &lt;STRONG&gt;5250&lt;/STRONG&gt; x &lt;STRONG&gt;9&lt;/STRONG&gt; = &lt;STRONG&gt;47250&lt;/STRONG&gt; bytes&lt;/P&gt;</description>
      <pubDate>Sun, 11 Mar 2012 01:48:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Speeding-up-I-O/m-p/797553#M36049</guid>
      <dc:creator>SergeyKostrov</dc:creator>
      <dc:date>2012-03-11T01:48:30Z</dc:date>
    </item>
  </channel>
</rss>

