In the previous two posts in this series I went over the good and the bad of Tilera Corporation’s TILE64™ multicore processor. I praised the TILE64’s engineering and its iMesh™ technology and I criticized its programming model and development tools. In this post, I will argue that Tilera can leapfrog over the rest of the industry by adopting a radically different parallel programming model and modifying the design of the TILE64 to support the model. Add a comprehensive suite of easy-to-use development tools and the rest of the multicore industry won’t know what hit it until it’s too late.
Computer science professor, Kunle Olukotun, said recently, "If I were the computer industry, I would be panicked, because it's not obvious what the solution is going to look like and whether we will get there in time for these new machines" (source: CNN Money). The solution may not be obvious to Professor Olukotun and his team of thread-obsessed [pdf] researchers at Stanford’s Pervasive Parallelism Lab but it does not mean that there is no solution. I have argued that the solution has been staring us in the face for decades but the computer science community is blind to it. It is blind to it because of its infatuation with the Turing Machine, a soon-to-be obsolete computing model that is woefully inadequate to the task. I will not repeat my arguments here for the sake of brevity. Those of you who are interested can click on the links listed below for further information.
How to Solve the Parallel Programming Crisis
Parallel Computing: Why the Future Is Non-Algorithmic
Nightmare on Core Street
Why Parallel Programming Is So Hard
Half a Century of Crappy Computing
Parallel Computing: The End of the Turing Madness
The COSA Saga
The holy grail of the computer industry is a multicore processor that has the following qualities:
- Easy to program using graphical tools for rapid application development. Drag and drop software composition. Programming for the masses.
- Implicit parallelism. Sequences must be explicitly specified.
- Automatic, transparent scalability. No need to rewrite the application when upgrading the processor. Just plug it in.
- Automatic load balancing. The programmer/designer should concentrate on the application and should never have to think about the processor.
- Fast, fine-grain (instruction level) parallelism using an MIMD processing model.
- Universality and homogeneity: one processor does it all. No need for a separate graphics processor.
- Deterministic timing for rock-solid applications that do not fail, regardless of complexity. The golden age of automation.
- Energy efficiency. Automated energy management.
Note that there is no mention of multithreading anywhere on the list. Any company that has the wisdom and the courage to design and build this processor, together with the required development tools, will have solved the parallel programming crisis and will dominate the computer industry for decades to come. There is only one caveat. This is a radical departure from the existing paradigm. Legacy applications will not run on this processor. But who cares? The old machines can be slowly phased out and will eventually disappear altogether. Read Parallel Computing: Why Legacy Is Not Such a Big Problem for more on the legacy issue.
Tilera Can Do It
I believe that Tilera has a chance to become the next computer powerhouse by modifying its existing TILE64 processor and writing the necessary dev tools on existing machines. In my next article, I will go over some of the specific changes that Tilera can make to its processor in order to turn it into a kick-ass product that will leave the competition in the dust.
Next: Transforming the TILE64 into a Kick-Ass Parallel Machine