My return to parallel processing
Posted on 17 Feb 2010 at 11:13
PC Pro's Real World Computing editor, Dick Pountain, dusts down an old parallel processing project
Recently, I wrote about the renaissance of parallel processing and what new problems it would soon present to programmers. As I write now, two announcements from Intel really rub in the point.
First, it announced a new experimental CPU called the Single-chip Cloud Computer (SCC), which contains 48 Intel cores on the same die, all capable of talking to each other via a software-configurable message passing scheme in on-chip memory.
Intel had already demoed an 80-core chip called Polaris for its Terascale Computing program, but those were only floating-point maths units, while the SCCs are full Pentium-compatible x86 cores. They’ll run any x86 program; they simply lack all the sophisticated performance enhancements of today’s chips. But that same week Intel announced it’s to dump its highly-parallel graphics processor chip Larrabee as a commercial product.
Turing showed that given unlimited tape and time, such a simple machine can compute anything a more complex architecture can achieve
It’s a safe bet that Larrabee’s disappointing performance was down to the inherent difficulty of programming general-purpose, message-passing parallel computers compared to dedicated, pipelined vector GPUs from Nvidia and AMD.
I went back over some of my Byte columns from the 1980s related to parallel processing, and stumbled across an old software project of mine called PriPar Machines (short for Primitive Parallel computers). It was a simulator written in Turbo Pascal to simulate a system of communicating Turing Machines.
Turing Machines
A Turing Machine is the simplest possible kind of computer, originally invented as a thought experiment by the father of computer science Alan Turing. It consists of a print head that moves back and forth reading, writing or erasing marks along an infinitely long paper tape under the control of a stored program. Turing showed that given unlimited tape and time, such a simple machine can compute anything a more complex architecture can achieve.
PriPar approximates a class of Turing Machine with two extra instructions to send and receive messages from one another. It’s object-orientated so you create any number of PriPar machine objects, connect them together by message channels, give each one a stored program and some data on a tape, then set them all off running and messaging one another. It’s a sort of Meccano or Lego kit for playing with the problems of parallel processing. I didn’t give it a flashy graphical interface: you just view the output as a scrolling display of tape contents; strings of dashes like //////////////.
A PriPar machine has just two extra instructions, cribbed from the Occam language: “!” means “send a message and proceed”, and “?” means “wait until you receive a message before proceeding”.
Since each PriPar machine has just a single channel connected to one other machine, there’s no ambiguity about who it’s to. However, this is a software simulation, so you can easily add extra channels, buffer messages, or change the meaning of instructions to see the effect on efficiency, integrity and programmability.
That 1990 Byte article attracted little interest: few people had a clue what I was on about, since parallel processing was specialised stuff and Turing Machines on a par with mermaids and unicorns. But a lot of work went into it, and it’s topical again, so I resolved to recycle it.
No-one uses Turbo Pascal 5 anymore, and it was unsuitable even back then (I represented tapes as array constants of specified length and padded them with spaces). So I rewrote it in Ruby, which to my delight took one afternoon. It’s more flexible because Ruby arrays are fully dynamic, like Lisp lists, so you can add stuff without worrying about size. I’ve put the Ruby source for my PriPar system and some sample programs on my website.
From around the web
Lateralised not parallelised?
Dick... it seems to me that the problems of inter-core communicaiton are solved already. If you got in the tardis and went back to when 32 Pentiums would be a classroom full of PCs, they can and did do true parallel processing when getting and showing HTTP pages to one another, because of the nature of HTTP. doesn't the connectionlessness, multipath nature of HTTP obviate a lot of these job-completion conundrums?
By Steve_Cassidy on 17 Feb 2010 ![]()
Err Steve, HTTP is an application layer in the OSI model, surely you're thinking of the transport layer and below such as TCP/IP +ARP that handle the routing?
@Dick so are you saying it is still easier to use multiple processors to perform sequential operations rather than try and devise and perform parallel operations?
I do wonder though, what the applications for parallel processing systems are. I can't honestly see a use for average consumers (above 2-4 cores). I can imagine the benefits of multiple cores for virtualisation, but not much else besides specialised scientific modelling for parrelisation. Maybe in the next 5-10 years if we have say immersive UI appearing.
I guess the problem is humans don't think in parallel.
By GAZZAT5 on 18 Feb 2010 ![]()
I know what HTTP is; and it's not "A layer" - it's a protocol. That's what the "P" stands for. My point is that HTTP can be chopped up and re-assembled, or travel in disparate packets by different routes over different time bases.
By Steve_Cassidy on 18 Feb 2010 ![]()
For more details about purchasing this feature and/or images for editorial usage, please contact Jasmine Samra on pictures@dennis.co.uk
advertisement
- Windows 8 on ARM to run desktop apps... but only Office
- Windows 8 pauses desktop apps to save energy
- Mobiles boost Apple profits... and there's more to come
- Ubuntu rips up drop-down menus
- RIM founders fall on their swords
- Microsoft to tweak Windows 8 Start screen
- Weak PC sales expected to hit Microsoft's profits
- 802.11ac routers to hit 800Mbit/sec this year
- Asus Transformer Prime gets HD upgrade
- Netgear brings apps to routers for “smart networks”
- Chrome's shine getting lost in translation
- BytePac: the cardboard hard disk enclosure
- How tech loosens our grip on reality
- Hokum watch: Safer Internet Day
- Why I'm deleting Adobe from my PC
- Prepare to be patronised: it's Safer Internet Day
- Dear Sony, Samsung and every other tech company in the world: stop trying to be Apple
- Will Apple's Final Cut Pro X update placate the pros?
- Smartr Contacts for iPhone review
- Switching to Office 365's Outlook Web App
advertisement

