Можно ли использовать Xeon Phi с помощью языка на основе JVM, такого как Scala? Есть ли пример?
Использование Xeon Phi с языком на основе JVM
Ответы (3)
Официально он не поддерживается, однако вы все равно можете собрать JVM самостоятельно.
Я создал JamVM с GNU Classpath и немного измененная версия libffi. Вы также можете попробовать версию HotSpot без ассемблера. В результате вы можете получить чрезвычайно медленную виртуальную машину — даже при использовании 60 потоков она была более чем в 10 раз медленнее, чем мой четырехъядерный мобильный процессор i7. С другой стороны, это отличная возможность протестировать масштабируемость реализаций Java, работающих одновременно с десятками потоков.
Другая идея состоит в том, чтобы использовать инструмент Aparapi — части байт-кода Java транслируются в OpenCL и выполняются на Phi. .
Согласно их FAQ, Java еще не поддерживается:
В: Есть ли вариант Java для кодирования? О: Еще нет.
Хотя до запуска Java на ядрах Xeon Phi, безусловно, далеко, одним из возможных способов относительно легко получить поддержку Xeon в вашей Java-программе будет использование Aparapi (https://github.com)./aparapi/aparapi), которая может выполнять кросс-компиляцию подмножества байт-кода Java в OpenCL во время выполнения и выполнять его как Ядро OpenCL (Xeon Phi поддерживает OpenCL, как и любой современный GPU).
Это нетривиальный процесс преобразования существующего кода Java для запуска в качестве ядер Aparapi (код, вызываемый из самого метода run() ядра, должен быть по существу свободным от объектов - поля, параметры и локальные переменные должны быть примитивами или массивами примитивов) . Но если количество узких мест, требующих массивного распараллеливания, невелико, добиться этого, вероятно, не составит большого труда.
Это также позволит вашему проекту извлечь выгоду из массового распараллеливания на другом суперкомпьютерном оборудовании (например, Nvidia Tesla).
Я подозреваю, что запуск «любой старой» Java на Xeon Phi вряд ли когда-либо будет поддерживаться, и даже если бы это было так, оптимизация OpenCL на Phi оставалась бы намного лучше.