Intel open-source project hopes to boost multicore apps

Intel is hoping to boost the market for its multicore processors by turning a product that was designed to ease C++ programming into an open-source project.

The company last week announced the release of its Threading Building Blocks (TBB), a library of templates for developers who are creating applications that execute computing instructions in parallel, rather than in a sequence. Intel said it opted for the GNU General Public License Version 2 for TBB, though it will continue to support a commercial version of the product that costs $299 U.S. and includes a year of technical support.

Parallelism in software is important to Intel because it means that instead of performing one task after another, an application could do two things at once. This would show off the power of multicore processors, which pack more than one "brain" inside a CPU. Intel released TBB around this time last year and supported Windows, Mac OS and Linux. Some users, however, were telling the chip maker they might need it to work with other operating system platforms such as Sun's Solaris or the BSD versions of Unix. That was one of the reasons for the move to open source, said James Reinders, a director with Intel's software division.

"Even if we promised to do every port, as long as it was a product from Intel or not something available through other means, there was this fear you might code to this new standard and Intel would quit supporting the product, and people would be stranded," Reinders said.

Intel is the official "maintainer" of the TBB open-source project for now, but that could change if more developers get involved, Reinders said. Peter Buhr, a computer science professor at the University of Waterloo, said Intel's decision to transition TBB to the open-source community is probably a political move to promote the adoption of multicore processing.

"It's no easy thing to get all of computer science en masse to produce software with more threads," he said. "It's better to give away the software, to get it out the door. Then they'll sell $200 million in hardware. It's like advertising money: You spend it not because you get a direct benefit from it, but because it sells your product."

Reinders acknowledged that TBB is intended to make multicore applications more commonplace. "Absolutely, they're coupled. The hardware itself is still in early stages," he said. "We think C++ is likely to be the area where more development is done for multicore, at least early on. For performance-oriented applications, it's often the underpinnings on a great deal of stuff."

Buhr, who was the principal designer and primary developer of a profiling and debugging tool kit, said C++ was not designed with concurrency in mind back in the 1980s. Those kinds of features have been slowly added over the past 20 years, but they don't always work. Intel's TBB is only one option among many, and even it has its limitations.

"If you were writing a Web server or an application that handles transactions in a database, you would potentially need a different kind of concurrency -- controlled concurrency," he said. "It's not that TBB wouldn't work, but you'd have to sort of bend it or twist a little bit to do that style."

Reinders said TBB was seeing its first successes in multimedia applications that manipulate audio or video files, as well as some scientific software programs. Like many other open-source projects, Intel is also keeping its eye on the GPL's third release to see whether that license would be a good fit for TBB, he said.

Also see: Blog: Intel opens the threading kimono

This story, "Intel open-source project hopes to boost multicore apps" was originally published by ComputerWorld-Canada.

Copyright © 2007 IDG Communications, Inc.

7 inconvenient truths about the hybrid work trend
Shop Tech Products at Amazon