First, let me thank everyone who took a moment to comment on my first entry. It looks like there is an audience for this kind of commentary, although not everyone was thrilled with me taking the longer view. I’ll do what I can to relate a bit more of what I say to the here and now.
Before I get to your cards and letters, let me highlight two of my week’s more interesting encounters. I was with Rodney Brooks of MIT CSAIL and iRobot fame on an innovation panel at an internal Intel conference in San Diego. Rodney described how fickle NASA had been with innovative ideas like using really cheap robots for planetary exploration. As long as they worked, the money flowed, but as soon as there was a mishap on one such mission, the idea lost a lot of support within the agency. His point was that truly innovative enterprises value failure as much as success, perhaps even more so because there is so much more to understand when you get it wrong. When you get it right, you never know how close you were to disaster.
Robotics turned out to be an unintended theme last week. I spent two fascinating hours with Professors Sebastian Thrun and Chris Gerdes at Stanford. They were two of the key faculty members on Stanley, the autonomous VW Touareg which won the DARPA Grand Challenge car race last fall. We were chatting about where driverless cars might go next and how soon they might get there. We took a break, and Chris let me drive one of his steer-by-wire prototype vehicles. What a trip, so to speak.
The steering wheel has no mechanical connection to the actual steering mechanism. There’s only a shaft encoder that tells the servomotors where to position the wheels. The steering mechanism uses an invention from the late 1950s called harmonic drive. Chris tried to explain the principal behind harmonic drive, but without a picture of it I was completely lost. If you’re interested and would like to learn more about HD of the mechanical kind, I recommend you visit Harmonic Drive LLC and watch the videos. Two of these harmonic drive motors, one for each wheel, do the actual steering.
As a BMW owner of long standing, I know what precise steering feels like, but steer-by-wire takes it to another level. The steering response is vernier-like; it’s simultaneously immediate and precise.
At the moment there is no force feedback to the steering wheel, but Chris plans to add it in the near future. Unlike purely mechanical steering, you’ll be able to adjust the amount of feedback to fit the driver. That would be cool.
Are Special Purpose Processors the Next New Thing?
There was a short thread on general purpose vs. special purpose computing elements as it relates to multi-core processors. It’s a great topic and one I plan to cover in some depth in an upcoming blog. If you can’t wait for that, I suggest you look at Myers’ and Sutherland’s paper from way back in 1967 entitled On the Design of Display Processors which describes the architect’s ride on something called The Wheel of Reincarnation. Whenever someone tells me about the great idea they have for a special-purpose processor, I tell them to read this paper and get back to me. It helps keep the lines short.I’m optimistic that we will see the programming breakthroughs in the next few years that will make it much easier to write efficient, correct, and modular programs for multi-core processors
On the question of returning to single-threaded machines at some time in the future given some yet-to-be identified technology, I think it’s extremely unlikely. I wouldn’t rule out the possibility of some new logic device allowing for much higher speed operation at reasonable power levels, but there is more to single-thread performance than just clock speed. It’s a combination of clock speed and the number of instruction you can execute in parallel per clock cycle. A new logic device would have to be not only smaller and faster, but much more energy-efficient as well. Until such a device is discovered or invented and proves amenable to high volume manufacture, we will be living with multi-core processors.
Coming Soon to a Computer Near You
The good news is that necessity is the mother of invention, and I’m optimistic that we will see the programming breakthroughs in the next few years that will make it much easier to write efficient, correct, and modular programs for multi-core processors in the near future. I’ll talk about some of the work-in-progress at Intel and elsewhere that has me feeling so positive about the future of general-purpose parallel programming. I’m fine if some of you want to be in denial for the next few years as so many have been over global warming, but isn’t it better to ride the wave than get crushed by it?
I’d Take a Good Algorithm Any Day
On the research side of things at Intel, we spend as much time, if not more, looking at algorithmic improvements as we do at hardware improvements. Engineering a 10x improvement in hardware takes years, but a good programmer with the right tools can do it in a day. It’s another reason why I am so wary of special-purpose processors. A better algorithm on a general-purpose processor can run rings around a poorer algorithm on a special-purpose processor. Look for a future blog when I’ll explain how this is exactly what’s happened to today’s most successful special-purpose processor and why it’s time for general-purpose processors to make a stunning comeback. You won’t want to miss that one.
And that’s it until next time.