Использование Xeon Phi с языком на основе JVM


Можно ли использовать Xeon Phi, используя язык на основе JVM, такой как Scala? Есть ли какой-нибудь пример?

3 8

3 ответа:

Он официально не поддерживается, однако вы все еще можете построить JVM самостоятельно.

Я построил JamVM с GNU Classpath и слегка модифицированной версией libffi. Вы также можете попробовать с нулевой ассемблерной версией HotSpot . В результате вы можете получить чрезвычайно медленную виртуальную машину-даже при использовании 60 потоков она была более чем в 10 раз медленнее, чем мой четырехъядерный мобильный процессор i7. С другой стороны, это отличная возможность проверить масштабируемость Java реализации, которые выполняются на десятках потоков одновременно.

Другая идея заключается в использовании инструментаAparapi - части байт-кода Java переводятся в OpenCL и выполняются на Phi.

В соответствии с их FAQ еще нет поддержки Java:

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

Q: существует ли опция Java для кодирования? Ответ: пока нет.

В то время как это, конечно, долгий путь от того, чтобы запустить Java на базе процессоров Xeon Пхи сердечников, один из возможных способов относительно легко получить Xeon на поддержку в вашем Java-программа будет использовать Aparapi (https://github.com/aparapi/aparapi), библиотека, которая может составить подмножества Java байт-код на OpenCL в среде выполнения и выполнить его в качестве ядра OpenCL (процессоров Xeon Пхи поддерживает OpenCL, как и любой современный процессор).

Это нетривиальный процесс преобразования существующего кода Java в ядро Aparapi. (сам код, вызываемый из метода kernel run (), должен быть по существу Безобъектным-поля, параметры и локальные объекты должны быть примитивами или массивами примитивов). Но если число узких мест, требующих массового распараллеливания, невелико, то, вероятно, достичь этого не составит большого труда.

Это также позволит вашему проекту извлечь выгоду из массового распараллеливания на другом суперкомпьютерном оборудовании (например, Nvidia Tesla).

Я подозреваю, что под управлением "старые" Явы на Xeon Phi вряд ли когда-либо будет поддерживаться, и даже если бы это было так, оптимизация OpenCL на Phi осталась бы намного лучше.