Software in a Multi-Core World
I spoke with John Fowler, Executive Vice President in charge of Systems at Sun, about the announcements Sun is making today. In summary, Sun is launching an update to its Niagra line of processors, which are capable of running 64 concurrent threads, and can be paired in systems to run 128 concurrent threads.
The processors use a combination of multi-core architecture, hyper-threading, and other sophisticated microprocessor design techniques (that are beyond this software person's understanding) to achieve this. You can find my write-up of this conversation here:
www.ddj.com/java/207100560
You can also find Sun's press release for the new processors, and systems built around them, here:
www.sun.com/aboutsun/pr/2008-04/sunflash.20080409.1.xmlIn terms of the impact this has on software, John raised two points that we should all consider:
- One day soon, processor cores will become like memory; a commodity that we don't really need to focus on anymore. Creating multithreaded software with dozens dedicate worker threads will be common, and we won't need to worry about things like context-switching, or threads that go into tight loops, and so on, because so many processing cores will be available.
- Mutli-thread capable processors will have the largest impact in the mobile device world, where cores can be dedicated to particular tasks such as power management, network communication, video, and so on. Imagine the capabilities that cell phones and PDAs will have when they have a 32-core (or more) processor running at their heart!
Happy coding!
-EJB

