For everyday processing tasks, the dual core processors in laptop and desktop computers are more than sufficient. In fact, most of those machines rarely use all their processing power, which has led some to ask what else could be done with the unused CPU cycles.
Early schemes employed downloadable clients that would contribute your unused CPU cycles to various causes such as AIDS research and the Search for Extraterrestrial Intelligence (SETI). Later you could contribute CPU cycles in helping to prove some of Einstein's theories, provide early detection of earthquakes, or find the God particle.
As might be expected, CPU cycles on desktops and laptops are not the only ones being harnessed to solve computationally dense problems. Researchers at the Berkeley Open Infrastructure for Network Computing have apps you can run on your mobile phone that will cause it to contribute its unused cycles to research as well.
But while your desktop, laptop, or smartphone might be swimming in more processing power than needed, there are businesses that can't seem to get enough. Software and application developers, game developers, engineers working in all disciplines, medical imaging users, movie makers, and computer aided drafting (CAD) all require processing power that goes well beyond what's available in typical desktops and laptops.
To meet the need, technologists have come up with a large array of solutions, including individual clusters of both CPUs and GPUs and even clusters of CPUs and GPUs together, as exemplified at Boston University's College of Engineering. The university has six classrooms participating in cycle-harvesting, while students and faculty can access high-performance computing centers on and off campus.
Grid computing, parallel processing, and distributive processing are all alive and well today and continue being used to solve problems needing massive computing power. Many of these efforts require extensive hardware and software setups that can put them out of reach for small businesses and those that don't have particular IT expertise.
Grabbing unused CPU cycles
To answer the call for a simpler solution to harnessing unused CPU cycles, Xoreax, the makers of IncrediBuild, brought to market a software solution that can make a single, four CPU full core computer act like a 200 CPU computer. The same computer can connect with GPUs on other computers, or maybe even to an APU, and use those resources, for example, to do rendering. The solution dynamically allocates resources to the task based on the task's demands, and then allocates and harnesses unused CPU cycles of machines running the agent. Once the task is done, it releases all of those CPUs that were harnessed.
The implementation doesn't require any integration and doesn't require any dedicated machines, and it is all transparent and done automatically. When other computers are providing CPU cycles, the users of those computers can still use the machines for whatever purposes they need. The product is off-the-shelf and doesn't have integration requirements.
Using diamonds as the example
While this type of distributed computing is a natural for application and software development environments, especially for agile environments and continuous integration, Eyal Maor, CEO at IncrediBuild, points to a "dazzling" example of it being applied in a runtime environment to harness unused CPU cycles for computationally-intensive processing. A company that analyzes and cuts raw diamonds runs CAD simulations that used to take up to 30 hours in figuring out where to cut and shape diamonds to get the maximum value from them. By distributing those tasks across a number of machines and taking advantage of unused CPU cycles, the company reduced that time to less than four hours. A side benefit was that the company could increase the precision of the analysis, resulting in diamonds of higher quality and subsequently higher value.
Maor says the solution is about 80% distributed computing and 20% parallel processing, and that it allows the two to exist in a complementary way because once there is parallelism, distributed computing is needed to scale out. Both forms use the same underlying methods because of the need to manage different resources, whether they are on a local machine or on a remote infrastructure.
The Kaveri connection
IncrediBuild has particular interest in AMD's Kaveri processor, scheduled for release in early 2014. Kaveri accelerated processing units are called that because they allow both CPUs and GPUs to share memory, and that in turn allows them to also share processing tasks. Maor says that not having to switch between the two different hardware mechanisms means much more can be done when it comes to sharing CPU and GPU cycles. In the big picture, though, he sees it as another resource available to be harnessed.
When it comes to resources, organizations of all sizes might benefit from exploring just what capturing unused CPU cycles might do for their operations and potentially their bottom line. Maor offers that most people only actually use about 30% of the processing power available in their computers, and that represents investment that isn't realizing a return.
Duane Craig reports and writes on technology, construction, finance, food, and agriculture. He's been published in trade print magazines, the Washington Post, and widely on the web.