Thursday, August 14, 2008

Tilera’s TILE64: The Good, the Bad and the Possible, Part II

Part I, II, III

Abstract

In the previous installment of this three-part article I wrote about what I think is good about Tilera Corporation’s TILE64™ multicore processor. In this post, I will show where I think Tilera has gone wrong.

The Bad

The bad thing about the TILE64 multicore processor is that it is a pain in the ass to program. This is not something that is unique to the TILE64, however. All multicore processors currently on the market have the same problem. Right now, Tilera offers nothing new or revolutionary in the way of development tools that will make anybody stand up and take notice. C and C++ and multithreading are not going to cut it, I am sorry. I have said it before (and the industry is painfully aware of it by now), writing multithreaded parallel programs in C or C++ is like pulling teeth with a crowbar. Advertising that the TILE64 has a Linux SMP runtime environment is lame to the core. Linux is a freaking dinosaur, in my opinion, an ancient technology that somehow escaped from a computer museum of the last century. LOL. But then again, I think that all operating systems are dinosaurs.

I remember that when Tilera first announced the TILE64 about a year or so ago, the Erlang fanatics were jumping up and down, drooling at the prospect of using Tilera’s spanking new iMesh™ technology to send fat messages back and forth between their so-called lightweight processes. I remember thinking, my God, what a waste of technology. I am sure some of them contacted professor Anant Agarwal, CTO and co-founder of Tilera, and tried to convince him of the superiority of functional languages for parallel computing. I don’t know what happened but I am glad to see that Tilera does not mention Erlang or functional programming on its site. Erlang is a waste of time in my opinion. Its message-passing, copy-everything, anti-state approach to computing is not just counter-intuitive; it is a disaster as far as performance is concerned. The same goes for all functional programming models. As my readers already know, I don’t mince words when it comes to telling it like I see it.

In conclusion, I will say that Tilera, regardless of its engineering prowess, has committed the same unforgivable sin as the rest of the processor industry. Its leaders decided to design a processor before they could perfect a sensible programming model. It should be the other way around. Unless they take steps to correct that mistake, they will fail. Their only consolation is that everybody else is panicking and riding in the same sinking boat. Not much of a consolation if there are no lifeboats around, that’s for sure. I gave Agarwal a hard time about this before but my motivation for writing this series of posts is that I don’t think that all is necessarily lost.

I will add that my main interest in parallel computing comes from my research in AI. I am convinced that artificial brains will be the most prevalent computer applications in the not too distant future. These smart programs will require massive parallelism in the form of super fast and efficient multicore processors. It does not really matter to me which organization or company unveils the correct solution to the parallel programming crisis and/or uses it to bring out a kick-ass product to market that blows everybody else out of the water. I just think that Tilera has a better chance than say, Intel, Sun, IBM or AMD. Those guys are way too married to last century’s technologies to notice the writings on the wall.

Next: Part III, The Possible

Related articles:

How to Solve the Parallel Programming Crisis
Transforming the Tile64 into a Kick-Ass Parallel Machine

No comments: