Es wird nicht offiziell unterstützt, Sie können JVM jedoch trotzdem selbst erstellen.
Ich habe JamVM mit erstellt GNU Classpath und leicht modifizierte Version von libffi . Sie können auch mit der Zero-Assembler-Version von HotSpot versuchen. Als Ergebnis können Sie eine extrem langsame virtuelle Maschine bekommen - sogar mit 60 Threads war es mehr als 10 Mal langsamer als meine Quad Core Mobile i7 CPU. Auf der anderen Seite ist es eine großartige Möglichkeit, die Skalierbarkeit von Java-Implementierungen zu testen, die auf mehreren Threads gleichzeitig ausgeführt werden.
Eine weitere Idee ist die Verwendung des Aparapi -Tools - Teile des Java-Bytecodes werden in OpenCL übersetzt und auf Phi ausgeführt.
Laut ihrer FAQ gibt es noch keine Unterstützung für Java:
F: Gibt es eine Java-Option zum Codieren? A: Noch nicht.
Obwohl es sicherlich noch ein weiter Weg ist, Java auf Xeon Phi-Kernen laufen zu lassen, wäre eine Möglichkeit, relativ einfach Xeon-Unterstützung in Ihrem Java-Programm zu erhalten, die Verwendung von Aparapi ( Ссылка ), eine Bibliothek, die eine Untermenge von Java-Byte-Code zur Laufzeit zu OpenCL kompilieren und als OpenCL-Kernel ausführen kann (Xeon Phi unterstützt OpenCL wie jedes andere moderne GPU).
Es ist ein nicht-trivialer Prozess, vorhandenen Java-Code in Aparapi-Kernel umzuwandeln (der von der Kernel run () -Methode aufgerufene Code muss im Wesentlichen Object-free sein - Felder, Parameter und Locals müssen Primitive oder Arrays sein) von Primitiven). Aber wenn die Anzahl der Engpässe, die eine massive Parallelisierung erfordern, gering ist, wird es wahrscheinlich kein großer Aufwand sein, dies zu erreichen.
Dies würde es Ihrem Projekt auch ermöglichen, von einer massiven Parallelisierung anderer Supercomputer-Hardware (wie Nvidia Tesla) zu profitieren.
Mein Verdacht ist, dass es unwahrscheinlich ist, dass "irgendein altes" Java auf Xeon Phi läuft, und selbst wenn, wäre die Optimierung von OpenCL auf Phi weit überlegen.
Tags und Links scala hardware parallel-processing xeon-phi