Hello Tim,
thank you for looking into ArBB! It is nice to see people exploring the VM, and we are preparing to further document the API. For now, you started absolutely right by looking into the arbb_vmapi.h header file. A tip would be, to also have a look at the ArBB header files to learn how the ArBB C++ 'frontend' (arbb/cpp) is implemented using the VM API. The C++ API is completely header-only.
Of course, the VM API is intended to permit other languages using the virtual machine to run native on all targets which are supported by Intel ArBB. The first of your 'principle' questions can be answered with 'yes'. However, using Intel ArBB does scale forward also in terms of the supported execution targets. For example, QnA #10 of the FAQ is going to answer this question. Your second question is answered by our FAQ as well (QnA #9, which is repeated below). Last but not least, your third question is taken as a welcome customer input. Please always feel invited to bring up your opinion.
Intel ArBB provides the same cross-architecture advantages as OpenCL
while also providing more abstract programming constructs than OpenCL
does and the additional scalability and application behavior benefits of
dynamic compilation. For example, reductions, scans, data-reordering operators, and also mechanisms to exploit nested parallelism are such constructs.
http://software.intel.com/en-us/articles/intel-arbb-faqs/



OpenCL on ArBB VM ?
Just looking over the documentation and tutorial for ArBB. A most impressive piece of technology and I'm hoping to find time to play with it soon.
I'm pleased to see the VM API is opened up, and comments elsewhere here mentioning that this is intended to permit other DLSs to map to the VM. The obvious questions are: