Friday, January 23, 2009

Trusted hypervisors to enable commercial HPC@home services

Volunteer distributed computing projects have been around for a while. You've probably heard of for example, SETI@home, a Berkeley project launched in 1999 to listen for radio signals from ET. Hey, maybe you even run the work manager as your screensaver. Another example would be the Stanford protein folding study project, Folding@home. I call this whole class, HPC@home (High Performance Computing).

These are very cool projects which can tap vast volunteer resources. But it's hard to scale this model to commercial projects which have sensitive data computations. Essentially, there is no guaranteed isolation between a user's general purpose environment, and the sensitive computation.

Imagine then, what could be done if trusted hypervisors were installed on a large base of home PCs. Assume all PCs would have a TPM, and a complete chain of trust from power-on to the hypervisor running. TPMs are working their way into popularity (IDC figures a 90% attachment rate by 2010), so that seems like a fair assumption moving forward. Bare-metal desktop hypervisors are just coming into the limelight, likely first on the corporate side, and then on to the consumer desktop, so I'm reading ahead a little there.

Given an HPC@home VM could be run on a desktop PC with guaranteed isolation, and access only the CPU, GPU, and networking to the HPC cloud, then a whole new model of commercial HPC cloud services could emerge. For a healthy percentage of any given day, most PCs are unused. They could even be put in a low-power sleep state with wake-on-LAN enabled, and power-on when needed to the hypervisor and HPC VM quickly to consume an HPC work task.

What's interesting is that many of the pieces are coming together. NVIDIA's CUDA architecture enables using their later GPUs to do general-purpose parallel processing, and they claim over 100 million CUDA-enabled GPUs have been sold. All the major GPU vendors have now announced support for OpenCL. A key requirement is that all the players make sure these resources are accessible one way or the other by an HPC VM.

I could see new business models emerge for existing HPC services, for example render farms. Currently companies either have an in-house render farm or send jobs to an outsourced render farm service. But perhaps a future outsourced render-farm service would not have any (or a lot less) of its own equipment, and instead farm-out the jobs to a cloud of subscribed home PCs with GPUs. Perhaps starting on the low-end of the business (building comfort and proving out the model) and working upward would grease the skids. Given a flexible infrastructure, this kind of HPC outsourcing company could sell much more than rendering.

This has the added benefit of not only distributing hardware (and not having much capital outlay), but also de-centralizing power consumption away from data centers. Perhaps work can be farmed out in such a way that no particular node gets enough data (to alleviate paranoia further). Anyway, I love the idea of getting paid monthly for some other company to use my PC when it's not in-use. Can I charge a premium for "green cycles" if I power my PC with solar?

Sweet juicy opportunity for PC vendors: having an HPC outfit effectively rent cycles from a home (or work) PC enables some very interesting subsidy models which will help you penetrate the next billion as well as get through this little global recession we've got going.

Disclosure: no positions

No comments: