Return On Investment (ROI) with Respect to Intel® ArBB Coding

Intel® ArBB bridges the gap between productivity and performance languages through the concept of metaprogramming. Domain-specific metaprogramming languages in the past have enabled people to create more intuitive abstractions of their scientific problems. Behind the scenes more intricate code needed to truly solve the problem is generated. The fact remains that these languages are usually useful to only one area and offer no vectorization or threading. Intel ArBB, however, is designed to be applicable to the widest variety of domains without compromising performance. Intel ArBB achieves high performance with a high level coding interface by generating vectorized instructions and threading tailored for the architecture in question at runtime.

Suppose that you have k1…k10 kernels where each kernel takes t1…t10 time to run. You as the developer choose to put in the time to hand-tune two of the kernels and leave the rest unoptimized. Now suppose that we have ten of those same kernels implemented with Intel ArBB, where ft1…ft10, ht1…ht10 indicates the running time for Intel ArBB and hand tuned kernels, respectively. We argue that your Intel ArBB project will run faster than your project that has two out of the ten kernels optimally parallelized and vectorized.

Below is an abstract representation of the effort needed to obtain desired parallelism/performance. The top 10% of programmers may choose to make the strong effort to deliver optimal performance, but what about the other 90%? With significantly less effort you can reap the benefits of vectorization and parallelization with Intel ArBB and move on with your project ready to adapt to future architectures.

For more complete information about compiler optimizations, see our Optimization Notice.