Intel on Monday is shipping three threading tools to enable developers to better take advantage of newfangled multicore processors. The tools include Threading Building Blocks 1.0, a C++ runtime library to introduce threads to an application; Thread Checker 3.0, a threading analysis tool to minimize the potential for errors, and Thread Profiler 3.0, which provides insight into how application threads interact. Threading Building Blocks is a new product; the other two offerings are upgrades to existing products.
Working with existing development tools, Intel's tools help programmers exploit parallelism in multicore systems, Intel said. The products work with other Intel tools and understand locks. They also function with OpenMP technology for threaded applications and other parallel constructs.
Intel wants to offload the need for developers to do hand-coding to manage threads, said James Reinders, director of marketing and business development for Intel's software development products group. "We're finding that that's something that in general developers should avoid," Reinders said.
Threading Building Blocks features a template library for C++ to allow parallelism to be expressed. Developers write an application once that automatically recognizes available cores and scales performance. The tool works with Windows, Linux, and Mac OS on platforms using Intel, Microsoft and GNU compilers. The library can be used with threading programming interfaces such as Windows, Posix and OpenMP threads.
The new versions of Thread Checker and Thread Profiler feature support for 64-bit systems. Thread Checker 3.0 adds a command line capability so it can be used with quality-assurance suites; the command line interface supports command line scripts that run without human intervention. Linux support is new for Thread Checker 3.0.
Thread Checker and Thread Profiler both can now be integrated into the Visual Studio 2005 development platform.
Thread Checker finds a class of bugs that can only exist in parallel programming, Reinders said. These include data race issues, in which one thread computes something and another thread uses the results, and deadlocks in threads. "Both of them happen because of using locking improperly," Reinders said.
Data race bugs are "particularly insidious" because they may properly work some times but not other times, Reinders said.
At the Roxio division of Sonic Solutions, Intel's tools have been used to deal with data race issues. "We were able to use the tools to try to diagnose some threading [issues] and they basically helped us track down some things we might not have found without very strict code reviews," said Dan Staheli, development team lead at Roxio, which builds multimedia software. Staheli said he did not use the tools himself but his team did.
Thread Profiler 3.0, meanwhile, shows what each thread is doing and whether a thread is doing useful work or sitting idle. Developers get insight into how application threads interact and parallel performance issues are pinpointed.
Threading Building Blocks 1.0 and Thread Profiler have a suggested price of US$299. Thread Checker 3.0 is priced at US$999, or US$499 for a version supporting Linux with just the command line interface.