The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Henry Bent <henry.r.bent@gmail.com>
To: Clem Cole <clemc@ccc.com>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>,
	Doug McIlroy <doug@cs.dartmouth.edu>
Subject: Re: [TUHS] Space Travel, was New: The Earliest UNIX Code
Date: Sat, 19 Oct 2019 15:50:04 -0400	[thread overview]
Message-ID: <CAEdTPBf-gbwypJtUzwgCeTYM6YRwbnsJUoUEYDG7PK3fPCLvYQ@mail.gmail.com> (raw)
In-Reply-To: <CAC20D2N=mcR3X=rg=or_19y9pwq5dijbOou53pCiMj1+h7ng8A@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 4459 bytes --]

I think the astonishment is not so much that tailored specialty floating
point libraries exist, or that programmers are able to squeeze performance
out of processors using hardware floating point and/or vector units.  What
is impressive to me is that floating point was being done on processors
that had essentially no hardware support for floating point whatsoever, and
that the processors in question were running at what we would consider
infinitesimally slow speeds by the standards of what is inside my barely
modern home thermostat.

These hacks make me think of the "demoscene" folks who write programs for
early '80s home 8 bit microcomputers in assembly.  The idea is to squeeze
as much apparent visual performance out of a system as possible, so an
example might be scrolling characters across the screen while a wireframe
cube rotates in the background, all on a Commodore VIC-20 with 4K of RAM.
The idea is to start with a mathematically sound algorithm but then cut
every corner possible and account for every single timing bug and hardware
quirk.  It's a fun demonstration for two or three minutes but I imagine
that after an hour or two the numerical inaccuracies would set in, just as
described earlier in this thread.

-Henry

On Sat, 19 Oct 2019 at 15:20, Clem Cole <clemc@ccc.com> wrote:

> Abhinav -- it is still done today.   For Intel's MKL we must have a team
> of programmers that specialize in writing math at the lowest levels.  DEC,
> CDC, Cray, IBM did the same thing back in the day.   Check out:  Intel
> Math Kernel Library (*a.k.a.* MKL) <https://software.intel.com/en-us/mkl>.
>
>
> On Sat, Oct 19, 2019 at 2:34 PM Abhinav Rajagopalan <
> abhinavrajagopalan@gmail.com> wrote:
>
>> Forgive me for both hijacking this thread, and to address my amateurish
>> gnawing concern, but how was it be possible to write differential/integral
>> equations at an assembly/machine level at the time, especially in machines
>> such as the PDP-7 and such which had IIRC just 16 instructions and operated
>> on the basis of mere words, especially the floating point math being done.
>> Surmising from some personal experience that writing mathematical programs
>> is hard even now, although there exist certain functional paradigms, and
>> specialised environments such as MATLAB or Mathematica. The
>> complexity seems to remain the same if not more now, due to the vast oodles
>> of data to handle stemming from the nature of the world.
>>
>> Were they loaded as just words as any other instruction or were there
>> separate coprocessors that did the number crunching? I'm guessing
>> Fortran-ish kind of implementations were done, but the hardware level
>> computation itself I just can't process.
>>
>> It just blows my mind now thinking backwards in terms of those
>> monster machines being loaded with trails of paper tape instructions to
>> play Space Travel. Being born in the late 90's doesn't help me too.
>>
>> Also, on a related note, don't know if you've watched the interview
>> <https://youtu.be/EY6q5dv_B-o> of Ken done by Brian at the Vintage
>> Comptuer Federation 2019, there might be a few surprises lurking around the
>> middle of that when they discuss pipes and grep.
>>
>> Thank you!
>>
>> On Sat, Oct 19, 2019 at 8:11 PM Doug McIlroy <doug@cs.dartmouth.edu>
>> wrote:
>>
>>> I was about to add a footnote to history about
>>> how the broad interests and collegiality of
>>> Bell Labs staff made Space Travel work, when
>>> I saw that Ken beat me to telling how he got
>>> help from another Turing Award winner.
>>>
>>> > while writing "space travel,"
>>> > i could not get the space ship integration
>>> > around a planet to keep from either gaining or
>>> > losing energy due to floating point errors.
>>> > i asked dick hamming if he could help. after
>>> > a couple hours, he came back with a formula.
>>> > i tried it and it worked perfectly. it was some
>>> > weird simple double integration that self
>>> > corrected for fp round off. as near as i can
>>> > ascertain, the formula was never published
>>> > and no one i have asked (including me) has
>>> > been able to recreate it.
>>>
>>> If I remember correctly, the cause of Ken's
>>> difficulty was not roundoff error. It
>>> was discretization error in the integration
>>> formula--probably f(t+dt)=f(t)+f'(t)dt.
>>> Dick saw that the formula did not conserve
>>> energy and found an alternative that did.
>>>
>>
>>
>> --
>>
>> Abhinav Rajagopalan
>>
>>
>>

