I'm Kevin Knoles, a Distributed Computing and OLPC enthusiast. For the past couple years or so I've been wondering if what we now call the XO-1 could practically be used for Distributed Computing.
At first that may seem like a bad idea given the XO's low-end processor, low power consumption being essential to its operation, limited "disk" space & RAM, and internet access that may be slow, spotty, or nonexistent. Given all the potential problems, it would seem that Distributed Computing on the XO may be not just a bad idea, but a terrible one.
But then again, the XO may in time become the most common computer in the world. I don't think it outrageous to say that someday XO's could constitute over a quarter of all the laptops in use worldwide. Even without a powerful CPU, through sheer numbers they could offer oceans of computing power. SETI@Home started on desktops less powerful than the XO, and even by today's standards that was a lot of power.
But cumulative CPU power is a different matter than how DC can and would effect the user. Even with a high level of "niceness" would DC make the XO noticeably more sluggish? How would it effect video playback and capture? DC on the XO would have to perform its computation as invisibly as possible lest it gain a reputation as bad software that slows down your computer with little other benefit.
One Laptop Per Child's XO-1 low power consumption is one of the biggest concerns and DC tops out a CPU for as long as it runs. The XO's efficiency makes this more an issue of battery life and likely not a big problem when plugged in and charging. An XO with a topped out CPU running all night should only be equivalent to a hot plate running for a few extra minutes, if even that much.
Given all the uses of electrical power (some good, some bad), even in poor nations, singling out the OLPC XO as a power hog really seems like selective outrage. The simplest way I can think of to solve almost all of the power concerns would be for any XO specific DC apps to by default only run when plugged in. A compromise allowing computing while in use (sort of a "reverse screen saver") might be possible, though as with computing speed, DC for the XO must avoid gaining a reputation as a battery charge killer.
There are a number of other technical concerns such as RAM, "disk" space, bandwidth, and wear on flash memory, but they should all be manageable, if not made moot. Though some DC apps can use immense amounts of RAM and disk space, others are more conservative. XO DC would probably be limited to the low end, at least until later models of the XO offered higher end specs.
The same goes for bandwidth. DC developers would have to be very forgiving and "think small", designing the software to live and adapt in an environment with slow and/or intermittent internet access. Store & Forward and digital couriers could be piggybacked, or the XO's collaboration could do the same.
Flash memory wear brings up a huge potential problem. The original SETI@Home was extremely wasteful with its writing to disk. If memory serves, it did so every few to several seconds, and that frequency of writes could destroy the XO's flash memory rather quickly, even with wear leveling. The solution is to keep the writes down to a minimum, such as when quitting or pausing, and when running for a long stretch, ideally only a couple or few times an hour, and not more than several.
Another DC user experience
The XO's collaborative nature could open the door to all sorts of uses that current DC applications don't have, and, paradoxically, make the user experience aspect of DC richer, more efficient, and more compelling than on more powerful machines. Different machines could share or exchange work units, and an XO user could inform other users of Distributed Computing and encourage their participation.
If a user wanted to quit, they could give their partially completed work to another before terminating their participation. Interface Skins and other graphical elements could be exchanged or created by groups of participants and the competitive nature of WU crunching and Team Creation that SETI@Home popularized could be more localized.
The software might even make note of usage trends among specific computers and send more work to a computer that runs uninterrupted for several hours each night over one that only gets in a few hours of work each week.
Existing DC applications have functional interfaces that less experienced users can muddle through, but that alone wouldn't cut it for the XO. The software needs to be even simpler and with easy to install and create skins like that of MP3 player software. (I'm thinking a default nickelodeon-type interface might be best.) The idea is to make it fun and not a chore.
Preinstallation on XO's and being preset to projects most beneficial to host nations would help immensely. Simple prefs such as "Only run at night while I'm sleeping." with more complex options buried might be best for easily intimidated users. Visually, rather than just provide a boring progress bar, why not allow DC to be represented by a cartoon mascot who performs tricks and lives in the corner of the screen? The more fun the software is, the more kids will run it.
In addition to the technical, there are what might be considered "ethical" concerns. A common myth about DC is that users are doing the work of big pharma. Though there would be nothing wrong with choosing to help develop life-saving medicines, in reality no company would want to give away valuable intellectual property. But that still leaves the question of whether DC on the XO might result in third world computers subsidizing first world computing.
If DC were only about finding new prime numbers and searching for Extraterrestrials that might be the case, but there are also projects that research malaria treatment & drugs, HIV research, and will likely be many more like them in the future. In addition, DC on any computer, let alone the XO, could allow universities in poor nations to have access to virtual supercomputers far more powerful than anything they could afford as well as popularize their research.
Some of the kids who run a university's DC project on their XO may someday work in the same field as the people who developed the application. DC on the XO wouldn't be exploitation, but rather empowerment.
Twice in the past couple years I've written Dave Anderson of SETI@Home and BOINC, suggesting to him the idea of Distributed Computing on what was then the "$100 Latop". Initially as a suggestion, and several months later as a follow-up, I pitched the idea and suggested what would be best is a modified form of BOINC due to its robust architecture and established base.
While intrigued by the idea, he noted the same technical concerns I've tried to address. If anyone can set things in motion, I suspect he can, but I'm also aware of the severely limited resources of Anderson & BOINC. While OLPC's resources are finite, they are enormous by comparison.
What's needed are not just the resources to develop the software, but the push to popularize it. That means preinstallation of applications that run region-specific DC projects the first time they are run. Only OLPC can make that happen, and while the initial XO-1's might be too early, preinstallation of such software on the XO-2, XO-3 and beyond would be ideal.
It's inevitable that some kind of DC will be run on the XO, and for all I know, maybe someone already has tried Folding@Home or BOINC on prototypes. But not having been designed for the XO and the kids that will use it, any DC use will hit a user base limit far too early. A "If you build it, they will come." attitude isn't enough. It's got to be something made just for the XO. Something compelling. Something entertaining.
I don't know if the number of DC users among XO users will be several percent or a fraction of a percent, but without action to make it happen, I can guarantee the numbers will be far lower.
Imagine if, once the XO is established among millions of schoolchildren, kids throughout the world plug their laptops in for the night to charge, with many leaving them running while they sleep. At distant universities servers receive a steady stream of results, with decades worth of computing completed in mere weeks or months and for only a fraction of the cost.
The kids wake up, unplug their laptops and go on with their day with the cycle repeated that night. And it's because of such a comparatively small effort, research, much of which can and will save lives, is accelerated by years.
Tags: CPU Power | Dave Anderson | Digital Couriers | Distributed Computing | Kevin Knoles | SETI@Home | Wear Leveling |