This week Sun announced its new 64-way multi-core processor, the UltraSPARC T2. The T2 has some nice characteristics, like on-chip networking, encryption and i/o facilities, is very energy-efficient and pretty fast and cheap too. Sun is working with the Ubuntu guys to make that work on SPARC too (currently, only Solaris runs on this processor). Bringing Ubuntu into the fold would open new markets for the T2, and will probably bring some concurrency improvements to the Linux software too.
It made me think about a post from Frank Bakker the other day. How are we going to program these things? Consider the new Azul 7200 systems: 768 cores on a single machine (with a 768GB heap). This stuff can make pigs fly, but it would certainly take rocket science to utilize this kind of machines?
It turns out it isn't that bad after all. See part two in the Sun announcement, where the Berkeley professor describes that their optimization software actually does not help that much on the T2, because the application already scaled very well. For a description of the stuff Azul does, see the interview with John Davies and Gil Tene. It turns out, Azul does all kinds of crazy things in hardware, that makes garbage collects virtually instant, and replaces synchronized code with optimistic concurrency backed by a memory transactions system. Now that sounds like rocket science, but to the developer, it is just normal Java application code. It runs the same, only faster.
I completely agree that multi-core changes the game for high performance programming. I think it requires more thought in requirements on processing things in parallel, debugging contention problems and evolving the systems around the cpu to make use of the increased scalability. Functional languages like Fortress and F# will allow for much more aggressive scaling optimizations than most common languages do, and I definitely will take a look at them, though it probably will take a while before they will be really popular. But parallel execution happens anyway. A lot more every day.