English | 中文 | Русский | Français
2,602 Posts served
8,351 Conversations started
An article in this past Saturday's Wall Street Journal (WSJ) titled "Racing to Gain Edge On Multicore Chips" talks about an effort being jointly funded by Intel and Microsoft for research on programming techniques suited for multi/many core computers. The article talks about the predicted many-core future:
Intel and rival Advanced Micro Devices Inc. now have four-processor offerings, but companies predict the advent of "many-core" chips with dozens or even hundreds of microprocessors.
and about the problems such computers present to software developers:
"Everybody is madly racing toward multicore technology, and they don't have a clue about how to program it," said William Dally, a professor of computer science at Stanford University.
Of course, this is precisely the problem that Threading Building Blocks is designed to address. Having worked on the TBB open source project since the project was launched at OSCON last July, TBB continues to look like an excellent solution to the multicore problem to me. I wish TBB had been around in 1993 when I first started developing mathematical modeling and simulation software for operation on multiprocessor Sun machines!
But, who needs multithreaded programs???
Over and over, I've heard the question: "who really needs multithreaded programs on their home (or office) desktop computer?" This question reminds me so much of questions from the past, like "Who really needs more than 640 KBytes of memory on a PC? How could you ever use so much memory???"
The WSJ article includes some answers to the question of how all those dozens or hundreds of cores might be used. Here are a few snippets:
- jobs such as three-dimensional graphics
- automatically picking out faces from large databases of photographs
- helping a handheld device photograph and analyze the calorie content of each meal
- in the financial sector, ... millions of transactions need to be swiftly analyzed for patterns that can make investors money
Now, some of these applications may sound non-critical for the future survival of society. But that doesn't mean people won't want these apps if they become available. "Find me all the pictures in my thousands of digital images that include Sally" or "find me all the pictures on my hard drive that include both Sally and Toby"--I can easily imagine that application becoming one that is taken for granted in the relatively near future. "What? You don't have that app? How do you live without it? Huh? You still manually search through your digital images???"
It doesn't have to be a life-critical application in order for it to be an app that everyone wants to have.
"The future is really around media-rich applications," said Phil Hester, Advanced Micro's chief technology officer, who argued those jobs are particularly suited to chips with multiple types of microprocessor cores.
I've long agreed with this. And I think the investment by Microsoft and Intel is further evidence that the day when highly computational multithreaded applications are a standard on every home and office desktop (and even on many hand-held devices) is on its way.
I also expect that TBB will play an important role as all of this unfolds...
Kevin Farnham, O'Reilly Media TBB Open Source Community, Freenode IRC #tbb, TBB Mailing Lists
