Richard Feynman and The Connection Machine
longnow.org
longnow.org
Surely You're Joking is a great read - one of those "drop what you're doing and read it now" kinds of books.
The way it worked was at the sign of the flash he released torn shreds of paper and noted how far they were dispersed by the shock wave that followed. This mental calculation turned up to be quite accurate.
However, as always, every genius has their undesirable part:
"The charming side of Richard helped people forgive him for his uncharming characteristics. For example, in many ways Richard was a sexist. Whenever it came time for his daily bowl of soup he would look around for the nearest "girl" and ask if she would fetch it to him. It did not matter if she was the cook, an engineer, or the president of the company. I once asked a female engineer who had just been a victim of this if it bothered her. "Yes, it really annoys me," she said. "On the other hand, he is the only one who ever explained quantum mechanics to me as if I could understand it." That was the essence of Richard's charm."
When I was reading Feynman's biography (Surely You're Joking, Mr. Feynman!) one thing that really bothered me was the big difference in his approach to his son and daughter. He seemed to relish how, when his young boy got his interesting games, but sounded quite impatient with his daughter, saying she only wanted the same story repeated to her.
In general, I am a little apprehensive of Feynman's "sexist pig" rep. His younger sister became a physicist largely through his encouragement which tells me that his views on women in science were rather progressive, even by today's standards. He is also known for having sided with a female professor in a sex discrimination suit at Caltech - again, very ahead of his time.
I also recall that at least some of that rep came from his use of stories that were presumably sexist, such as stupid driver (woman), smart cop (man). But according to Feynman, it was his critics, not him, who assumed that the smart cop was male, so the egg was on them.
Finally, a lot of people conflate Feynman's womanizing with sexism, and I think the guy should get a break for trying to find solace in as many women's arms as possible after watching his wife slowly die from cancer.
As for womanizing, again it shocked that after so little time passed after her wife's death, he jumps into the scene (and with a vengeance).
But maybe, I'm reading too much into this. Here's what Michelle Feynman (daughter) has to say about what kinf of father Feynman was (http://www.basicfeynman.com/qa.html):
"Fantastic. Fun, supportive, sweet, silly. He went to great lengths to entertain us. When I was young, the nightly ritual included him scouring the house for the correct stuffed animal, with me rejecting each and every offering until I had the desired one, or until he had made me laugh with his efforts. I'm not sure which was more important. He also made for an excellent radio. I would sit on his lap and turn his nose, and he would make up songs from different radio stations."
It's not like she died suddenly. They had ample time to prepare for her death, and by the time she was gone he was already prepared to move on. He likely went months with the sadness of watching his love leave him slowly, and at the same time he was not satisfying his sexual desires. I can certainly forgive the man for "jumping into the scene" when he no longer had an obligation to his late wife.
This is the same reason that people are obsessed with celebrities' private lives - you're not famous/genius but you can at least tell yourself it's ok because Charlie Sheen does whores/Tiger Woods has two dozen mistresses/Feynman is a misogynist and women just happen to like him anyway, a lot and while naked (note the trend here).
Why does it matter and why do you care?
I'm a lot like him in that respect: I, too, don't care what other people think of Feynman.
It shocked WHO? Who are you (or I) to judge another persons personal life in matters such as that?
Actually, that one could judge someone in such a way, shocks ME.
Michelle Feynman is the daughter of Richard Feynman. A
graduate of Art Center College of Design, Michelle is a
freelance photographer and spends most of her days taking
pictures. She is perhaps best known as the editor of
Perfectly Reasonable Deviations from the Beaten Track: The
Letters of Richard P. Feynman, a collection of letters
to and from her father.The book includes an introduction by
Michelle in which she describes what it was like to grow
up as the daughter of one of the world's best-known
physicists. Michelle has also gathered a compilation of her
father's artwork in a book entitled The Art of Richard P.
Feynman: Images by a Curious Character.Abraham Lincoln, for instance, was pretty racist. He liked minstrel shows and found deeply racist jokes hilarious. Judged in the context of his time, of course, he was very progressive, and despite those personal characteristics he remains one of the most important proponents of civil rights in history. We can recognize that without having to parenthesize (but he told racist jokes).
(Now, some people consider the two types of "sexist" as the same. Those people are disturbed).
Whoa.
"In retrospect I realize that in almost everything that we worked on together, we were both amateurs. In digital physics, neural networks, even parallel computing, we never really knew what we were doing. But the things that we studied were so new that no one else knew exactly what they were doing either. It was amateurs who made the progress."
"That sounds like a bunch of baloney," he said. "Give me something real to do."
...advice for the ages!
http://www.inc.com/magazine/19950915/2622.html
For what it's worth, last I heard Sheryl Handler was running Ab Initio. I wonder if she's really the nutcase the article makes her out to be.
"Every great man that I have known has had a certain time and place in their life that they use as a reference point; a time when things worked as they were supposed to and great things were accomplished."
This concept immediately reminded me of an excerpt from the outstanding book "Rules for Aging" which talks about this and its potential dark side:
"A long happy life last five minutes. One would think that this rule would go without stating, but many people actually believe that a long life of uninterrupted happiness is a real possibility. And they act on this belief! They change families, careers, the structure of their faces, countries, everything, for no more substantial reason than they recall five minutes of uninterrupted happiness in the past, and now they wish to re-create the moment in perpetuity. They even convince themselves that the five-minute period they recall was really five years and giddily substitute the exception (bliss) for the rule (confusion, doubt, misery, fear, confusion, and confusion). Happiness is wonderful, but if you have had more than five consecutive minutes of it, it means you weren't thinking."
That book isn't really about aging, it's more about practical down-to-earth wisdom. I read it for the first time when I was in my early 20's, and it's very amusing and pure gold.
I don't know much about Feynman but the combination of his brilliance and his popularity has always intrigued me. Surely we can assimilate some of Feynman's charm.
I especially like how the machine was initially designed so that it required 4 chips per board. But when they were about to start manufacturing the boards, they realized that present technology couldnt fit 4 chips per board.
Feynman it seems modeled the system via set of partial differential equations and then said that he had proved that 3 chips per board were enough and modeled how the system would work even in this configuration.
No one really understood what he had done but they trusted him, created the boards and it turned out he was right.
This story I believe was in an Scientific American a long time ago.
In the meantime there's a StarLisp simulator you can play around with: http://sourceforge.net/projects/starsim/
When it comes to data parallelism, StarLisp's successor Paralations (http://www.mactech.com/articles/mactech/Vol.08/08.07/Paralat...) is much more interesting because it deals explicitly with locality. Paralations' successor, NESL (http://www.cs.cmu.edu/~scandal/nesl.html) is implemented on top of Common Lisp, but it's a functional language with ugly syntax.
It would make a lot of sense to have something like StarLisp or APL for CUDA right now. Trying to do data parallelism in C is about the most brain-damaged idea ever. I don't know if anyone is working or interested in that, though.
Overall, I think the MultiLisp (futures) approach is a bigger win for general-purpose parallel programming than StarLisp data parallelism. Doing everything with data-parallel algorithms is hard - you're doing everything with array programming like in APL, but now you need to come up with clever ways to parallelize everything too. But the algorithms themselves are beautiful (read Hillis and Steele's Data Parallel Algorithms, my favorite algorithms paper: http://docs.google.com/viewer?a=v&q=cache:efZTS1nDfBsJ:c...)
It might be the case that C source for vcode is still available so with a good optimizing compiler one could do the same. It wont quite be the same as a hand optimized assembly implementation of vcode. But perhaps still a satisfactory implementation.
You may well be right, but I challenge you to prove it. I myself am very interested in whether this would work. I have spent many sleepless nights programming GPU algorithms, and wondered if ideas from other programming languages and paradigms (especially functional programming) could be applied to make it easier and more elegant.
The nested data-parallelism approach does look promising on paper, and many people are well aware of the theoretical possibility of this working on GPUs (including people at Nvidia itself), but so far nobody succeeded to make it practical.
So, doing data parallelism in CUDA may be brain-damaged, but the flexibility and performance it delivers is mind-blowing. If you can achieve something comparable using a higher-level functional approach, I will be among your first users, and I'll tell everyone I know.
MultiLisp (AFAIK) is traditional task-parallelism rather than data-parallelism, and would not work well on a GPU.
I am not disagreeing with you, I am saying that I would love to see a better data-parallel language than C (or CUDA to be precise), but it does not exist right now (at least not a practical one that would run on a real GPU with reasonable performance and allow non-trivial nested and hierarchical algorithms).
I think that you will need custom boards for interconnection.
So it will be some costly project.
Plasma, a simple MIPS-I variant: http://opencores.org/project,plasma