Visit additional Tabor Communication Publications
July 27, 2007
This week Intel once again proved it is serious about getting multicore tools into the hands of developers. On Tuesday, the company announced it was making its Threading Building Blocks (TBB) template library available to the open source community under the GNU General Public License. The library extends the C++ language in order to make it easier to write scalable, parallel applications for multicore processor environments. Intel will still sell the TBB product commercially, as well as bundle it with their own C++ compiler.
In a nutshell, the TBB template library provides high level C++ constructs for concurrency via a task-based model. This enables developers to avoid some of the thornier aspects of parallel programming, like low-level thread management and maintaining thread-safe data. By offering platform-independent methods to express parallel algorithms, declare concurrent containers (thread-safe data objects), and do scalar memory allocations, the programmer is freed from dealing with OS-level threads, locks, and mutexs. For those who need more low-level control, TBB also offers access to atomic operations and the task scheduler. Encapsulated in the implementation is the flexibility to transparently scale the level of parallelization as applications are moved to processors with more (or fewer) cores.
While early adopters of the product were impressed by its capabilities, they also had some reservations. According to James Reinders, Intel's director of software development products, the decision to take the year-old product to the open source community was driven by customer concerns about investing in a proprietary programming model and their desire to see the software supported on a wider range of OS/hardware platforms. Although Intel has contributed to open source projects in the past and continues to do so, this represents the first time the company has moved a commercial product into the open source realm.
The fact that Intel is willing to let its software be used on non-Intel processors is an indication of the company's interest in the multicore ecosystem. In truth, even before it went open source, TBB could run on AMD's x86 chips as easily as Intel's. So taking TBB to the open source community isn't going to give its arch-rival an additional edge. For Intel, the chipmaker with the largest share of the general-purpose processor market, the calculation is that it has the most to gain from more widespread parallel software tools. When a rising tide lifts all boats, the Queen Mary benefits the most.
Generally speaking, open source has proven to be the most effective way to spread software across hardware platforms. Currently supported on x86 (32 and 64 bits) on Linux, Windows and Mac OS, TBB will soon have source builds for G5/Mac OS as well as x86/Solaris and Sparc/Solaris 10. FreeBSD source builds are also in the works. To help kickstart the TBB open source project, Reinders says that Intel will be adding engineers to the effort.
A website for the open source project has been set up at www.threadingbuildingblocks.org. And for those who want to delve even deeper, you can now buy Reinders own TBB book -- Intel Threading Building Blocks, Outfitting C++ for Multi-core Processor Parallelism. This O'Reilly Nutshell Handbook is geared for the programmer who may not be conversant in concurrent programming.
However, TBB is not an all-inclusive parallel programming model. It's specifically designed to take advantage of a multicore-based, shared memory environments, as opposed to a distributed memory model found in cluster architectures. Intel reports early success with application segments like digital content creation, animation, financial services, electronic design and automation and design simulation. At this point, the TBB implementation can scale up to 32 cores or so, giving it at least a few years of breathing room as processors catch up. There has been some interest in applying TBB to high performance accelerators like the Cell processor, GPUs or even FPGAs. However, these DMA-based architectures, with lots of parallel units for static data parallelism, are not a great fit for TBB.
Although not suitable for MPI-based applications, if users are interested in using a hybrid approach combining MPI with node-based multicore parallelism, Reinders thinks TBB might worth considering. But even he admits that the hybrid programming model on clusters, hasn't taken off yet due to the extra programming burden. At this point, most users are content to rely on MPI implementations that make use of node locality to optimize thread management and communication.
Looking forward to manycore processors, TBB will need to address architectural changes that will arrive when core counts start getting into the triple digits. Intel's own Terascale program is developing processors at this scale. As the core count begins to ratchet up, designers will likely be forced to utilize non-uniform memory architectures (NUMA) to support reasonable memory access times. In order to keep the level of abstraction consistent, TBB will have to pay attention to memory locality and find a way to automate data layout for the user. Manycore architectures will also attract a more varied range of software as they become hosts for workloads that would have required an entire mainframe or cluster in the past.
"TBB is good at programs which are computationally intensive, but when you get into event-driven applications or programs with a lot of I/O, TBB is not ready for that yet, explained Reinders." And that's an area of interest for us, because as we get to manycore, programs will be doing more diverse things; we need to be willing to let a processor stall on I/O occasionally. We'd like to expand the programming model to support that."
Jun 18, 2013 |
The world's largest supercomputers, like Tianhe-2, are great at traditional, compute-intensive HPC workloads, such as simulating atomic decay or modeling tornados. But data-intensive applications--such as mining big data sets for connections--is a different sort of workload, and runs best on a different sort of computer.
Jun 18, 2013 |
Researchers are finding innovative uses for Gordon, the 285 teraflop supercomputer housed at the San Diego Supercomputer Center (SDSC) that has a unique Flash-based storage system. Since going online, researchers have put the incredibly fast I/O to use on a wide variety of workloads, ranging from chemistry to political science.
Jun 17, 2013 |
The advent of low-power mobile processors and cloud delivery models is changing the economics of computing. But just as an economy car is good at different things than a full size truck, an HPC workload still has certain computing demands that neither the fastest smartphone nor the most elastic cloud cluster can fulfill.
Jun 14, 2013 |
For all the progress we've made in IT over the last 50 years, there's one area of life that has steadfastly eluded the grasp of computers: understanding human language. Now, researchers at the Texas Advanced Computing Center (TACC) are utilizing a Hadoop cluster on its Longhorn supercomputer to move the state of the art of language processing a little bit further.
Jun 13, 2013 |
Titan, the Cray XK7 at the Oak Ridge National Lab that debuted last fall as the fastest supercomputer in the world with 17.59 petaflops of sustained computing power, will rely on its previous LINPACK test for the upcoming edition of the Top 500 list.
05/10/2013 | Cleversafe, Cray, DDN, NetApp, & Panasas | From Wall Street to Hollywood, drug discovery to homeland security, companies and organizations of all sizes and stripes are coming face to face with the challenges – and opportunities – afforded by Big Data. Before anyone can utilize these extraordinary data repositories, however, they must first harness and manage their data stores, and do so utilizing technologies that underscore affordability, security, and scalability.
04/15/2013 | Bull | “50% of HPC users say their largest jobs scale to 120 cores or less.” How about yours? Are your codes ready to take advantage of today’s and tomorrow’s ultra-parallel HPC systems? Download this White Paper by Analysts Intersect360 Research to see what Bull and Intel’s Center for Excellence in Parallel Programming can do for your codes.
Join HPCwire Editor Nicole Hemsoth and Dr. David Bader from Georgia Tech as they take center stage on opening night at Atlanta's first Big Data Kick Off Week, filmed in front of a live audience. Nicole and David look at the evolution of HPC, today's big data challenges, discuss real world solutions, and reveal their predictions. Exactly what does the future holds for HPC?
Join our webinar to learn how IT managers can migrate to a more resilient, flexible and scalable solution that grows with the data center. Mellanox VMS is future-proof, efficient and brings significant CAPEX and OPEX savings. The VMS is available today.