Intel Workshop - October 2005
Posted on: 10/10/2005 05:00 AM

Busses Galore

Having all this processing power and memory bandwidth is all well and good, but to take advantage of it, Intel had to rethink their busses. We've all known for quite some time that the "P4" bus was running out of steam, especially after seeing what Hyper-Transport has done for the Opteron. Intel has given the new Xeons some major upgrades in the bus department by way of independant busses for the processors and memory. Keen eyes probably noticed the new, independant busses in the images posted on the previous pages.

With each processor getting its own quad-pumped 1066mhz FSB, and each memory channel getting its own direct path to the MCH, things are definitely looking up in the bandwidth department. Here it is in a nutshell.

Software Tools

As we've seen in the past with MMX, SSE, SSE2 and even Hyper-Threading, there is a direct and critical relationship between hardware manufacturers like Intel and software developers. The moment Intel made "dual-core for everyone" their ultimate goal, they realized the amount of buy-in that would be required from software developers to come up with applications designed to take advantage of multiple cores. On the second day of our workshop in Portland, Intel scheduled a presentation by two valued members of their threading tools department. Their presentation centered around three of their software development products: VTune Performance Analyzer, Thread Checker and Thread Profiler.

VTune Performance Analyzer is a valuable tool for software developers as it can analyze code and identify possible performance bottlenecks. If you look on Intel's website you'll see testamonials by companies who rely on this application every day. Most notably would be NVIDIA, who uses VTune when developing their graphics card drivers. It supports Java and .NET and there is even a Linux version available.

The presenters spent most of their time discussing Intel's Thread Checker. In a simple example, one of the presenters wrote a small application designed to count prime numbers in a given range. After running the application several times he showed that he was not getting the same answer each time. He showed us that using Thread Checker quickly identified that the code suffered from a data race. It allowed him to quickly debug and fix his program.

After his sample application was working correctly, he set out to parallelize it by analyzing it with Intel's Thread Profiler. This tool will help software developers visualize and understand thread behavior over time. Using a couple of simple OpenMP calls, he was able to transform his application into an app capable of fully utilizing every processor core in his test system. Ultimately it reduced processing time dramatically. Thread Profiler creates a timeline of execution for your application which is helpful for identifying even the smallest amount of overhead.

Hooz and I aren't software developers by any stretch of the imagination, but we were both mesmerized by this presentation. The combination of Thread Profiler and Thread checker would certainly make the life of a developer easier. Whether you're just wanting to debug code more quickly or create an efficient, threaded application, you may want to take a look at Intel's development tools.

Intel was kind enough to give us licenses for these software packages, so don't be surprised if we post additional articles on this topic in the future. A GCC vs. Intel C++ Compiler showdown maybe?

Printed from (,4.html)