Most Recent Tune Posts RSS

Fix Parallel Memory Problems with TBB

Programming for multicore and multithreaded applications can bring up some odd memory issues. Threading Building Blocks has template classes that can help you manage your memory. But this is just the tip of a much bigger issue: You need to know the fundamentals of processor architecture. In this blog, Jeff …

Read Full Post Posted in Build | Leave a comment

OpenMP Execution Environment Functions

The OpenMP specification includes several runtime functions that are declared in the omp.h header file. These runtime functions can help you set and get current runtime threading configurations in OpenMP. Jeff Cogswell explores a few of the functions. When you’re programming with OpenMP, you have access to not only the …

Read Full Post Posted in Build | Leave a comment

Exploring the Different TBB Algorithms

Threading Building Blocks (TBB) has several algorithms you can use. In this video, Jeff Cogswell takes you through a quick tour of them to help you figure out when you can use each one.

Read Full Post Posted in Build | Leave a comment

Testing Out OpenMP 4.0 Features in LLVM/Clang

The Clang compiler, which is part of the LLVM tools, includes a special branch that adds OpenMP support. In this blog, Jeff Cogswell tries out the OpenMP 4.0 features of Clang, and gets some interesting results. Let’s test out the OpenMP 4.0 features in clang. But before getting started, I …

Read Full Post Posted in Build | Leave a comment

Advisor XE: Parallelism Made Easy While You Code

Where will parallel processing give you the greatest gains? What parts of your code will scale from core to core with ease? What errors or sharing problems exist in the code you have today? You can learn all that and more before you do any threading at all by running …

Read Full Post Posted in Build | Leave a comment

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

‘High Performance Parallelism Pearls’: Lessons from the Field

The latest book from James Reinders and Jim Jeffers packs the real-world parallel programming experiences of 69 experts into 28 chapters. “High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches” aims to show readers how to “leverage parallelism on processors and coprocessors with the same programming – illustrating the most …

Read Full Post Posted in Design | Leave a comment

Building the OpenMP Branch of LLVM/Clang

The Clang compiler in the LLVM tools doesn’t support OpenMP by default. But a branch is available that does. Jeff Cogswell shows you how to build this branch and then compile an OpenMP program.

Read Full Post Posted in Tune | 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

How TBB Goes Atomic

Threading Building Blocks includes several atomic functions. But how does it make these atomics work? Jeff Cogswell looks under the hood of TBB to find what assembly code it uses.   Threading Building Blocks  contains several atomic operations that allow you to run lockless parallel applications. In order to accomplish …

Read Full Post Posted in Verify | Leave a comment