
Richard Feynman and the Connection Machine - jonbaer
http://longnow.org/essays/richard-feynman-connection-machine/
======
danso
> _To find out how well this would work in practice, Feynman had to write a
> computer program for QCD. Since the only computer language Richard was
> really familiar with was Basic, he made up a parallel version of Basic in
> which he wrote the program and then simulated it by hand to estimate how
> fast it would run on the Connection Machine._

I have most of Feynman's memoirs and a few of his biographies, but I only see
scant references to his work in computing, possibly because they seem so
trivial to his other accomplishments. That said, it would be interesting to
read more about his computational work, given, as the OP says, that he was
also very much a pencil and paper guy.

~~~
krazemon
> _that he was also very much a pencil and paper guy._

I'm curious about this as well. In particular, I wonder whether Feynman wrote
out his code on pencil and paper as that's something I've always fantasized
about.

~~~
kragen
You may be interested in the algorithmic notation I designed for writing code
with pencil and paper without the usual fuzzy thinking that accompanies
pseudocode:
[http://canonical.org/~kragen/sw/dev3/paperalgo](http://canonical.org/~kragen/sw/dev3/paperalgo).

~~~
wwwhizz
I'm probably biased by writing a lot of algorithms in the classical way, but I
find your way a lot less readable and very unintuitive. Pseudocode is easy to
transform to code; your notation, not so much.

I do applaud your determination of not liking the classical notation and
coming up with something different. Maybe it's just that I don't like the
syntax of math either (if math would be an API, it would be considered poorly
designed, poorly documented and incomplete and inconsistent).

~~~
kragen
Yes, as I say on the page, I find it less readable, too. But it's _much_
easier to write. And it isn't that hard to transform to code.

~~~
continuational
I must say i find it more readable than pseudo code; the reason being that all
the keywords have been replaced with graphical elements and layout. This means
that all the _text_ is essential to the algorithm, which makes it much easier
to read for me.

~~~
kragen
I'm glad you like it! Maybe I'll get used to it in time myself.

I do still use things like "argmin", which you could argue is a "keyword"; by
argmin_{x ∈ S} f(x), I mean what you would express in Python as min(S, key=f),
which ends up translating to something like this in C:

    
    
        int min_found = 0;
        T min;
        U min_item;
        for (iter it = first(S); hasNext(it); it = advanced(it)) {
           U item = itemAt(it);
           T val = f(item);
    
           if (!min_found || val < min) {
              min_found = 1;
              min = val;
              min_item = item;
           }
        }
    
        do_whatever_with(min_item);
    

Maybe this is what someone earlier meant when they said this paper algorithm
notation was still too hard to translate into code, but I feel like argmin
(over a finite set) is a sufficiently familiar concept that there's no need to
spell it out in more detail, and indeed it's a standard library function in
Python.

------
gavinpc
Terrific writeup. Thanks for submitting this. Pieces about Feynman are seldom
disappointing (it's as if he continues to live through these inspired
stories), but this one had lots more to offer as well.

Note that the markup was not quite exported completely, so [links] and $math
notation$ are still in a raw syntax, which is confusing at first.

------
sverige
TL;DR : Read the (fning) article! The details matter!

------
eggy
>The notion of cellular automata goes back to von Neumann and Ulam, whom
Feynman had known at Los Alamos. Richard's recent interest in the subject was
motivated by his friends Ed Fredkin and Stephen Wolfram, both of whom were
fascinated by cellular automata models of physics. Feynman was always quick to
point out to them that he considered their specific models "kooky," but like
the Connection Machine, he considered the subject sufficiently crazy to put
some energy into.

I am currently starting round four in my studies of CAs, and it I thought this
quote was interesting in bridging the earlier work by von Neumann and Ulam to
Ed Fredkin and Stephen Wolfram with Feynman in the middle spanning them.

The book, "Cellular Automata: A Discrete Universe" by Andrew Ilachinski, has
had it critics, but it is an amazing compendium to read.

~~~
kragen
Don't Fredkin and Ulam overlap by about 30 years?

Thanks for the book recommendation!

~~~
DigitalPhysics
Here's a movie recommendation if you're interested in Fredkin, Wolfram,
Computation, etc.: "Digital Physics"

If you watch it on Vimeo, iTunes, or Amazon and leave a comment you can get a
free pack of cards (with gum!).

www.DigitalPhysicsMovie.com

------
pbrewczynski
"Connecting a separate communication wire between each pair of processors was
impractical since a million processors would require $10^{12]$ wires."

Isn't it more like sum_(n=1)^999999(1000000-n) = 499999500000 ?

[https://www.wolframalpha.com/input/?i=999999+%2B+999998+%2B+...](https://www.wolframalpha.com/input/?i=999999+%2B+999998+%2B+999997+%2B+...+%2B+1)

Since "one" wire connect in theory two processors?:)

~~~
GFK_of_xmaspast
Good luck getting all the extra bugs and timing issues out of a half-duplex
setup like that.

------
bambax
I re-read this text in full every time it comes back up on HN and never stop
to love it.

------
meeper16
It's all about Biomimetic Cognition.

~~~
krazemon
Could you elaborate on this statement? I'm intrigued...

~~~
meeper16
[http://cymetica.com/biomimetic-
cognition/in_silico_cognitive...](http://cymetica.com/biomimetic-
cognition/in_silico_cognitive_biomimicry.html)

~~~
dharma1
sounds quite similar to
[https://en.wikipedia.org/wiki/Vector_space_model](https://en.wikipedia.org/wiki/Vector_space_model)
and related ideas