[-- Attachment #2: Type: text/html, Size: 6882 bytes --]

  reply	other threads:[~2019-10-19 19:50 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-19 14:40 Doug McIlroy
2019-10-19 18:32 ` Abhinav Rajagopalan
2019-10-19 18:44   ` Abhinav Rajagopalan
2019-10-19 19:19   ` Clem Cole
2019-10-19 19:50     ` Henry Bent [this message]
2019-10-19 19:55       ` [TUHS] Space Travel related question Thomas Paulsen
2019-10-19 20:19         ` Warner Losh
2019-10-19 20:24       ` [TUHS] Space Travel, was New: The Earliest UNIX Code Arthur Krewat
2019-10-19 20:12   ` [TUHS] How to do differential/integral on a PDP-7, was: Space Travel Michael Kjörling
2019-10-19 20:40     ` Arthur Krewat
2019-10-19 21:15       ` Michael Kjörling
2019-10-21  5:14       ` Dave Horsfall
2019-10-21  5:23         ` Lars Brinkhoff
2019-10-21 13:59           ` John P. Linderman
     [not found]             ` <68553366-4E6F-4E17-8903-282C67186D16@humeweb.com>
2019-10-26  2:24               ` Dave Horsfall
2019-10-26  2:09           ` Dave Horsfall
2019-10-21  4:55     ` Dave Horsfall
2019-10-21 19:21       ` Paul Winalski
2019-10-21 19:38         ` Kurt H Maier
  -- strict thread matches above, loose matches on Subject: below --
2019-10-19 13:13 [TUHS] Space Travel, was New: The Earliest UNIX Code Doug McIlroy
2019-10-18 11:52 Doug McIlroy
2019-10-18 18:36 ` Steffen Nurpmeso
2019-10-18 20:19   ` SPC
2019-10-18 22:04     ` Ken Thompson via TUHS
2019-10-18 23:20       ` Arthur Krewat
2019-10-19  0:57         ` G. Branden Robinson
2019-10-19  1:11           ` Arthur Krewat
2019-10-29  2:18       ` Lawrence Stewart
2019-10-26 15:10 ` Lars Brinkhoff
2019-10-17 19:21 [TUHS] New: The Earliest UNIX Code - From the Collection of the Software History Center, Computer History Museum Lyle Bickley
2019-10-17 20:44 ` [TUHS] Space Travel, was New: The Earliest UNIX Code Warren Toomey
2019-10-17 22:39   ` Warner Losh
2019-10-17 22:51     ` Warren Toomey
2019-10-18  5:59       ` Lars Brinkhoff
2019-10-18  9:30         ` SPC
2019-10-18 17:36         ` Nemo
2019-10-18  3:01   ` Warren Toomey
2019-10-18  5:07   ` Lars Brinkhoff
2019-10-18  5:10     ` Lars Brinkhoff
2019-10-18 13:37       ` Warner Losh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAEdTPBf-gbwypJtUzwgCeTYM6YRwbnsJUoUEYDG7PK3fPCLvYQ@mail.gmail.com \
    --to=henry.r.bent@gmail.com \
    --cc=clemc@ccc.com \
    --cc=doug@cs.dartmouth.edu \
    --cc=tuhs@tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).