by Zhang Zhang
Intel® Array Building Blocks (Intel® ArBB) is a parallel programming solution designed specifically for dynamic data parallelism. It is the newest component of Intel® Parallel Building Blocks (Intel® PBB), which currently also includes Intel® Threading Building Blocks (Intel® TBB) and Intel® CilkTM Plus.
What makes Intel® arBB unique is a runtime system that is capable of doing retargetable and dynamic compilation. The runtime system includes a virtual machine (VM) with a JIT compiler that can adapt to the target architecture by generating parallelized, vectorized, and optimized code dynamically. On top of this VM, Intel ArBB is implemented as an embedded language whose syntax is implemented as a C++ library API compatible with the ISO C++ standard. The programming model imposed by this API supports structured, deterministic, and race-free data parallelism.
Developers programming in Intel ArBB focus on algorithms. They do not need to deal with low-level architectural details, such as SIMD instructions, thread management, and intrinsic functions, to get good performance. The runtime system takes care of those. However, there are certain things that a programmer can do to assist the runtime system in generating high-performance code. There are also areas in the Intel ArBB API that need to be well-understood in order to avoid errors. This article summarizes these tips and explains them using code examples.
Full Story (Go to Page 12)



0 responses so far ↓
There are no comments yet...Kick things off by filling out the form below.
You must log in to post a comment.