Can I share CPU over network?

I have two desktops, one of which I'm using as a server. My main machine has a weaker i5 cpu, my server has a stronger i7 cpu. On my main machine I am experiencing stutters because the CPU often runs at full load under regular use.

I was wondering if there was any possible way to share a cpu from one machine over network to another machine as an emulated processor, which could be used by the client machine in a similar sort of fashion as virtual machines use or "borrow" their host's cpu.

This way I could offload work onto the server's cpu when the main cpu is under full load to prevent annoyances like stutter, and possibly combine both of them for more intense tasks (like decryption, compilation, archiving or other multithreaded stuff)

Does this sort of software exist, or has anyone at least tried to make it? If not, is it feasible?

(This sort of program would also ideally be able to offload data onto the server's RAM for faster processing, since the now common gigabit connections get to have nearly the same speeds as a standard HDD this doesn't sound far fetched either)

To reiterate, what I am primarily looking for is the ability to offload work from a system's main cpu when it is under too much load and forwarding it to another computer's cpu over network.


Solution 1:

At a fundamental level, the answer is yes, but you can't do this in the way you are thinking.

Supercomputers use this tactic to provide incredible computing horsepower, but they are nothing more than a cluster of regular ol' computer systems (called nodes) that cooperate to process a particular task. They have control software that farms out individual work units to various nodes to be calculated independently. The CPUs in such nodes are not communicating with each other per se. An application running on one of the nodes is coordinating the work, much like a project manager would coordinate the members of a team to complete a project.

Such a supercomputer setup requires:

  • An operating system that is designed for this purpose, installed on each node in the cluster.
  • Control software that can parcel out the work to each node and coordinate the result data received from them.
  • An application that can break a problem down into discrete work units, written in the control software's language.

So in your situation, no, you can't combine the CPU and memory of your two computers to make Google Chrome perform faster.

Solution 2:

This is known as CPU interleaving. I believe you need a compatible BIOS on both devices along with smart cards. However, interleaving is designed to be run over dual port fiber cards (not LAN).