Most Recent Build Posts RSS

How to Use Debugging, Exception Features in TBB

Threading Building Blocks (TBB) includes a set of exception handlers that are carefully crafted for multithreaded support, as well as code for debugging. In this blog, Jeff Cogswell gives a brief introduction to both features. Writing parallel code can sometimes be difficult and can result in bugs and strange errors. …

Read Full Post Posted in Build | Leave a comment

Mixing C++11 and TBB Threads

Threading Building Blocks (TBB) includes a set of threading class that live in the standard namespace. How well do these fit together with the C++11 classes? Some cases work, and some don’t. Jeff Cogswell clears it up. When you’re using Threading Building Blocks (TBB) with a C++11 compiler, you can …

Read Full Post Posted in Build | Leave a comment

Faster Parallel Code with ‘Lockless’ Programming

When you read about parallel programming, you’re likely to hear about the importance of lockless programming. What exactly is this? Why is it important? Jeff Cogswell walks you through the answers to these questions and more. As you learn more about parallel programming, you’re going to occasionally see people talking …

Read Full Post Posted in Build | Leave a comment

Programming Parallel Sections with OpenMP

OpenMP lets you declare blocks of code that will run in parallel with each other. These blocks of code are called sections. Jeff Cogswell shows you how to get them working.

Read Full Post Posted in Build | Leave a comment

Using Atomic Operations in TBB

Threading Building Blocks (TBB) can make use of low-level processor operations to accomplish atomic operations. Jeff Cogswell looks at the template functions available to use atomic operations in TBB.

Read Full Post Posted in Design | Leave a comment

OpenMP Atomic Operations Relieve Race Conditions

Simple operations such as reading a variable and then modifying it based on the value can be problematic in parallel code. Atomic operations in OpenMP help alleviate the race conditions that can result. Jeff Cogswell shows you how. Tasks that seem trivial in serial programming are sometimes problematic in parallel …

Read Full Post Posted in Build | Leave a comment

Speculative Locks Are Powerful When Used with Caution

Speculative locks work closely with Transactional Synchronization Extensions (TSX), allowing for multiple threads to obtain a lock simultaneously. The technology is difficult to use and requires careful considerations on when to use it. Jeff Cogswell gives you the details. Back in April, I talked about Intel’s Transactional Synchronization Extensions (TSX) …

Read Full Post Posted in Build | Leave a comment

The Future of Reducers in OpenMP

The Intel compiler allows you to perform simple operations with reducers. Jeff Cogswell explores how to use min and max reducers, and looks at what the future holds for reducers. In a recent video, I explained how to use reducers in OpenMP. Using OpenMP pragmas, you can declare that a …

Read Full Post Posted in Build | Leave a comment

New MPI 3.0 Features Embrace Parallel, Clustering Tech

Message Passing Interface (MPI), which originated 20 years ago in 1994, has now received a complete overhaul with version 3.0. Intel’s MPI Library 5.0 implements the changes to the 3.0 standard. Jeff Cogswell highlights the changes for you. The newest version of the Message Passing Interface is now available, and it …

Read Full Post Posted in Build | Leave a comment

How to Create Reducers with OpenMP

When multiple threads need to work together to perform a combined mathematical operation such as a sum, one way to avoid race conditions is using reducers. In this video, Jeff Cogswell shows you how to accomplish reducers with OpenMP.

Read Full Post Posted in Build | Leave a comment