Oracle pours hot, steaming Java into heterogeneous heaven
AMD, ARM, others welcome Larry & Co. into CPU-GPU uniting HSA Foundation
APU13 The future of heterogeneous computing, in which CPUs and GPUs transparently share memory and seamlessly share tasks, has taken another step to fruition: Oracle has joined the HSA – heterogeneous systems architecture – Foundation, with the intent of making Java fully HSA-compliant.
"Our intent at Oracle ... is to make [Java] the tool of choice going forward," said Nandini Ramani, VP of the Java platform at Oracle, speaking at AMD's developers conference, APU13, in San José, California, on Tuesday.
At Oracle, Ramani is responsible for the core software, tools, product management, strategy, and that slippery concept called "the ecosystem" for both Java and its open source implementation, OpenJDK.
Heterogeneous computing is a close cousin to parallel processing, and Ramani touched on the challenges posed by that development entaglement, as well. Parallel processing, she emphasized, doesn't obviate the need for good ol' fashioned sequential processing. There needs to be a balance between the two.
However, she said, "The difficulty with most programming languages is that programmers need to actually figure out how to execute a good mix of the two tasks based on the problem they're trying to solve."
Not always easy. Actually, rarely easy would be more like it.
Parallelism is not new to Java, of course. "Java fundamentally, in itself, by design, is concurrent," she said. "We have a concurrency package."
Java 7's "fork-and-join" decomposition framework made it a lot easier for programmers to write parallel code. Parallelism may be all the rage now, she said, "but we were doing it in the days when it wasn't considered so cool."
Fork-and-join went "underneath the covers," to use Ramani's description, when Oracle shipped the developer preview of Java 8 last month (about 18 months late); the final version is scheduled for the first part of next year, and will include parallel array sorting. Oracle's's Project Lambda effort shoved it under the covers by adding programming constructs called "closures" to JDK 8, which are intended to make it simpler to write Java code for multicore processors.
But parallel computing is not heterogeneous computing, in which CPU and GPU cores can transparently share memory and tasks despite their different instruction set architectures. "Today Java developers have to figure out a way to communicate between two JVMs," she said, "and across multiple ISAs at that. Not a trivial task."
One JVM to rule them all
To overcome this challenge, Oracle's goal for the future is to have a single Java virtual machine that can communicate with multiple instruction set architectures so that, from a developer's point of view, that communication is essentially taken care of invisibly.
"With some work," Ramani said, "which we are doing currently in Project Sumatra, Java on its own should be able to optimize memory access and data flows across ISAs, so that to the developer the memory ... appears uniform and seamless."
The work of the HSA Foundation is important to the development of heterogeneous computing because Oracle wants to follow the trends of where the HSA standard is going "so Java can be in lockstep with it as silicon starts to come out and more and more people are shipping this," she said.
"So to that end, I would like to announce today that Oracle has joined th HSA Foundation at the Contributor level, she said, Contributor being the fourth level in the six-level membership structure, below Founder, Promoter, and Supporter, and above Academic and Associate – not a massive commitment, to be sure, but an important one nonetheless. Oracle will share the level with Broadcom, Canonical, Marvel, Sony, ST Ericsson, and 15 others.
Oracle's participation in the HSA Foundation, Ramani said, will be – no surprise – centered "mainly and mostly" on bringing heterogeneous computing to Java, and on helping in the Foundation's work to define and steer the standards, presumably in ways that will benefit both Oracle Java and OpenJDK.
"We are in a land where we have the traditional use cases that need and require multicore parallelizing and heterogeneous computing," she said. "In addition, with the doors opening in the Internet of Things, I think it really opens the floodgates to what I would call a perfect storm in a Java cup." ®
According to AMD's VP for global communications John Taylor, also speaking at APU13, of the approximately 20 million software developers worldwide, half use Java. Ramani refined that figure to "over nine million developers, which actually exceeds the population of Sweden". We're talking about a lot of Java coders who could, with the right tools, greatly help the adoption of HSA.