|
|
CTO ArticlesPublished in IT World
Multi-core Processors: transputers rebornFor the past, say, 20 years, we have had a period of relative homogeneity in the CPU side of the computing business. A small number of household brands such as Pentium, Sparc and PowerPC in a small number of off-the-shelf configurations, have dominated the landscape of mainstream low- to mid-range computing. Back at the dawn of creation for the low and middle strata of the computing hardware world, there was a lot more diversity than there is now. Back in the Eighties for example, a variety of weird and wonderful configurations fought it out in the marketplace. I distinctly remember using a dual typewriter/computer that had - not one - but two Z80 [1] processors in it. It cannot have been much later than 1984. I remember strapping this enormous heavy thing to a 300 baud modem and programming it to send Telex messages over an X.25 network. Yes, you read that right. I said Telex [2]. The reason this episode sticks in my mind (apart from the hernia) was the advertising campaign for the machine in the magazines of the time. "Twin Z80 processors!" the blurb screamed over a picture of a red sports car in the background. In the world of car advertising, the word "twin" appears to have magic properties: "twin airbags", "twin cams", "twin exhausts" and so on. The marketeers were trying to take a similar approach to marketing computers at the time. I remember a snowstorm of machines based on the Z80 processor flying about in a fully-blown weather front of machines based on 6809, 6502 and 8080 processors. Higher up the food chain were machines based on the 68000, the famous Digital VAX and the even more famous IBM System/36. Looking back, it was the best of times and the worst of times. The rapid pace of change brought with it great innovation and great customer choice. It also brought with it rampant inter-system incompatibilities and the promise of rapid asset obsolescence. Of all the weird and wonderful machines that strutted and fretted their hour upon the stage in those heady days, my favorite was the transputer [3]. It is my favorite because, unlike twin-processor typewriters, I think the core ideas underlying the transputer have yet to have their day in the sun. The transputer will be reborn - is being reborn - as I write this. So what is a transputer? To cut a fascinating story short, the transputer chip was designed to be connected to other transputer chips forming a tightly coupled network of computing power. Armed with the right demonstration program, transputer machines could do amazing things. A common example was to draw the Mandelbrot Set [4] in real-time at apparently impossible speeds. This demonstration hinged on the fact that the Mendelbrot Set lends itself to processing on a multi-processor machine. Each part of the image can be constructed independently from the other parts. It is known in the trade as a "trivially parallel" problem. Why reminisce about the transputer now? Well, you may have noticed that the transputer of the Eighties looks very like the multi-core processors making their way steadily to the forefront on the industry today. With the transputer, different CPUs were hooked together on PCBs as there was only so many transistors that could be placed on a single piece of silicon. The difference today is that advances in transistor density allows multiple CPUs to be placed on the same physical piece of silicon. Same idea, different implementation strategy... and a different sales strategy too. There are no adverts today featuring red sports cars that I have seen. No adverts with Mandelbrot Sets either for that matter. Today, there is no need to pick something beautiful-but-abstract like the Mandelbrot set to illustrate why parallel processing is such a powerful concept. This is because today we have the Web. On the Web, servers treat each user (and sometimes every single click of each user) as completely separate events. The events coming from each user can be processed independently of the events coming from other users. Although there are often points where this simple independence model breaks down, it works as a general approximation. The more CPU's you have at your disposal, the better your Website can perform. Also on the Web today, we see a lot of organizations using external sites to host web-based infrastructure such as "five nines" websites. In hosting environments, price is often directly related to square inches. The more CPU power you can pack into a rack slot, the better for you. In the Eighties, there were only a small number of people who were interested in fast drawing of Mandelbrot sets. The same is true today. But today, everyone is interested in having their web sites scale well in terms of performance and in terms of price. The killer application of parallel computing is all around us. It is called the Web. If the transputer and the Web had been invented at the same time, they would have been a perfect match. The transputer re-incarnated in the form of multi-core processors would appear to have a healthy future ahead of it. So much for the hardware side of the transputer. On the software side, there is a story to be told around the programming language designed especially for the transputer called Occam [5]. That is the subject of a future article with a very different prognosis to this one.
[1] http://en.wikipedia.org/wiki/Z80
|