http://pc.watch.impress.co.jp/docs/column/kaigai/20130826_612591.html
I was interested in using OpenCL in Java 3 years ago, at that time there was no such projects, but 2 years ago, a solid project, Sumatra project to support OpenCL in Java seems started by Oracle/AMD.
OpenCL is very important standard to support heterogeneous hardware environment including GPU, CUP, etc. OSX of Apple is now based on LLVM (Since Snow Leopard) and supporting OpenCL. So This move of Java is actually following Apple.
Project Sumatra
This primary goal of this project is to enable Java applications to take advantage of graphics processing units (GPUs) and accelerated processing units (APUs)--whether they are discrete devices or integrated with a CPU--to improve performance.
We expect the initial focus to be on the Hotspot JVM, enabling code generation, runtime support and garbage collection on GPUs. Once basic capabilities are in place in the JVM, we will also examine how to best expose GPU support to application and/or library developers, initially leveraging the new Java 8 Lambda language and library features. As the project progress, we may identify challenges with the Java API and constructs which may lead to new language, JVM or library extensions that will need standardization under the JCP process. While the Java language is an obvious focus, we also anticipate that this project will provide guidance for other JVM-hosted languages such as JavaScript/Nashorn, Scala and JRuby.
You can follow the project and get involved on the sumatra-dev mailing list.
Related projects and material
This Project is sponsored by the HotSpot Group.
- Aparapi - API for data parallel Java
- Rootbeer - a compiler that makes it easier to program GPUs with Java
- Arrays 2.0 - a JVM Language Summit talk by John Rose
This is quite interesting direction, also Java 8's support of Lambda(closure) seems associated with this parallel computing based on GPGPU or OpenCL approach.
I installed two projects in Windows. but it looks like Intel only supports Windows OS(except xeon). In order to use this on Linux, we may need to install AMD's SDK. It seems usable for Intel's graphics core in the CPU(like i5 etc).
1) https://code.google.com/p/aparapi/
2a) http://developer.amd.com/tools-and-sdks/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/
2b) http://software.intel.com/en-us/vcsource/tools/opencl
These are other related projects.
http://openjdk.java.net/groups/hotspot/
http://openjdk.java.net/projects/mlvm/index.html
http://download.java.net/openjdk/jdk7/
Here is a qupte from jdk8 project. It actually seems related to Sumatra project..
http://mreinhold.org/blog/jdk8-preview
JDK 8 Developer Preview2013/09/09 10:39:26 -07:00
Other Java 8 related info:The JDK 8 Developer Preview (a.k.a. Milestone 8) builds are now available!
This milestone is intended for broad testing by developers. We’ve run all tests on all Oracle-supported platforms and haven’t found any glaring issues. We’ve also fixed many of the bugs discovered since we reached the Feature Complete milestone back in June.
The principal feature of this release is Project Lambda (JSR 335), which aims to make it easier to write code for multicore processors. It adds lambda expressions, default methods, and method references to the Java programming language, and extends the libraries to support parallelizable operations upon streamed data.
There are, of course, many other new features, including a new Date and Time API (JSR 310), Compact Profiles, the Nashorn JavaScript Engine, and even some anti-features such as the removal of the Permanent Generation from the HotSpot virtual machine. A complete list of new features is available on the JDK 8 Features page.
If you’ve been watching JDK 8 evolve from afar then now is an excellent time to download a build and try it out—the sooner the better! Let us know if your existing code doesn’t compile and run correctly on JDK 8, if it runs slower than before, if it crashes the JVM, or if there are any remaining design issues in the new language and API features.
We’ll do our best to read, evaluate, and act on all feedback received via the usual bug-reporting channel between now and the end of October. After that we’ll gradually ramp down the rate of change in order to stabilize the code, so bugs reported later on might not get fixed in time for the GA release.
http://www.infoq.com/news/2013/06/jdk8-almost-feature-complete
https://blogs.oracle.com/thejavatutorials/entry/jdk_8_documentation_developer_preview
This kind of direction should be considered in Dart as well.
This will affect both of client and server. Since JavaScript seems going to support OpenGL like architecture, Dart need to handle it also. But server side support would be more natural fit for high performance computation using OpenGL.
In fact, I was surprised to know the direction of Java 8 was shifted to this direction. Previously it was aiming to support of modules etc, but the focus seems changed quite a lot.
No comments:
Post a Comment