30 August 2007

Patricia Seybold on the "Breakthrough Innovations" panel

Patty Seybold has a detailed and perceptive post on her Outside Innovation blog regarding the NI Week Industry Experts panel on "Breakthrough Innovation", on which I was honored to serve with her:


NI’s customers are scientists and engineers who are experts in a wide array of disciplines, from nanotechnology and photo-optics to the design of alternative energy power supplies in automobiles, the control of robots and other manufacturing processes, to the design of signal processing systems on programmable embedded chips in today’s cell phones.

These engineers and scientists use NI’s virtual instrumentation software innovation toolkit, LabVIEW, to design, prototype, and deploy applications that measure real world phenomena—analog signals and physical movement—analyze these signals, describe actions that need to be taken, send out the signals to execute those actions (usually in parallel), analyze the results, and take additional actions. Whether the device being programmed is a nanorobot being used to splice genes or a spectrum analyzer being used to measure radio frequency interference, the scientist is dealing with real world phenomena in real time.

Hanging out with these real world scientists and engineers got me thinking about the future of programming as we know it today. The future of programming is a topic to which NI’s top executives have also been giving a lot of thought.
Yes, they have-- over more than two decades, starting with the very fundament of LabVIEW. So it is considerably ahead of the game in programming's new world of parallelism (concurrency) enabled by multicore processors, which are now at the heart of almost every new personal computer sold. The ability of processes to execute truly in parallel poses all sorts of new possibilities... plus big challenges for programmers who aren't so fortunate as to be using LabVIEW, which is inherently parallel.

As pundits from Bill Gates on down have opined, parallelism poses a potentially bigger revolution in software design than object-oriented programming did. Some of these same folks contend it'll be a decade before programming tools catch up. Theirs, maybe.

As a guru on innovation, Seybold recognized an important comment from LabVIEW inventor Dr. Jeff Kodosky:

“We have a successful parallel language for multicore machines today. You can exploit the performance of multicore machines now. The ultimate architecture for parallel programming is the FPGA (Field Programmable Gate Array) and, of course, LabVIEW is already there,” Jeff Kodosky exclaimed.

That underscores a key point that is often underplayed and under-appreciated: in one smooth move three years ago, LabVIEW wrenched the reconfigurability and raw parallel-processing power of Xilinx's top-end FPGAs from the hands of specially-trained engineers and placed these capabilities in the end-user's hands. No longer just field-programmable, thanks to LabVIEW FPGAs are user-programmable.

In my own native field of scientific instrumentation, this is a truly momentous development. My customers and colleagues will discovering new things this enables for years to come.

My own first FPGA application was to fashion an easy-to-use LabVIEW interface to an instrument whose speed otherwise would have required a custom logic circuit. Next came a controller for a novel MEMS nanopositioner from MIT that implemented my patented DAC-resolution enhancement technology, HyperBit™ and Convolve, Inc's remarkable vibration-cancelling Input Shaping® technology, all operating in six degrees of freedom simultaneously. Next came a high-speed multi-axis analog interface to a nanopositioning controller that didn't have one. Next came some contributions to a customer's novel fast controls for... well, I probably shouldn't say since publication is still pending, but it involves manipulating molecules and measuring forces on a sub-sub-nanometer scale.

...Did I mention those were all done with the same NI card, with reusable, modular code that could be emailed around and ported from application to application just by dropping an icon in and wiring it together? These applications were previously unapproachable without a major custom hardware/software design effort. I did each of 'em at my desk in a few hours. Or on airplanes. Or on my lap-- I implemented HyperBit™ on the FPGA one evening while relaxing on my couch.

Spinning multiple parallel processes on an FPGA is easy, and now multicore processors offer some of the same capabilities as a standard feature of new PCs. That, folks, is a revolution.

A video of the Industry Experts panel on "Breakthrough Innovation" can be viewed at http://www.ni.com/niweek/keynote_videos.htm -- click on "Industry Experts Panel." All the keynotes make for fascinating watching and are recommended.

No comments: