One Distributed Computing XO Laptop Per Child Researcher

   
   
   
   
   

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.

olpc seti@home

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.

E.T. the Extra-Terrestrial
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.

olpc boinc

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.

7 Comments

It's true that distributed computing and the XO laptop have everything in common, and I think your idea of throw the gang charger on the mix is even greater. It's kind of a "we charge your laptop you crunch our numbers"

But better than just giving number crunching to charity research in a distant place, DC should be used to the own school. Maybe there should be a system where students and teachers queue their own jobs to be used in DC.

The sugar interface uses the concept of multiple groups every student belong to which could be used. When a student posts a job request (handled at OS level by the application) this request would be considered on every group he belongs to, including his groups of friends, his school or any more distant association.

This way, anyone on an university network would have access to the university's super-computer (composed mainly of all idle computers on that network). This could scale to higher levels: if a school wasn't using it's DC potential it could invite other universities-or the SETI, or a DNA folder company- as Guests into their own number-crunching network.

Now that's a powerful idea.

I've been a participant of Seti@Home since it started and crunched thousands of work units over the years. My old PII would take a week to do one unit but it was satisfying knowing I was a part of something huge.

So, with respect to DC solutions on the XO, I'm in two minds. I know from experience that a slow machine that needs 100% of its processor power to achieve anything cant afford to have a DC app soaking up all those spare cpu cycles.

The XO really works differently from any other computer in that rather than running a 'do nothing' time waster app (just look at Windows), it uses the spare time to reduce power usage and switches on and off hardware on the laptop.

This is akin to the 'Speed Step' technology Intel used on their processors to drop the CPU clock speed when high speed wasn't needed.

I guess the problem with XO and DC working together is the basic philosophy. Dont utilise wasted time, Reduce power consumption. Thats the 'Green' solution.

The question to ask is - 'Why would someone run a DC if there was nothing to gain?'

Now, from the point of view of finding a way to make DC a viable option - the 'School Super Computer' ant colony approach where sleeping XOs on charge are 'doing stuff' could actually be a money earner to pay back institutions for the purchase of the XOs.

The system would be managed by the School Server. It of course has 'outside world' connections and can report back with results. School Servers can look like the traditional BOINC machine crunching data but actually handing off the hard work to XO laptops that might take only 5 minutes per calculation.

In this way, a school server acts only as the co-ordinator and could conceivably crunch and return completed work units in faster time than the fastest computers currently used.

Its really a question of scale. Perhaps earnings of 50 cents per work unit could be expected?
20 Units per night from 1000 XOs?
$10 per day adds up. It might pay for Internet running costs?

Could the commercialization of Distributed Computing be possible with many hundreds of paying projects waiting in a queue to be processed?

Sounds feasible.

it's a laptop for kids, not a distributed computing network. you did an excellent job explaining why it's a bad idea; there's nothing to add there.

the small contribution the laptops could make would pale in comparison to the enormous hassle dc would create. it'll never happen, and shouldn't.

sorry to be such a bummer, but this really does seem ridiculously impractical, and the olpc has been in need of pragmatism for some time.

come to think of it, is this satire? read it like that and tell me it doesn't come off that way!

If you're going to extract commercial value from XO via distributed computing you've put the XO in competition with the likes of Google, Sun and Amazon and the advantages are all on their side.

Google and Yahoo are already in the commercial distributed computing business as part of their internal business model. There's simply no way to aggregate the computing power necessary to run a service like Google other then through a distributed computing scheme.

For Google the economies of scale operate with a vengance. Google has sufficient financial muscle to drive microprocessor design - and motherboard design and interconnect hardware design - and a great enough hunger for the finished product to obviate marketing worries. Google can afford to purchase the highest bandwidth, and lowest per unit cost, connectivity avaliable. They can put their server farms within rock-throwing distance of underutilized, and thus cheap, hydro or nuclear power. Google can afford to hire all sorts of smart people to relentlessly comb through every aspect of their business, not just the techno-aspect of their business, looking for efficiencies and opportunities. Google can keep its physical plant poised on the most remunerative spot on the technological wave assuring the greatest return on investment and capacity that tracks right along with Moore's Law.

How's a skinny kid with a toothy grin and a little green computer supposed to compete with that?

If you want to enlist XO's in the pursuit of non-commercial computing projects a la protein folding and SETI@Home you still have the not-insignificant problem of communication.

Inter-XO communication would certainly help but sooner or later those XO's are going to have to communicate with the project server and that *won't* be within range of the Wifi network. In fact, there doesn't seem to be much of a "blessed" solution at all to the problem of XO's communicating outside the local network.

There's satellite internet but that's expensive even by American standards. Local internet connectivity seems to be filtering out through the cell phone network but that'll probably remain pricey by local standards for some time despite the wild popularity of cell phones in the developing world. What's that leave?

The only thing I can think of is sneaker-net via commercial internet cafes.

But why bother? Neither the XO nor sneaker-net's anywhere near optimal for a distributed computing project even where there aren't commercial interests involved. Also, this is a transient situation. Given the proliferation of cell network coverage, the dropping costs of cell phones and computers, any XO-specific solution's bound to be superceded in quite short order.

In my opinion OLPC is mostly unsuitable to the distributed computing of the likes mentioned in the article. However DC that works by using CPU power of a machine isn't the only one out there (I guess the poster, beeing involved in BOINC, idea of which is mostly using CPU cycles, doesn't always remember that)

Namely, I think that OLPC, with all its social features and beeing centered on users and their interactions, is a perfect tool to faciliate distributed "computing" that doesn't use CPU power but...brain power of a user. There are existing examples already:
http://stardustathome.ssl.berkeley.edu/
http://galaxyzoo.org/

And as a bonus such projects wouldn't be at odds with hardware features/usage pattern - both examples are simply webapps. So the "only" issue is to have a project children will want to work on and promoting it properly.

PS. And I wouldn't be totally surprised if somebody's thinking about another such distributed project, but not for good cause; using children as distributed capcha defeating "machine"...

Pawel,

You mean something like an army of captcha solvers unleashed on Web 2.0? http://www.olpcnews.com/use_cases/business/army_captcha_solvers.html

For the record: 102.99 million floating-point ops/sec and 225.37 million integer ops/sec.

I'm 56.6 hours into a SETI workunit and still have 80 hours to go.

I will not be BOINCing again on my lil' green speak-n-spell, but it had to be done at least once.

Close