Imagine working at kindercare. Imagine, for some reason, you want to make 8 kids count a hundred beads. First, you’d have to roughly split the stack into 8 groups. The kid with the smallest pile will have to wait for the kids that haven’t finished yet. You could divide the remainder of the beads as the kids count, but that will take up a lot of your time. That’s exactly the problem with multi-chip computers.
The spheres in the 3D scene above, the beads of my analogy, are semi-reflective and semi-transparent surrounded by 48 light sources. It’s hard for a computer to calculate how light will travel through this scene. The latest incarnation of my 3D software (Cinema 4D 11.5) manages to calculate the image 30% faster by optimizing the calculations so that 2 computer chip cores can work together more efficiently. That, my friends, is the future of software.
Moore of the same
Gordon Moore wrote a article in 1965, entitled ‘Cramming more components onto integrated circuits‘. He had observed that the complexity of computer chips doubled every year. For years, computer processors got more transistors in a single chip. That didn’t always translate into higher efficiency, rather more heat and fan noise.
If you’ve bought a PC recently, you know performance isn’t about faster or bigger chips anymore. Recent computers sport several chips that run slower and cooler, dividing the work between them. In january 2006 Intel introduced the Core Duo chip with excellent value-for-money. It had 2 chip cores. Nowadays, you can pick up a 4-core system for about 850€, with 8-core systems at the high-end.
Task Concurrency
However, when you launch your PC’s Task Monitor when performing heavy tasks, you’ll notice that half the time only 1 core is doing the work and the others are idling. Think of the kids in my kindergarten. Most software programs aren’t ready to split tasks between various resources.
But wait: there’s hope! Software companies are often focussed on their own niche and rely on the tools with which they write code to optimize their work. Apples Xcode makes it easy to hand programming fragements called threads to multiple chips (and even your graphics card). Microsoft Visual Studio does the same. The hardest part is for a programmer to write code processes that can easily be split into separate threads. Or to be more precise: ensuring that the threads keep each other posted of their progress.
Keep up the good work, lads! Even smartphones will sport multiple processors soon. <Cough>iPhone4</cough>. Let’s ensure we can all work faster on our future 256-core machines and leave early on fridays.

Biologisch dynamische Bakkerij
UGC Antwerpen
Caffènation Hopland
Lucy Chang