使用Xeon Phi和基于JVM的语言

时间:2013-06-25 23:53:37

标签: scala parallel-processing hardware xeon-phi

是否可以使用基于JVM的语言(如Scala)来使用Xeon Phi?有什么例子吗?

3 个答案:

答案 0 :(得分:5)

根据他们的常见问题解答,目前尚不支持Java:

http://software.intel.com/en-us/articles/intelr-xeon-phitm-coprocessor-february-developer-webinar-qa-responses

问:有编码的Java选项吗? 答:还没有。

答案 1 :(得分:5)

它没有得到官方支持,但是,您仍然可以自己构建JVM。

我使用JamVM构建了GNU Classpath并稍微修改了libffi版本。您也可以尝试使用HotSpot的零汇编程序版本。因此,您可以获得极慢的虚拟机 - 即使使用60个线程,它也比我的四核移动i7 CPU慢10倍。另一方面,它是测试同时在数十个线程上运行的Java实现的可伸缩性的绝佳机会。

另一个想法是使用Aparapi工具 - 将Java字节码的部分内容翻译成OpenCL并在Phi上执行。

答案 2 :(得分:1)

虽然在Xeon Phi核心上运行Java肯定还有很长的路要走,但在Java程序中相对容易地获得Xeon支持的一种可能方法是使用Aparapi(https://github.com/aparapi/aparapi),一个库它可以在运行时将一部分java字节代码交叉编译为OpenCL,并将其作为OpenCL内核执行(Xeon Phi支持OpenCL,就像任何现代GPU一样)。

将现有Java代码转换为Aparapi内核运行是一个非常重要的过程(从内核run()方法调用的代码本身需要基本上无对象 - 字段,参数和本地必须是基元或数组原始人)。但是,如果需要大规模并行化的瓶颈数量很少,那么实现这一目标可能不会是一个巨大的麻烦。

这也可以让您的项目受益于其他超级计算硬件(如Nvidia Tesla)的大规模并行化。

我怀疑在Xeon Phi上运行“任何旧的”Java不太可能得到支持,即使是这样,Phi上OpenCL的优化仍然会更加优越。