This is quite a coincedence. About a week or so ago I read an article in Scientific American about distributed processing, and my mind wandered straight to rendering Did any of you catch that article?
It was really interesting, actually. It raised a number of very interesting pointers of where the internet could be headed in a few years time. It all started a few years back when SETI released that screensaver which scans through radio data, analyses it for alien signals, and sends it back to SETI. Soon others started catching on - there’s one for finding a cure for anthrax, one for finding the next prime number, one for fighting cancer - they’re catching on. What Kib said is right though - you do need some sort of central server coordinating the whole thing, and this is the one part of distributed programming which is really holding things back at the moment. The fact is that there’s nothing available at the moment which can handle inputs from clients left right and centre. Just think about the logistics of it - you have one job to do, and two connections to spread it across. Fine. But one of those PCs is a crappy 386 (well, you get the idea) sitting on an ADSL line, but the other is a pentium 4…except the pentium 4 is only connected via 33k. Which do you use? Half way through the job, the 33k user decides his phone bill is running through the roof, and decides to disconnect. Ah. There goes your job. So now what? Do you send the job to the other PC? Do you wait for another PC to connect, and send that the job? Or do you hope that the 33k user will eventually reconnect, and give you the results of that job you sent it so long ago? You see what a nightmare this becomes with tens, hundreds, nay thousands of CPUs…
You also have to realise that not everyone will want to give their PC up to something like this. The fact of it is (I’m sorry!) that humans can be very self-centred, and the ‘what’s in it for me’ approach kicks in (you’ve got to admit, it is true!). Some people have suggested that a way around this is to pay people for their CPU time. But then you get into the even trickier area of ‘how much is a computer worth?’. Going back to my example above, does the slower CPU on the faster connection or the faster CPU on the slower connection get paid more? Is a faster processor more importnat than connection or vice-versa?
Programming for these sorts of things is also a nightmare, unfortunately. Those logistical problems I mentioned further up are difficult enough to think up solutions to - imagine trying to program them!!
Provided people do eventually code their ways around these things,we can expect some very powerful things to emerge from the dustcloud. Suppose Pixar get a few days inbetween projects with that large renderfarm of theirs doing nothing - the economical thing to do is to put up these resources on the net!! (I know - wouldn’t that be great )
Eventually, selling your CPU time over the net could become a viable possibility. People may even start setting up renderfarms in places like Alaska, where cooling isn’t a problem - they just open the doors to the place! Less electricity, more economical…
So where does Blender fit into this then? Well, I’ve been thinking long and hard about that one, and it’s one of the reasons why I think Blender becoming opensource would be such a good idea. If Blender did become opensource, with the size of the Blender community we probably could eventually put together a ‘stand alone renderer’ screensaver type idea. People download it, and it renders what it’s sent, and sends it back to some central server which coordinates all these signals, and puts them back together. This would put Blender head and shoulders above the likes of Maya, Softimage, 3DSMax, because all of a sudden you’d have a FREE modelling, animation and rendering package that could render across as many CPUs as you like, regardless of cost. Packages like Maya you pay for a per-CPU licence, but Blender - you can have as many as you like. Your only limit is hardware, not software, all of a sudden.
It’s not an easy problem to program a solution to, but the rewards would be out of this world… Anyway, just me adding my little bit.