Intel® Array Building Blocks (Intel® ArBB) offers a standards compliant C++ library backed by a runtime known as our virtual machine (VM). This virtual machine generates and manages threads and vector code, via machine independent optimization, offload management, machine specific code generation and optimizations. It has a scalable threading runtime (based on Intel® Threading Building Blocks).
Intel ArBB includes a C API called the "data-parallel virtual machine." The Intel ArBB C++ API (e.g. dense, nested and all related types and operators) that developers use now is built entirely on top of this C API. Additionally, the VM enables a path to new language frontends and easy porting of domain-specific languages to take advantage of the many benefits of the Intel ArBB data-parallel framework.
The arbb_vmapi.h header file, installed as part of the Intel ArBB package, provides declarations for all of the VM functions.