[Beowulf] A start in Parallel Programming?
James.P.Lux at jpl.nasa.gov
Tue Mar 13 15:35:09 PDT 2007
At 02:18 PM 3/13/2007, Robert G. Brown wrote:
>And really old people also remember Our Old Friend, PL/C, which never
>met a line of code it didn't like.
Designed as competition(?) for Basic, really.. It was used for
introductory programming classes at UCLA in 1977 and 1978 as an
"easy" form of PL/I (q.v. below), which was mainframe oriented (UCLA
having a big S/360 and not being as farthinking CS-wise as UCSD, which had
a Burroughs B6700 (for which the machine language is a variant of
ALGOL) and microcomputers to teach Pascal)
To draw upon another poster's comments about CS, trade schools, etc.,
at that time (late 70s) UCLA just had a Math/CS major, which was very
heavy math, and not much CS (being in the College of Letters and
Sciences, and not the College of Engineering). Programming was
taught as an Engineering class (E10,E20,E30) with domain specific
variants for people taking management classes, oriented towards
programming to run on the machine they had (i.e. the S/360). E10
taught PL/C. E20 taught MIXAL, CALGOL, and PL/I, E30 was mostly MIXAL
(which I hated, being entirely too "genericized"... I'd have rather
used PDP-11 ASM) and CALGOL. It was basically aimed at EE majors who
were going to design computers or who were going to run existing software.
At UCSD, on the other hand, Software development was taught as part
of a CS curriculum in the School of Engineering and Applied Sciences,
and so the "purity and elegance" of Pascal was appealing.
>I really liked PL/1. Again a relaxed interpolation of C and fortran, in
>a lot of ways. Fortran IV (which I learned after PL/1) really sucked in
>comparison. Noting that this was pre-1977 (wince).
You mean, of course, PL/I (roman numeral, not arabic). IBM's great
hope for the future. FORTRAN with all the nifty data structures,
modular flow control constructs, MUCH better string handling,
pointers, recursion, macros, etc., a lot drawn from Algol. (no
pointer arithmetic allowed, either!) But a honkin' huge compiler,
which made it less popular (I think you had to have an H series
machine to run it). It was also EVIL to write a parser for (lots of
stack space needed because you're waiting for that semicolon...), so
it didn't lend itself to minimalist implementations. The scientific
users liked FORTRAN, and the business community was happy with COBOL and RPG.
Interestingly, it was the progenitor of HAL/S (used for spacecraft,
including the shuttle), PL/M (used to write CP/M, for which we all
own some debt.. thanks Gary K.!). There was a version called PL/S
used by IBM to write MVS, and another version used to write PRIMOS
(for PR1ME computers). It had all the nice data structures and
memory management for building an OS, although I suspect that another
problem was performance (because of garbage collection, although I
probably didn't know that back then).
Now that I think about it, I actually quite liked working in PL/I.
> it is, in the
>end, maddening. Makes one want to commit acts of violence and drink
And this is bad, because?
>I have no problems with any of this, and there is certainly some truth
>to it -- in certain arenas. OTOH, the end stage of this attitude is, to
>be frank, Vista. A program that is so huge, kludgy, and inefficient
>that it runs like a pig on the fastest, biggest hardware in existence,
>and it is >>just the bloody operating system<<, the part that has to
>basically manage a core execution loop, a scheduler, some devices, and
>be able to load and run software. God help anybody that actually needs
>to run an application when the OS itself is designed by people that
>don't give a rat's ass for elegance and efficiency.
Oddly, the OS (kernel) of Vista is fairly clean (as is the kernel of
WinNT). It's the many, many layers of abstraction environment on top
that you have the beef with, because that has to satisfy many, many
constituencies (such as the content providers who don't want their
valuable content misappropriated).
>Even linux is starting to suffer from a certain amount of bloat. The
>primary difference is that linux is still designed in layers, and one
>CAN run a considerably stripped linux and CHOOSE to layer on the bloat
>that you need.
Indeed.. and in Vista (or any other digital rights management (DRM)
compatible OS) can't provide this strippability, because then it
would be easy to "strip" the DRM, or insert an extra layer to
intercept protected content.
I personally think that trying to do software DRM is a fool's errand,
and it should be done with hardware (after all, why do you think
*people who really care* use crypto boxes and red/black separation)
>I personally think that there is a relatively clean line out there
>somewhere in the sand -- for quickies and one-offs, use a scripting
>language (and I don't even care which one).
But one-offs have a tendency to become permanent production
code. I'm having just such a discussion today vis a vis the use of
LabView (a graphical tool for controlling test equipment).
>>We are piling the wood for the auto da fe right now...
>[He pulls out the shiny cylinder, now empty, and plugs in a tall bottle
>of amber fluid in its place. Sweat is now pouring down his face. A
>steady rumble of nuclear holocaust comes from overhead, and the concrete
>ceiling is starting to glow a dull red. Taking a deep pull on the mask
>nozzle, his eyes begin to glaze. Then his fingers begin to stab blindly
>at the red button, the one that launches the ultimate, world-ending
>How could I have been so blind? Oh please, please, I confess! I was
>tempted away from the path of goodness and righteousness by the thought
>of consorting with all of those daemons... the ones in boots of shiny
>leather. I will return to the one true faith... and go buy my copy of
>Seriously, you and Jeff can try to find a 12-step program in your
>respective geographic areas. I'm sure there are other recovering
>fortran-heads. You can share personal stories about the horror of
>hollerith and the time you managed to write a whole 500 line program
>with no GOTOs!
Sure.. punching 029 codes for parens on an 026 punch and stuff like that.
it's easy to write without GOTOs in FORTRAN...
IF (0) 902,902,902
is the same as
(won a six pack of beer as an underage youth with that one on a bet...)
(and, as a website I was just pointed to mentions: "Arithmetic IF is
truly a post-modern programming construct: it does not impose the
false Cartesian/Aristotelian dichotomy inherent in the IF/ELSE
structure. Nor does it block nonlinear thought by the block structure
inherent in the ENDIF" So there...for those of you with dual major
advisees looking for something technical and something philosophical)
>Otherwise your friends may have to hold an "intervention". And you know
>what that involves, don't you?
>Think about it...;-)
James Lux, P.E.
Spacecraft Radio Frequency Subsystems Group
Flight Communications Systems Section
Jet Propulsion Laboratory, Mail Stop 161-213
4800 Oak Grove Drive
Pasadena CA 91109
More information about the Beowulf