是否可以使用基于JVM的语言(如Scala)来使用Xeon Phi?有什么例子吗?
答案 0 :(得分:5)
根据他们的常见问题解答,目前尚不支持Java:
问:有编码的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的优化仍然会更加优越。