<?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 Re: Fortran Unformatted Real in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427219#M42309</link>
    <description>JD,&lt;BR /&gt;&lt;BR /&gt;Joe has a valid point. Creating a file on disk for each number is a very expensive number. FORTRAN does have in-memory IO, but the best solution is to use the conversion library (mentioned in Joe's recent post).&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
    <pubDate>Wed, 27 May 2009 16:52:45 GMT</pubDate>
    <dc:creator>Robert Gezelter</dc:creator>
    <dc:date>2009-05-27T16:52:45Z</dc:date>
    <item>
      <title>Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427203#M42293</link>
      <description>&lt;!--!*#--&gt;I am writing an unformatted binary file that must be constructed in a standard format in order for its parent program to read it. [ArcGIS Shapefile for those interested] To make a long story short, I have a method for accomplishing what I need but it is SLOW, and seemingly stupid. Here is what is going on at a binary level:&lt;BR /&gt;&lt;BR /&gt;Byte 0     --&amp;gt;    4 byte integer&lt;BR /&gt;Bytes 4-23 --&amp;gt;    Zeros (as 4 byte integers)&lt;BR /&gt;Byte 24    --&amp;gt;    4 byte integer&lt;BR /&gt;Byte 28    --&amp;gt;    4 byte integer&lt;BR /&gt;Byte 32    --&amp;gt;    4 byte integer&lt;BR /&gt;Byte 36    --&amp;gt;    8 byte real&lt;BR /&gt;...And so on&lt;BR /&gt;&lt;BR /&gt;Byte 36 becomes the problem. To that point, I am using a record length of 4 (/assume:byterecl @ compile time for other reasons) to accommodate the 4 byte integers. It works out that the 8 byte real (with an 8 record length) comes half way between records 5 and 6. To this point, I am taking the 8 byte real and writing it to a file on the hard drive, and reading back the binary as two 4 byte integers and just continuing on my merry way. Unfortunately, this isn't quick (I currently have it going at approx 4000 times/sec, but it is still my main hang up)&lt;BR /&gt;&lt;BR /&gt;For those of you that stayed with me through that babble, do you have any ideas? I'm flush out. I've played with MVBITS with no success. I  am pretty new to FORTRAN, so there might be something I'm missing.&lt;BR /&gt;&lt;BR /&gt;Thanks in advance.</description>
      <pubDate>Tue, 26 May 2009 21:16:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427203#M42293</guid>
      <dc:creator>JDoe_1</dc:creator>
      <dc:date>2009-05-26T21:16:05Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427204#M42294</link>
      <description>&lt;!--!*#--&gt;&amp;gt; [...] I am taking the 8 byte real and&lt;BR /&gt;&amp;gt; writing it to a file on the hard drive,&lt;BR /&gt;&amp;gt; and reading back the binary as two 4 byte&lt;BR /&gt;&amp;gt; integers [...]&lt;BR /&gt;&lt;BR /&gt;Yikes.  It's been too long for me to write&lt;BR /&gt;the code quickly and reliably, but I think&lt;BR /&gt;that I'd be doing something like:&lt;BR /&gt;&lt;BR /&gt;      INTEGER* 4 XINT4X2( 2)&lt;BR /&gt;      REAL* 8 XREAL&lt;BR /&gt;      EQUIVALENCE XINT4X2, XREAL&lt;BR /&gt;&lt;BR /&gt;Assign a value to XREAL, and use what's in&lt;BR /&gt;XINT4X2.&lt;BR /&gt;&lt;BR /&gt;If you already have either of these things&lt;BR /&gt;somewhere, then you may be able to avoid even&lt;BR /&gt;the assignment by equivalencing the thing you&lt;BR /&gt;already have to the thing you add.</description>
      <pubDate>Tue, 26 May 2009 21:30:04 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427204#M42294</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-05-26T21:30:04Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427205#M42295</link>
      <description>&lt;!--!*#--&gt;&amp;gt;       EQUIVALENCE XINT4X2, XREAL&lt;BR /&gt;&lt;BR /&gt;Oops.  I found some old code.  Make that:&lt;BR /&gt;&lt;BR /&gt;      EQUIVALENCE (XINT4X2, XREAL)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;[...]&lt;BR /&gt;C                                               23 June 1994.  SMS.&lt;BR /&gt;[...]&lt;BR /&gt;      integer* 2  W( 2)&lt;BR /&gt;c&lt;BR /&gt;      integer* 4  LW&lt;BR /&gt;c&lt;BR /&gt;      equivalence (LW, W)&lt;BR /&gt;[...]&lt;BR /&gt;&lt;BR /&gt;I haven't really used Fortran since it was&lt;BR /&gt;FORTRAN.</description>
      <pubDate>Tue, 26 May 2009 21:36:16 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427205#M42295</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-05-26T21:36:16Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427206#M42296</link>
      <description>JDoe,&lt;BR /&gt;&lt;BR /&gt;I would not hesitate to make a comment without seeing precisely what the code that is reading this stream is.&lt;BR /&gt;&lt;BR /&gt;Writing four bytes/record will be very inefficient at quite a few levels. Without a review of the sources (for both the producer and the consumer), it would be reckless to make suggestions.&lt;BR /&gt;&lt;BR /&gt;The bottleneck could be in the production of the records, but other possibilities exist. For example, if the file is constantly being extended, solving the bottleneck can be as simple as adjusting RMS parameters.&lt;BR /&gt;&lt;BR /&gt;More details would be appreciated.&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Tue, 26 May 2009 21:59:05 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427206#M42296</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2009-05-26T21:59:05Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427207#M42297</link>
      <description>&lt;!--!*#--&gt;&amp;gt; I would not hesitate to make a comment&lt;BR /&gt;&amp;gt; [...]&lt;BR /&gt;&lt;BR /&gt;Nor I (even if the opposite was intended).&lt;BR /&gt;&lt;BR /&gt;&amp;gt; Writing four bytes/record will be very&lt;BR /&gt;&amp;gt; inefficient at quite a few levels.&lt;BR /&gt;&lt;BR /&gt;_That_ statement is right-side-up.  It's hard&lt;BR /&gt;to believe that any non-garbage program would&lt;BR /&gt;want to deal with a file structured that way.&lt;BR /&gt;I'd expect the segmented-record headers to&lt;BR /&gt;occupy more space than the actual data, if&lt;BR /&gt;you're using the default RECORDTYPE.  I can&lt;BR /&gt;imagine that some missing details might make&lt;BR /&gt;this look less goofy, but they're missing.&lt;BR /&gt;&lt;BR /&gt;Among other things, it might be interesting&lt;BR /&gt;to look at a DUMP (/LONGWORD?) of the file&lt;BR /&gt;you're creating to see if it contains what&lt;BR /&gt;you expect.&lt;BR /&gt;&lt;BR /&gt;&amp;gt; [...] but it is SLOW, and seemingly stupid.&lt;BR /&gt;&amp;gt; [...]&lt;BR /&gt;&lt;BR /&gt;I wouldn't say "seemingly".  The EQUIVALENCE&lt;BR /&gt;scheme should alleviate much of that pain.&lt;BR /&gt;&lt;BR /&gt;&amp;gt; [...] I am pretty new to FORTRAN, [...]&lt;BR /&gt;&lt;BR /&gt;If C's more familiar, then think of it as a&lt;BR /&gt;union.&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://en.wikipedia.org/wiki/Solidarity_Forever" target="_blank"&gt;http://en.wikipedia.org/wiki/Solidarity_Forever&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;You do need to worry about which order to use&lt;BR /&gt;the pieces in (assuming that the bytes don't&lt;BR /&gt;need to be scrambled, too, and that the&lt;BR /&gt;floating-point format which you're using is&lt;BR /&gt;the one expected by the consumer).  Not&lt;BR /&gt;knowing the hardware type involved (another&lt;BR /&gt;of those pesky missing details) makes it hard&lt;BR /&gt;to guess how deep in the weeds you may be.</description>
      <pubDate>Wed, 27 May 2009 03:25:49 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427207#M42297</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-05-27T03:25:49Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427208#M42298</link>
      <description>Thanks guys. The EQUIVALENCE statement did speed things up a bit. It was exactly what I was looking for, but would have never found via Google.&lt;BR /&gt;&lt;BR /&gt;That said, I'm interested in hearing what you had to say about the files growing and the efficiency associated with that. Is there some sort of pre-allocation? Basically, what I am doing write now is writing records one by one and each extends the file. Maybe you could give me a few more details and I could give you a better idea of what I'm doing.&lt;BR /&gt;&lt;BR /&gt;Thanks both of you.&lt;BR /&gt;&lt;BR /&gt;JD</description>
      <pubDate>Wed, 27 May 2009 04:08:10 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427208#M42298</guid>
      <dc:creator>JDoe_1</dc:creator>
      <dc:date>2009-05-27T04:08:10Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427209#M42299</link>
      <description>The standard for the file can be found here:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf" target="_blank"&gt;http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;I've set the little endian and big endian where need be by writing a switch_endian subroutine using MVBITS and converting where I need to instead of using multiple opens/closes of the file and the CONVERT=BIG_ENDIAN/LITTLE_ENDIAN options. (Certain parts of the file require one endian, whereas other parts require the other)&lt;BR /&gt;&lt;BR /&gt;I'm going to go out on a limb and assume that I'm the one making this difficult and not ESRI because they have designed all the standards and programs, and I don't really think their software is shoddy, its more likely my knowledge. [I've only started using FORTRAN a few weeks ago, I've never used C]&lt;BR /&gt;&lt;BR /&gt;Thanks again.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 04:16:06 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427209#M42299</guid>
      <dc:creator>JDoe_1</dc:creator>
      <dc:date>2009-05-27T04:16:06Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427210#M42300</link>
      <description>Sorry, 1 more.&lt;BR /&gt;&lt;BR /&gt;Also, I should note that the program does work currently, and I'm just looking for greater speed as I'm writing about 20 million records, headed for 50 million. Currently I'm doing about 4500 records/second on a 2 ghz machine on 1 core. I am not using RECORDTYPE, and I'm not even sure what that is. Eventually, this code will be ported over to run on about 50 or so cores, but I want to maximize speed across one core before taking it to parallel. &lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 04:23:55 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427210#M42300</guid>
      <dc:creator>JDoe_1</dc:creator>
      <dc:date>2009-05-27T04:23:55Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427211#M42301</link>
      <description>Still it is not clear what 'record' means from the description, generally in Fortran unformatted WRITE means&lt;BR /&gt; 1 WRITE statement == 1 record.&lt;BR /&gt;&lt;BR /&gt;To speed up for many extensions:&lt;BR /&gt;OPEN with INITIALIZE=m,EXTEND=n&lt;BR /&gt;where m is the initial size of the file in blocks,&lt;BR /&gt;n the extend size.&lt;BR /&gt;SEE HELP FORTRAN STATEMENT OPEN .&lt;BR /&gt;&lt;BR /&gt;And RMS buffering may also play a role:&lt;BR /&gt;see HELP SET RMS for /BUFFER_COUNT and /BLOCK_COUNT.&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 05:55:19 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427211#M42301</guid>
      <dc:creator>Joseph Huber_1</dc:creator>
      <dc:date>2009-05-27T05:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427212#M42302</link>
      <description>Looking into the 'shapefile' spec, it appears it defines its own record structure, it is not Fortran unformatted sequential, which would result in segmented records.&lt;BR /&gt;&lt;BR /&gt;I assume OPEN specifies UNFORMATTED, and RECORDTYPE='STREAM'.&lt;BR /&gt;In this case there is no record overhead in the file, and speed of writing is only influenced by the allocation and RMS block buffer parameters.</description>
      <pubDate>Wed, 27 May 2009 06:06:34 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427212#M42302</guid>
      <dc:creator>Joseph Huber_1</dc:creator>
      <dc:date>2009-05-27T06:06:34Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427213#M42303</link>
      <description>Sorry I overlooked &lt;BR /&gt;&amp;gt;&amp;gt;I am not using RECORDTYPE, and I'm not even sure what that is.&lt;BR /&gt;&lt;BR /&gt;But how then can the result be in the 'shapefile' format as in the paper cited ?&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 06:08:58 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427213#M42303</guid>
      <dc:creator>Joseph Huber_1</dc:creator>
      <dc:date>2009-05-27T06:08:58Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427214#M42304</link>
      <description>JD,&lt;BR /&gt;&lt;BR /&gt;Ok, the specification that was cited in this thread is 34 pages long, and certainly does mix Big-endian and Little-endian numbers (for unspecified reasons). Admittedly, that is unusual. Most specifications pick one or the other and stick to that choice. However, since it is a specification for an outside product, it is what it is.&lt;BR /&gt;&lt;BR /&gt;A casual reading of the specification would seem to indicate that its use of the term "record" has little to do with the meaning of the term "record" as used in FORTRAN. At first glance, it appears to be a binary byte stream.&lt;BR /&gt;&lt;BR /&gt;Writing to this specification is not the most complex programming problem, but it is certainly not a beginner project. One post mentioned that your experience in both C and FORTRAN is limited. What languages are you familiar with? What is your general programming experience?&lt;BR /&gt;&lt;BR /&gt;Since generating this data is inherently a serial process, increasing the number of processor cores is not likely to  appreciably increase the speed of the code.&lt;BR /&gt;&lt;BR /&gt;That said, if the format is what it appears to be, several orders of magnitude of performance (100 to 100,000 times) beyond 4K items per second would seem to be achievable.&lt;BR /&gt;&lt;BR /&gt;Your organization may want to consider finding a supplemental resource with more experience in C/FORTRAN, binary files, and related areas [Disclosure: our firm provides services in this area, as do other active ITRC contributors]. ITRC participants contribute their time and insight for no compensation.&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Wed, 27 May 2009 10:49:59 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427214#M42304</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2009-05-27T10:49:59Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427215#M42305</link>
      <description>My programming experience would be likened to a "Jack of all trades, master of none" sort of situation. Fortran is just the preferred method for the lab I'm working in currently. I've written in Java, PHP, Visual Basic, but mostly MatLab's specialized code.&lt;BR /&gt;&lt;BR /&gt;Also, I should have just kept my mouth shut, but the part I'll be making parallel doesn't have to do with the file generation. &lt;BR /&gt;&lt;BR /&gt;In any event, I will give the initialize and extend options a go and see what happens.&lt;BR /&gt;&lt;BR /&gt;Thanks.</description>
      <pubDate>Wed, 27 May 2009 11:09:46 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427215#M42305</guid>
      <dc:creator>JDoe_1</dc:creator>
      <dc:date>2009-05-27T11:09:46Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427216#M42306</link>
      <description>JDoe,&lt;BR /&gt;&lt;BR /&gt;Be careful about the use of the term record. As I noted, the term "record" in the shapefile description appears to be emphatically NOT the same as the meaning of the word "record" in the RMS and FORTRAN context. &lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Wed, 27 May 2009 11:23:48 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427216#M42306</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2009-05-27T11:23:48Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427217#M42307</link>
      <description>&lt;!--!*#--&gt;&amp;gt; [...] I am not using RECORDTYPE, [...]&lt;BR /&gt;&lt;BR /&gt;What _are_ you using?&lt;BR /&gt;&lt;BR /&gt;&amp;gt; I assume OPEN specifies [...]&lt;BR /&gt;&lt;BR /&gt;If a responder needs to assume anything, then&lt;BR /&gt;it's likely that the questioner is not doing&lt;BR /&gt;his job properly.&lt;BR /&gt;&lt;BR /&gt;&amp;gt; Also, I should note that the program does&lt;BR /&gt;&amp;gt; work currently, [...]&lt;BR /&gt;&lt;BR /&gt;Which suggests that something is being done&lt;BR /&gt;right, even if sub-optimally.&lt;BR /&gt;&lt;BR /&gt;&amp;gt; [...] I will give the initialize and extend&lt;BR /&gt;&amp;gt; options a go [...]&lt;BR /&gt;&lt;BR /&gt;Plausible, but it might be wise to see where&lt;BR /&gt;the time is being spent now, rather than poke&lt;BR /&gt;at the problem in a hopeful but disorganized&lt;BR /&gt;way.  There are actual documents and software&lt;BR /&gt;which can help with performance analysis on&lt;BR /&gt;VMS systems.  You may have some truly&lt;BR /&gt;horrible code, which can be greatly improved,&lt;BR /&gt;but optimizing horrible code which takes only&lt;BR /&gt;1% of the time won't buy you much.</description>
      <pubDate>Wed, 27 May 2009 13:05:56 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427217#M42307</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-05-27T13:05:56Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427218#M42308</link>
      <description>JD,&lt;BR /&gt;&amp;gt;&amp;gt;&lt;BR /&gt;I am taking the 8 byte real and writing it to a file on the hard drive, and reading back the binary as two 4 byte integers and just continuing on my merry way.&lt;BR /&gt;&amp;gt;&amp;gt;&lt;BR /&gt;&lt;BR /&gt;Do I understand it right: just for the purpose of converting a real number in memory, You write it to a (temporary) file, and read it back ?&lt;BR /&gt;If yes, no wonder it is slowing down a lot.&lt;BR /&gt;For floting point in-memory conversions, VMS run-time library offers conversion routines.&lt;BR /&gt;Read &lt;BR /&gt; HELP RTl CVT$&lt;BR /&gt;to see if it offers the correct thing.&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 15:32:11 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427218#M42308</guid>
      <dc:creator>Joseph Huber_1</dc:creator>
      <dc:date>2009-05-27T15:32:11Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427219#M42309</link>
      <description>JD,&lt;BR /&gt;&lt;BR /&gt;Joe has a valid point. Creating a file on disk for each number is a very expensive number. FORTRAN does have in-memory IO, but the best solution is to use the conversion library (mentioned in Joe's recent post).&lt;BR /&gt;&lt;BR /&gt;- Bob Gezelter, &lt;A href="http://www.rlgsc.com" target="_blank"&gt;http://www.rlgsc.com&lt;/A&gt;</description>
      <pubDate>Wed, 27 May 2009 16:52:45 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427219#M42309</guid>
      <dc:creator>Robert Gezelter</dc:creator>
      <dc:date>2009-05-27T16:52:45Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427220#M42310</link>
      <description>What sort of VAX, Alpha or Integrity Itanium box are we talking about here?   &lt;BR /&gt;&lt;BR /&gt;What are the OpenVMS and Fortran versions?  &lt;BR /&gt;&lt;BR /&gt;What sorts of disk(s) and I/O hardware here?&lt;BR /&gt;&lt;BR /&gt;On no source code and no evidence, I'd tend to guess this program was I/O bound.  &lt;BR /&gt;&lt;BR /&gt;Better yet, run DECset PCA to see where you're really spending your run-time and your wall-clock time here.&lt;BR /&gt;&lt;BR /&gt;Why not build and buffer and write a hundred or a thousand or a million (of what are here confusingly called) records at a time, at memory speeds?  Writing small wads of data into big buffers stored in virtual memory and then knocking out whole buffers en-mass is going to be massively more efficient and expedient than legions of smaller I/Os.   Double-buffer and overlap your writes for better speed. &lt;BR /&gt;&lt;BR /&gt;If working within the constraints of OpenVMS and of RMS here, I'd (still) be tempted to build a big array of entries and write it to disk with one big I/O.  Record writes are slow, and (small) file extensions are to be avoided.&lt;BR /&gt;&lt;BR /&gt;If you know how much data you're starting with, then you could conceivably map and write to and use a process section with a backing storage file and largely remove RMS (and the RMS concept of records) from the design.  That's going to be about as fast as you can reasonably go here within the constraints of your hardware, after all...&lt;BR /&gt;&lt;BR /&gt;Stephen Hoffman&lt;BR /&gt;HoffmanLabs LLC&lt;BR /&gt;</description>
      <pubDate>Wed, 27 May 2009 18:10:35 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427220#M42310</guid>
      <dc:creator>Hoff</dc:creator>
      <dc:date>2009-05-27T18:10:35Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427221#M42311</link>
      <description>&lt;!--!*#--&gt;&amp;gt; Do I understand it right: [...]&lt;BR /&gt;&lt;BR /&gt;And did you notice that we resolved this&lt;BR /&gt;problem back around "May 27, 2009 05:08:10&lt;BR /&gt;GMT"?</description>
      <pubDate>Thu, 28 May 2009 11:59:29 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427221#M42311</guid>
      <dc:creator>Steven Schweda</dc:creator>
      <dc:date>2009-05-28T11:59:29Z</dc:date>
    </item>
    <item>
      <title>Re: Fortran Unformatted Real</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427222#M42312</link>
      <description>Steven, Steven...  don't confuse us with the facts. We are just about to switch over to trolling for work. :-).&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Speaking of facts&lt;BR /&gt;&lt;BR /&gt;" Currently I'm doing about 4500 records/second on a 2 ghz machine on 1 core."&lt;BR /&gt;&lt;BR /&gt;Jdoe, &lt;BR /&gt;&lt;BR /&gt;What Hardware Platform and Operating System, is this exercise running on?&lt;BR /&gt;&lt;BR /&gt;There are no 2 Ghz OpenVMS systems, other than emulated Alpha's on 2 Ghz X86's &lt;BR /&gt;&lt;BR /&gt;Even with the relatively vague specification in place, I think it is safe to say the 4500 records/second is LOUSY performance no matter what. Maybe consider using an OpenVMS solution? Maybe some performance consulting?&lt;BR /&gt;&lt;BR /&gt;( Is the 2Ghz the desktop you use to connect  to an OpenVMS system? :-)&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;hth,&lt;BR /&gt;Hein van den Heuvel ( at gmail dot com )&lt;BR /&gt;HvdH Performance Consulting.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Thu, 28 May 2009 13:28:51 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/fortran-unformatted-real/m-p/4427222#M42312</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2009-05-28T13:28:51Z</dc:date>
    </item>
  </channel>
</rss>

