Partly funded by a $50m donation from DARPA, Sun is working on some very interesting technology for HPC customers, for products to be delivered in the 2010 timeframe - anyone want a peta-flop computer? An interesting thing is that Sun plan to help improve HPC productivity by using a “Java-like” language (Java, 2010 edition?) with portable HPC code and automatic optimisation. While not terribly useful for Java gaming, I thought some people here would find this interesting:
The above is a presentation from the project lead on the 2010 HPC project (known as Project Hero). Mostly about hardware, but some comments on software and (gasp!) benchmarking. I really like this paper.
They talk about using a “Java-like” language. I’d expect it to be mostly built on top of Java (would be mostly pointless and a waste of money to not use Java), though some features (enhancements to Java byte-codes for example) might appear on a special HPC version first, then get migrated into standard Java when it’s mature.
“Sun Invites IBM And Cray To Work On New Computer Language”
[quote]Sun Microsystems is inviting competitors IBM and Cray to collaborate on defining a new computer language it says could bolster performance and productivity for scientific and technical computing (…)
[/quote]
From other newstickers: Miguel de Icaza, initiator of the .NET-Linuxproject Mono, is interested in this project, too. According to his information Guy Steele at Sun is involved in that new Sun project. (Steele is senior developer and has been involved in the Java Specification). And so on.
Will this be a “low level” Java? Or how does it fit next to Java (or Java fit to this new thing) ?
If I had to guess I would say that this language would be targeted at easing development of parallel computations. Perhaps it would have a high-level way of coding vector-based algorithms.
Typically the scientific community that needs big number crunchers ends up dealing with multi-processors super-computers. While Java has built in support for threads, the really hard parts are how to represent your algorithm in a way that can take advantage of multiple ALUs or general processors efficiently. Even such things as SIMD are coded mostly in assembler these days.
Was that the one aimed at programming transputers efficiantly? A java-like-for-transputers would be the next logical step, although I have no idea how much transputers and their derivatives are actually used for big scientific stuff.
Do you have any references for this? I wonder what made Miguel interested, since from what I read before, he didn’t seem terribly interested in Java…
[quote]According to his information Guy Steele at Sun is involved in that new Sun project. (Steele is senior developer and has been involved in the Java Specification). And so on.
Will this be a “low level” Java? Or how does it fit next to Java (or Java fit to this new thing) ?
[/quote]
I’ve no idea. But here’s some guesses: support for byte-codes containing profiling information to make run-time optimisation easier, better targeted and faster. ie an implementation based on this research: http://research.sun.com/techrep/2002/abstract-118.html
I’ve no idea how Sun will support interval arithmetic (something they’re very keen on for HPC), and maybe this would require byte-code changes, unless it can be done efficiently via objects (perhaps with more efficient objects).
Probably include a way to support advanced hinting to the VM about you’re preferences for floating-point accuracy vs speed.
This would all take a certain amount of research work etc. Maybe the best thing to do would have a “HPC” or games variant of Java for some bleeding edge features, which get fed back into “normal” Java once they become stable…?
[quote]Will it run on PS3?
[/quote]
An idea I had the other day: maybe some of this stuff came out of R&D Sun was doing with Sony over development for the PS3? If PS3 does require heavy use of threads to get maximum performance because it has many CPUs (as seems likely), then it’d be nice having a more thread friendly language for it. In addition, doing the work in Java would help cut down development costs, something the gaming industry would be keen on. However, I wouldn’t expect Sony to have a full VM and dynamic optimisation and wouldn’t be “pure” Java. Maybe the better thing to do is include profiling and optimisation information in the compiled byte-codes, and the byte-codes are converted to machine code as they’re read of the of disk. Not the only changes that’d have to be done. As an embedded system, PS3 specific libraries could be done for graphics so you don’t need to have the large separation between the VM and the OS you have on desktop systems.
Of course, that’d have to be in addition to a more normal environment - PS3 will be able to run PS2 games, and I doubt developers would want to immediately switch to a Java based solution no matter what. Maybe the Java one would be initially aimed at smaller, more cost conscious developers, and could broaden out as it becomes more proven, more optimised etc.
Sounds like a good idea to me, but if I’m right, it’d only be by accident…
[quote][quote]From other newstickers: Miguel de Icaza, initiator of the .NET-Linuxproject Mono, is interested in this project, too.
[/quote]
Do you have any references for this? I wonder what made Miguel interested, since from what I read before, he didn’t seem terribly interested in Java…
[/quote]
I’ve seen this being mentioned on a German newsticker: http://www.heise.de/newsticker/data/bem-19.01.04-000/ [quote]“Auch Miguel de Icaza, Initiator des .NET-Linuxprojekts Mono (…) nimmt sich ebenfalls des Themas an.”
[/quote]
Which could be translated to what I wrote (I hope. Now I notice that the newsticker’s text isn’t well formulated.).
Google’s robot translator transforms it to [quote]
Also Miguel de Icaza , Initiator of the NET Linuxprojekts mono (…), takes care of likewise the topic.
[/quote]
Which sounds very funny…