Intel Array Building Blocks

2010 - 2012
dead
five years of research and one acquisition went into this. arbb came out of intel's ct project and the rapidmind team intel bought in 2009, and it offered data-parallel c++ in which programs could not create data races or deadlocks by construction. it never got past beta 6. in october 2012 intel discontinued it in favor of cilk plus and threading building blocks, and cilk plus was itself deprecated five years after that.

~ the obit ~

Around 2007 the free lunch ended. Clock speeds had stopped climbing and the extra transistors were going into more cores, which meant the performance was still arriving but you now had to write code that could use it. Intel had an obvious commercial interest in programmers managing that transition, and it funded several attempts at once.

One of them was Ct, a parallel programming model started in 2007 inside the Tera-Scale research program. Another arrived by purchase: on 19 August 2009 Intel acquired RapidMind, a small company out of Waterloo, Ontario, whose platform compiled ordinary-looking C++ into code for whatever parallel hardware happened to be underneath. Intel merged the two and the result was released on 17 May 2010 as Array Building Blocks, introduced properly that September.

The pitch was that you would describe the computation and not the parallelism. You wrote operations over whole arrays, and ArBB's dynamic compiler decided at runtime how to spread that across however many cores were present, or onto an Intel Many Integrated Core card, without your source mentioning either. The strongest claim in the documentation was negative: by default an ArBB program could not create a data race or a deadlock, because the model gave you no way to express one. For anyone who had spent a week finding a race condition that only showed up on sixteen threads, that was the entire sales pitch in a sentence.

~ the rap sheet ~

Born17 may 2010, after three years as the ct research project
Peak1.0 beta 6, august 2011, the furthest version it ever reached
Killedoctober 2012
Lifespan2 years, 5 months
Made byintel, on technology from ct and the rapidmind acquisition
Killed byintel, redirecting to cilk plus and threading building blocks

~ never finished ~

Look at the version history and the ending is already visible. The last thing Intel shipped was 1.0 beta 6, in August 2011. There is no release after it and no 1.0 final, ever. The infobox field for the latest release version is simply empty, with the beta sitting alone in the preview slot below it.

Fourteen months later it was over. In October 2012 Intel discontinued the project and told people to use Cilk Plus or Threading Building Blocks instead. ArBB had been one of three technologies Intel marketed together under the Parallel Building Blocks name, and it was the one that got dropped. There was no farewell, just an article on the Intel developer site going quiet and then away.

~ what it was killed for ~

The replacements did not all hold. Threading Building Blocks is still here and still maintained, now as oneTBB. Cilk Plus is not. GCC 7.1 marked it deprecated in May 2017, Intel announced in September 2017 that it was going away with the 2018 tools release, and GCC 8 stripped it out, taking 82,000 lines of code with it. Developers who migrated off ArBB because Intel told them to migrated again five years later, and were pointed at OpenMP and TBB.

Of the three things under the Parallel Building Blocks banner, one survives. ArBB died first and Cilk Plus outlived it by five years.

~ from where I sit ~

This is my working category, which makes the distance an odd one to describe. I write computer vision for drones in Ankara, and getting arithmetic to go faster on the silicon in front of me is most of the job. But I came to the problem after this argument had been settled: by the time it was mine, you reached for CUDA if there was a GPU and for a vectorized library if there was not, and the question of a single portable abstraction over all of it had quietly stopped being asked. ArBB was from the window when that still looked winnable. I never wrote a line of it, and the reason is that Intel withdrew the answer before I showed up with the question.

~ what it was actually right about ~

The idea did not die with the product. Writing array operations and letting a compiler decide the parallel strategy is now ordinary practice, and the places it ended up are NumPy and PyTorch rather than a C++ library from a chip vendor. Halide and SYCL took the separation of algorithm from schedule further than ArBB managed. The research is also still readable: the ArBB papers were published, and a 2012 arXiv paper on data-parallel programming with it came out weeks after Intel had already shut the project down.

~ leave a rose ~

an anonymous tribute. one rose per visitor per day.

@}-->-- ... roses left here

~ leave a wreath ~

a rose fades by morning. a wreath stays on this grave for good, with your name on it.

from $1, paid once through stripe. it keeps the graveyard running: the hosting and the nightly digging. adopt it and the headstone reads "maintained in memory by" you. the groundskeeper plants new wreaths at the next tending, usually within a day.

» one email a week: new graves and the anniversaries of the dead. subscribe

~ leave a note ~

visitors before you have left these graveside notes. anonymous welcome.

other software: Stacker, Infopop (UBB.classic), Microsoft Entertainment Pack, SuperCalc

also died in 2010-2014: Boyfriend Maker, TwitterPeek, Stagecast Creator

« previous  ·  random  ·  next »