Moore’s law is wonderful, and is likely to remain so until about 2020 after which things may get interesting. But we don’t even have to wait till 2020; looking ahead just a few years our home PCs will have dozens of processor cores and somewhere between tens and hundreds of gigabytes of memory. So the personal computer will become the personal supercomputer. And my inner geek is already jumping up and down begging for one.
But what will people do with all those MIPS? Probably 50 percent of them will be taken up running Windows 10 (or whatever it will be called by then) but even so that leaves us a lot to play with. If the cloud fanatics have their way all that silicon will be piled high in multi-million core data centres and we’ll never see it at home. But as I’ve mentioned in other blogs I’m a cloud sceptic and I don’t think the world will evolve that way, if only because of the imbalance between networks and processors. The pipes to our homes are growing far more slowly than the PCs in them. So the problem remains. What are normal non-technical people going to do with a home supercomputer? It has the potential to become as big a revolution as the PC, if only we can harness it.
Basically what we need is a technology that (a) allows people who can’t write programs to solve problems with computers and (b) soaks up immense amounts of massively parallelised processing power. One technology which has a lot of potential here is genetic algorithms (GAs). The principle underlying GAs is a process of genetic “breeding” which evolves solutions in a Darwinian manner from a large population of candidates. GAs can be used in all sorts of ways, but one of the most interesting variants is genetic programming (GP) where the pool of candidate solutions are themselves programs. I.e. your computer evolves a program to solve a problem. Now like most things it’s not quite that simple, but GA and GP techniques have two properties which match personal supercomputers very well. Firstly they can exploit massive parallelism. Secondly you don’t have to know how to write a program to find a solution to a problem, all you need to write is a fitness function – an algorithm which the system can use to determine if one solution is better than another. And that’s several orders of magnitude easier than writing a program.
So if I were Intel and Microsoft, and wanted weapons to fight the clouds and provide reasons for people to buy home supercomputers, I’d be investing in simple, accessible, mass market GA tools.
2 responses so far ↓
1 Tim Davies // Jun 30, 2009 at 12:24 pm
i wonder if there are any such easy ways to “not have to program”
i would be very much interested in .
Which system uses such algorithms as the one mentions. It just needs some fitness definition. ?
2 Nick Jones // Jun 30, 2009 at 12:36 pm
A good source of introductory information plus pointers to lots of other material is, as ever, Wikipedia. Take a look at the entries on “genetic algorithms” and “genetic programming”
Leave a Comment