Intel this week released the next versions of its programming analysis tools: VTune Performance Analyzer 9.0, Thread Profiler 3.1 and Thread Checker 3.1.
The tools help programmers analyze machines for performance execution and correctness. In addition, Intel released a new Threading Building Blocks library, version 1.1, which includes various algorithms built to run code in parallel on multiple CPU cores.
As the C++ standards committee continues reviewing parallelism topics such as memory consistency models, there are only a couple of product choices on the market for the average developer who wants to take advantage of Intel's new multicore architecture. Intel's product is the CRN Test Center's product of choice.
Today, most developers lack the understanding or lack mainstream commercial resources to build parallel systems. In contrast, game developers do not have this problem because they are only interested in single program execution.
But writing transactional systems is another matter. Business applications that use transactional-based execution have never been able to exploit parallelism and instead use clustering and virtualization to manage scalability. With the release of its Threading Blocks library, Intel is seeking ways to close that gap.
Part of the problem is that parallel architectures have not changed. What's more, most business programmers think of parallel execution in terms of data or single task parallelism. Threading is also too difficult to orchestrate across programs.
While compilers are extremely efficient at optimizing opcodes operations, languages such as C++, including libraries and programming techniques, are at a disadvantage because they are not adequately designed to take direct advantage of the new processor technologies.
Most Windows programmers, for instance, use Windows threads in their programs. However, managing Windows threads is a complex process, so most developers shy away from using them. Taking thread programming to the next level by combining variables from multiple program instances in memory is almost unheard of. Though multiple threads can run on separate cores, orchestrating those threads to share variable values is a daunting task.
Intel's new Threading Block technology is designed with extensions to simplify the threading process on multiple processor cores. Like the standard template library (STL), Intel's threading library uses C++ templates to manage data structures. In fact, Intel's library replaces many STL features. The library includes queues containers, hash tables, loop structures and many other STL features that are thread-safe.
With Intel's threading library and Thread Checker, developers only need to understand how they want to synchronize their parallel program executions. But this is a sticky point for developers because synchronization is at the heart of how multiple programs communicate in memory. Fortunately, Intel's threading building blocks simplify the process using templates.
Intel is a unique position in that its compiler and related tools can help developers scale their applications from single-core PCs all the way up to enterprise servers with 16 CPUs. Typically, developers must change many of their debuggers and compilers to be able to take advantage of large servers. With managed code from .Net and Java, developers are oblivious to how to use multiple cores to optimize performance because they are completely dependent on those platforms to control parallel execution.
Intel's technology is limited to a single multicore system, so it is not able to scale up to a grid architecture. As it stands right now, grid computing architectures are coarse-grained parallel systems that perform single application tasks but cannot orchestrate or pass memory values between multiple programs across a grid.
VTune Performance Analyzer 9.0, Intel Threading Building Blocks 1.1, Intel Thread Checker 3.1 and Intel Thread Profiler 3.1 are available now. VTune 9.0 is priced at $699; Threading Building Blocks 1.1 for Windows, Linux and Mac OS X at $299; Thread Checker 3.1 for Windows and Linux at $999 and $499, respectively; and Thread Profiler 3.1 for Windows at $299.