The multi-core saga continues

Apr 11, 2007 10:06 GMT  ·  By

In the latest news, Microsoft isn't doing so well (what a surprise), and it makes more and more sense why Bill Gates stepped down from the company's throne. Windows Vista didn't sell as much as they expected it would, people are suing over the Windows Vista Capable Logo, and all in all, there is rising competition in the form of better Linux distributions, such as Ubuntu, for example.

But on the other side, taking Intel into our sights, a thought crossed my mind, and it's simple, really. If Intel builds a multi-core processor, that means the processor would yield better performance than previous versions, but the truth is that they are having a lot of problems with their processors in the form of non-optimized programs that could take advantage of the many cores it has. I've said this before, in order for a software or game developer to - lacking a better word - develop an application or a game for a multi-core processor, the whole programming ordeal becomes tedious at best.

Ok, so let's take this problem and put it in somebody else's hands, such as the people that made the processors. What if Intel were to develop a processing unit, or another type of execution branch that would allow for the processor to take each thread of information sent by the computer's operating system and run it in an available core; if the first one is busy, goto the second core, if core2 = busy then goto core3, and so on. I'm not a programmer, but I'll tell you this, this is possible, nobody can say otherwise, we've cracked open the atom and we can't write a subroutine for a processor to take advantage of, there has got to be a way to do this.

And more importantly, if I've thought of this, the guys over at Intel surely must have stumbled upon the idea some time ago, but there could also be the case of a planned introduction of this "technology" onto the market. Intel is preparing its 80-core processor, and its arrival on the market could signify two things: 1) they could be preparing the market and the programmers with the multi-core idea, so that when the processor becomes available, a viable solution could be in place; 2) this very idea of a processor handling the processing threads on its own, that I've presented, could be their solution, a solution they've discovered "just in the nick of time."

Well, up until that point, there still is time for something to happen, and Intel has another "viable solution" for multi-core processing. They have developed a set of applications that allow, of course, developers to create "reliable, scalable applications (...) for the latest multi-core processors (...) and newest operating systems - Microsoft Vista, Novell SUSE Linux Enterprise, Red Hat Enterprise Linux and Fedora Core." These programs handle the concept of parallelism, which is the way multi-tasking is often called.

James Reinders, director of marketing for Intel's Developer Products Division said: "Our Intel Core 2 processors have essential new profiling capabilities we're taking advantage of for the first time in our VTune Analyzer 9.0. Since nearly all systems shipping with Windows Vista will be multi-core systems, developers targeting Vista have been asking us for these parallelism tools. Developers on all operating systems want their move to parallelism well supported by development tools and we're committed to keeping up with our aggressive pace of supporting developers in as many ways as possible."

One of the tools is called Intel Thread Checker 3.1, it detects errors in coding of parallelism under Windows and Linux. Then there is Intel's Thread Profiler 3.1, designed only for Windows this time, "provides developers with insight into how application threads behave" and helps them handle bottlenecks. This version also offers "selectable stackwalking" for faster analysis and display. Then there is Intel Threading Building Blocks 1.1 and Intel Vtune Performance Analyzer 9.0; these also serve the purpose of helping developers write stable code for multi-core solutions.