Tuesday, December 18, 2007

The difficulties of multiple brains

More and more, all the little computer brains inside our laptops, in our communication equipment, and even in our handheld devices have multiple execution units in them. In other words, the tech guys that make these things have taken, say, two separate computer processors and stuck them into one chip.. and do it in a way that's cheap enough to put these powerful computing platforms everywhere now. As they say, this trend is the (foreseeable) future..

That said, this technology isn't particularly new (it goes back decades, in fact), but what *is* new is their proliferation into everyday devices. Sounds good, right? Well, for the end-user (i.e. you and me!), it is, for sure. This sort of computer architecture makes some really neat applications possible - in ways so much cheaper than the solutions available before. And *we* don't have to worry about what's going on underneath the covers, so to speak, as long as "it works"; we let the engineers and programmers and the rest of the geeksquad take care of that (amen).

But for them, this new development environment can be a nightmare!

You see, to make the best use of the multiple brains on these new computer chips, they have to figure out how to break up their programs (i.e. what they want the computer to "do"), and partition this work across all available resources. And this is a logistical problem that is, for the most part, easier said than done.

Yesterday, the NYTimes published an article about this very topic:

Faster Chips Are Leaving Programmers in Their Dust
By John Markoff
Published: December 17, 2007

It caught my eye because part of my job is to help our customers make the best use of these multiprocessor devices (i.e. my company sells such things), specifically for embedded and communication products. As the article implies, it is a new field of study and development - at least for the mainstream - and, therefore, no one solution is well-established. In fact, there aren't really that many experienced engineers doing this sort of thing right now; the industry has asked all these folks to get-with-it pretty abruptly.

Luckily, I've been doing this bit for a long time now (think: 1999!); as I mentioned, this isn't new technology; I used to work with some network processors that were pretty advanced for their time.. and, in some ways, more powerful than the mainstream stuff I work with now. More importantly (for my career - ha!), the theories are the same, and so I've ended up doing a lot of training and customer talks and so forth the past couple of years.

At a later date, I can bore you with the details.. if you're interested. ;) In the meantime, check out the article; it will give you a taste of what I do at work, as well as a greater appreciation for the advanced technology going into all our next generation computer gizmos.

No comments: