Like Apple once did with Xcode and Xgrid, it wants to leverage all the processors you have across your Mac, iPhone, and iPad and make them work together for you when you need more processing power.
The screen you’re reading this on is part of a very powerful computing device. Yet the odds are that shortly you’re going to put this down and pick up a different device that if it isn’t as powerful, is still pretty close.
We all pop our iPhones in our pockets or purses, we all put our iPads down on a desk or in a bag, as we open up our Macs or MacBook Pro machines. Maybe those devices are still doing some work for us, but Apple wants them to do more.
“Peer-to-peer distributed computing system for heterogeneous device types,” a new US patent, describes what is basically distributed computing. Apple itself used to offer distributed processing to speed up producing apps within Xcode, but now it wants to bring it to us all.
“With the advent of an increased number a portable computing devices,” says Apple, “the need for integration between various devices has become increasingly important. For example, a user may have access to multiple types of devices at a given time (e.g. smartphone, laptop, etc.), and accordingly, these devices may communicate amongst each other to provide an enhanced user experience.”
“This enhanced user experience may include sharing resources amongst devices in order to increase capabilities such as processing capacity, battery usage, network bandwidth, storage, and the like,” it continues.
Apple says that this effectively creates a “distributed computing environment,” just by the existence of these devices. However, there are problems, chiefly cause by us.
“The communication link between devices is often severed, for example, when the device is physically removed from an area (e.g. when a user leaves a location with an accompanying portable device),” explains Apple. We’re also rubbish at keeping everything charged up.
So we have our cluster of devices but they may not be powered and they will go in and out of range. “Accordingly, traditional distributed computing frameworks are often ill suited for the environments of current user devices,” says Apple.
Apple’s proposed solution is what it calls “a flexible framework (or technique or method)” that can “efficiently utilize resources within the environment (e.g. device ecosystem).” If another device is nearby, and it has “greater capabilities such as processing capacity, storage, power resources, etc.,” then it may be given some processing to do.
“For instance, it may not be uncommon for a user to have a personal device such as a smartphone in proximity to a laptop or desktop computer, either of which may be connected to a continuous power source (e.g. plugged into an electrical outlet),” says Apple. “Accordingly, the smartphone may offload processing tasks such as editing multimedia (e.g. photos) to the desktop or laptop computer to utilize a potentially more powerful processor and to conserve battery power.”
The 11,000 words or so of the patent detail methods of how devices can tell each other that they are available, and what capabilities they have. It also covers how this adhoc network can cope when a device is unexpectedly removed.
“[It may] recognize that a device has rejoined the environment, and accordingly, may resume computations that were suspended,” says Apple.
The patent is credited to Oliver M. Williams. He’s previously been listed on multiple patents to do with image recognition, including one on a system for identifying books on a bookshelf from a photograph.
Apple is not new to distributed computing. As well as its previous inclusion in Xcode for developers, Apple used to support it for researchers and general users as Xgrid, part of Mac OS X Tiger.
It was also in Mac OS Server, and the origins of this particular implementation of the idea can be traced back to NeXT. However, Apple dropped Xgrid with Mac OS X Mountain Lion.