Live data from Hacker News

Richard Feynman and the Connection Machine (1989)

blog.longnow.org

31–40 of 64 posts

Re: Richard Feynman and the Connection Machine (1989)

#31

Feynman has many interesting stories about playing about with all sorts of stuff from picking locks to the Manhattan project. His book, "Surely you're joking, Mr. Feynman!" is just a fantastic read: https://www.amazon.com/Surely-Feynman-Adventures-Curious-Cha...

The sequel, "What Do You Care What Other People Think?": Further Adventures of a Curious Character [1] is also excellent, and includes his account of serving on the commission that investigated the Challenger disaster.

[1] https://www.amazon.com/What-Care-Other-People-Think/dp/03933... or part of the buy it together bundle in wimagguc's link

Re: Richard Feynman and the Connection Machine (1989)

#32
Someone please explain how to do this. It's been a lifelong mystery that has always fascinated me:

> By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circuits as a continuous, differentiable system is a bit strange. Feynman’s router equations were in terms of variables representing continuous quantities such as “the average number of 1 bits in a message address.” I was much more accustomed to seeing analysis in terms of inductive proof and case analysis than taking the derivative of “the number of 1’s” with respect to time. Our discrete analysis said we needed seven buffers per chip; Feynman’s equations suggested that we only needed five. We decided to play it safe and ignore Feynman.

How is it possible to use PDEs to model boolean circuits?

Re: Richard Feynman and the Connection Machine (1989)

#33
post #4

A nice essay. This paragraph stood out for me: "By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circuits as a continuous, differentiable system is a bit st…

Feynman is great, very amusing and obviously brilliant. But I've also worked with folks like him before who end up as fish out of water in fields they don't know the conventions for and can't be bothered to learn. Lots of time is wasted trying to figure out how to get the rest of the company to communicate with the lone genius, and it's obvious that they're smart enough to go away for a week and learn enough of the f…

This is a great point. However, I would generalize a bit and say the problem is sometimes beyond ego; when someone's technical aptitude is greater than their ability to communicate. This is a more common problem than just the smartest guy in the room, and at some point you either trust each other, or agree to disagree.

That said there is an individual far worse than the brilliant teammate that's hard to understand. These are people whose ability to listen is worse than their technical aptitude. Just one of them in a meeting will destroy all progress, and disrupt any ideas that don't mesh with their preexisting thoughts.

Re: Richard Feynman and the Connection Machine (1989)

#34
post #9

I came across this before and found the section "An Algorithm For Logarithms" interesting. As pointed out (in second para. of that section) Feynman's observation about representing a number as product of terms of the form $1 + 2^{-k}$ reduces the problem of estimating log to computing those values k which appear in the product. (Btw the article incorrectly claims the representation is unique.) There's an obvious line…

Newton-Raphson doesn't buy you much for logarithms, because the iteration itself involves either exp(x) or log(x)[1].

If you don't have a real multiplier[2], then the algorithm described is somewhat attractive because multiplying by 1/(1+2^-k) has a nice series expansion. You can do it using only shifts and adds (and the number of terms you need is O(1/k), so it falls off reasonably quickly), and you get the part you need to compute the next `k` early, so there's no serial dependency. Actually finding k is just a count-leading-zeros operation, which is cheap enough.

Computers today pretty much all have real multipliers, so no one does this. Instead we reduce to a range like [1/sqrt(2),sqrt(2)], and then either use a minimax approximation on that interval (if the accuracy requirement is reasonably low) or further reduce by looking up a value of r close to x for which we have a pre-computed 1/r and log(r) and take advantage of:

    log(x) = log(r * 1/r * x) = log(r) + log(1/r * x)
this allows one to achieve high-accuracy results if r is chosen so that one of 1/r and log(r) is exact and the other is unusually close to the exact value[3], or stored in extended precision.

[1] If you have a fast approximate exp and log you can make use of it in an approximate N-R iteration, but it still doesn't buy you much. In practice no one does this; we compute exp and log directly, and they're among the fastest functions in the math library.

[2] Meaning either you don't have one at all or that it's much, much slower than addition, as was common in the 1980s and earlier.

[3] This trick is called "Gal's Accurate Tables" (https://en.wikipedia.org/wiki/Gal's_accurate_tables), but as with most things named for someone, it was independently invented multiple times, and likely dates back decades before the credited inventor.

Re: Richard Feynman and the Connection Machine (1989)

#35

Someone please explain how to do this. It's been a lifelong mystery that has always fascinated me: > By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circui…

> How is it possible to use PDEs to model boolean circuits?

Be Richard Feynman?

Re: Richard Feynman and the Connection Machine (1989)

#36

Someone please explain how to do this. It's been a lifelong mystery that has always fascinated me: > By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circui…

I was curious about that too. This bit:

representing continuous quantities such as “the average number of 1 bits in a message address.”

suggested to me that maybe he recast it as a system dynamics problem? I'm a little out of my depth here, though.

Re: Richard Feynman and the Connection Machine (1989)

#37

Someone please explain how to do this. It's been a lifelong mystery that has always fascinated me: > By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circui…

My guess is that his calculations were akin to using a hash table to sort routing information and analyze the eviction patterns and probabilities over time?

Re: Richard Feynman and the Connection Machine (1989)

#38
post #9

I came across this before and found the section "An Algorithm For Logarithms" interesting. As pointed out (in second para. of that section) Feynman's observation about representing a number as product of terms of the form $1 + 2^{-k}$ reduces the problem of estimating log to computing those values k which appear in the product. (Btw the article incorrectly claims the representation is unique.) There's an obvious line…

It might be relevant that the CM-1's processors were tiny: they had a 1-bit word size.

Maybe this was meant to be a fast rough approximation? 1 + 1/2^-m + 1/2^-n ~= (1+1/2^-m)(1+1/2^-n). So check each bit in a fixed-point int and add a factor from a table for each 1 bit found? Then run a few rounds of Newton iteration at the end if you want it a little less rough? This goes well with the SIMD nature of the machine -- they broadcast single-bit ops one by one to all processors in parallel -- but maybe it's terrible numerically, I haven't checked.

Re: Richard Feynman and the Connection Machine (1989)

#39

Both of a friend's parents worked on the Manhattan Project. Feynman was a character. I was fortunate to be able to write code for version 1 of the Connection Machine (that was the SIMD device) and I would prototype code on my Mac in Star Lisp. Good times that I am grateful for.

Waiting for the long version of your experiences. Thanks for sharing.

Re: Richard Feynman and the Connection Machine (1989)

#40

Someone please explain how to do this. It's been a lifelong mystery that has always fascinated me: > By the end of that summer of 1983, Richard had completed his analysis of the behavior of the router, and much to our surprise and amusement, he presented his answer in the form of a set of partial differential equations. To a physicist this may seem natural, but to a computer designer, treating a set of boolean circui…

Have a really large number of circuits. It's the same as how you can use PDEs to model atoms. If you have enough atoms in the collection, you don't have to think about individual atoms.
Post reply on HN