[Beowulf] Fortran is Awesome
Lux, Jim (337K)
James.P.Lux at jpl.nasa.gov
Tue Dec 4 05:47:08 PST 2018
From: Beowulf <beowulf-bounces at beowulf.org> on behalf of "beowulf at beowulf.org" <beowulf at beowulf.org>
Reply-To: John Hearns <hearnsj at googlemail.com>
Date: Monday, December 3, 2018 at 10:41 PM
To: "beowulf at beowulf.org" <beowulf at beowulf.org>
Subject: Re: [Beowulf] Fortran is Awesome
The truth is that Unix was for longhairs and computer science types.
Exactly – driven by the peculiar licensing – Bell Labs was constrained by a variety of policies and court decisions so as not to abuse their monopoly position. Licenses were cheap for academic institutions – sort of “cost of making the release tape”, but couldn’t be used for commercial purposes. I don’t recall how much a commercial license cost, but it was pretty hefty ($50k? which in 1970s would buy a house), and since it came with no formal support, most commercial shops would rather buy the OS from the hardware manufacturer, who at least had a bellybutton to poke if something didn’t work.
One of the LEP experiments, L3, did use a bunch of SGI MIPS machines though.
For technical and commercial computing the great hope was Windows NT.
It was going to run everywhere - from weedy desktop microprocessors, up to DEC ALPHAS in big clusters and on MIPS systems. One ring to rule them all.
And remember that Dave Cutler from DEC was hired by Microsoft VMS --> WNT by one character shift.
I was excited that Dave Cutler was going to be involved. I remember thinking – finally, Windows will grow up past it’s 8-bit micro heritage and be a *real* operating system with decent memory management, multiple threads, etc. I liked the architecture and UI of RSX-11M, VMS, and TOPS-10/20 – batch files, scripting, etc. – so much better than batch mode JCL and its equivalents on the mainframes. MS-DOS showed its CP/M heritage a bit too much.
But it was not meant to be. If I'm not wrong Microsoft killed the MIPS port and went after the commercial market.
We saw thew rise of the Unix system - partly because the first web servers were ported to the DEC Unix operating system (I cant remember what the exact name was) and Solaris and these seemed to be the natural environment for early web servers.
And then Jon Maddog Hall organised the gift of a DEC ALPHA system to a bright young lad in Finland who was workign on a hobby project. The rest is history.
Funny how it’s so driven by cost and licensing –
IBM went with MS-DOS because they couldn’t make a deal on CP/M-86 at first, and although CP/M-86 was offered, it was way more expensive ($40 for PC-DOS vs 200+ for CP/M-86)
Unix took over in academia because it was free and ran on inexpensive minis (PDP-11s)
Linux took over in personal computers because it was free. (the other Unixes required licensing – BSD was still under control of AT&T, and source licenses were really expensive and hard to get. )
On Tue, 4 Dec 2018 at 03:05, Lux, Jim (337K) via Beowulf <beowulf at beowulf.org<mailto:beowulf at beowulf.org>> wrote:
From: Beowulf [mailto:beowulf-bounces at beowulf.org<mailto:beowulf-bounces at beowulf.org>] On Behalf Of Robert G. Brown
Sent: Friday, November 30, 2018 9:35 AM
To: Paul Edmon <pedmon at cfa.harvard.edu<mailto:pedmon at cfa.harvard.edu>>
Cc: beowulf at beowulf.org<mailto:beowulf at beowulf.org>
Subject: Re: [Beowulf] Fortran is Awesome
On Thu, 29 Nov 2018, Paul Edmon wrote:
> Not necessarily.? I learned Fortran as part of my Numerical Methods
> for Physicists in grad school.? We had the option of using C or
> Fortran.? Fortran has proved much more useful to learn than C and I've picked up C on the side.?
> In many cases programming is a matter of logical structured thinking,
> if you can get that the rest is learning syntax for different languages.
> For people doing numerical methods, Fortran is way superior in terms
> of usability than C.? That said I would never teach Fortran in a
> Computer Science class, but in a Numerical Methods for Scientists I would go with Fortran.
That's similar to my own experience, actually -- I learned PL/1 (gasp, I
know:-) in my first programming course, used it in my second course (writing an assembler emulator and compiler emulator in PL/1 was entertaining), and the only other course I took in programming of any sort was Numerical Methods, and Learned Fortran IV (and how to do e.g.
quadrature and lots more) in that course. For a long while all of my actual programming was in F-IV as that's what the IBM 360/370 would run and it let me use at least some of the stuff from our textbook as well as a couple of other big books filled with F-IV numerical code, but in the end I wrote a ton myself. I literally filled a box with cards writing a complicated angular momentum coupling code for nuclear scattering experiments -- two ways, one of them a short form derived by my employer, one of them brute force -- to verify that his derivation was correct within a single phase error.
BUT, F-IV's I/O sucked. Really. Hollerith? The branching sucked. The line requirements (designed for first cards, then TTY lines) sucked.
The character data handling in general sucked. Its conditionals were comparatively primitive. I continued using it across getting into grad school and writing my dissertation and programming my dissertation, but somewhere in the mid-late 80's I started really using PCs big time, as they got to where I could actually run SOME stuff on them instead of expensive, expensive mainframes or the department's expensive, expensive mini
... and that's sort of the thing.. I spent most of my early professional career writing software in Fortran that had no business being written in Fortran, but that's what was available. Late 70s, early 80s.
The US Navy's aircraft routing system (OPARS) - not a lot of numerical computation, but lots of graph handling and implementation of the A* minimum path algorithm. Why yes, you CAN implement linked lists and pointers in Fortran arrays. That and interpolation into gridded weather products of one sort or another. That ran on a big CDC-7600 used to run numerical weather models.
No C language there.
The Los Angeles Police Department's computer dispatch system (ECCCS) was written in Fortran - because that's what was available on the PDP 11/70 running RSX-11M in a 4 processor multiprocessor configuration (shared address space using PCL-11B, and dual ported peripherals)
Not a lot of arithmetic, almost all text management, device management, and databases - yes folks, we wrote a B-tree database system running on dual port disk drives with automatic shadowing and hot standby failover. We wrote what are essentially device drivers to format messages in BiSync to send and receive from the in-car terminals. Hard real time with millisecond kinds of response requirements to sendi coded messages via serial ports to remote radio receivers to switch channels and audio streams. (Incoming 911 call assigned by dispatcher to operator 37 and the audio needs to follow) And a whole room full of PDT-11s (which are basically a VT100 with a LSI-11 inside)
So while there was a C compiler for the PDP-11, it wasn't available for RSX-11M in 1979. I doubt they would have run a mission critical system on Unix back then.
I just found this:
! DECUSC.HLP Created by Martin Minow, 25-Jul-80, edited 11-Feb-82
1 C Decus C is a PDP-11 compiler for the C language. It is distributed
by Decus and is otherwise unsupported. It may be used under RSX11-M,
RSTS/E, RT11, and VAX/VMS (compatibility mode). The language
is generally as described in Kernighan and Ritchie's book, The
C Programming Language (with several restrictions).
Key phrases "unsupported" and "generally as described"
I wrote an assembler for a one-off bitslice processor based on the AM2901 in Fortran (running on PRIMOS from Prime computers) Fun fact, the operating system was written in Fortran IV, with just a bit of Assembler. Not only that, but the PRIME CPU design was tailored to Fortran and had a single instruction to do the 3 way Fortran branch. Take that Burroughs, with your Algol based CPU. (although I really liked the Burroughs big machine design - made specifically for high level languages, reentrancy without pain, multiple stacks, blindingly fast compilers)
I don’t recall seeing significant C in the "non-academic" world, especially in PCs until the mid-late 80s - compilers cost too much, etc. I think I actually wrote code in Ada on a IBM PC before I wrote code in C (thanks to a discount non-conforming Ada compiler called Janus)- and plenty of Fortran, Basic and Pascal. Of course, I was running Fortran on a Z80 machine in 1977, too.
A friend of mine was doing development in C on a 68000 based machine in the mid 80s.
TL;DR - You can do amazing things in Fortran, and for a good part of computing history, it was the Fortran compiler that was first compiler released and supported by the mfr, probably because of significant government funding for computational work that is Fortran's forte. Numerical simulations of shock waves, weather, particle transport, etc.
Beowulf mailing list, Beowulf at beowulf.org<mailto:Beowulf at beowulf.org> sponsored by Penguin Computing
To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Beowulf