Here are a few questions, I wish you could enlighten me.
- Is it possible to combine processing power of 2 computers?
- How do I do it?
Here are a few questions, I wish you could enlighten me.
Not transparently where a running program can somehow use the second machine to execute code, since they are logically separate with no way for the cpu to communicate or access each other's memory.
That doesn't mean you can't combine processing power:
If you are looking to harness the secondary computer in any way, being able to remote control it is crucial. Two ways to do this are via some sort of remote access (RDP, VNC) or alternatively something like synergy+.
If what you are looking for is a method of combining the processing power of two PCs into one, the "easiest" way to do it is to configure both of them as virtual machine hosts using software like VMWare ESXi (Be forewarned this will require the device to have compatible hardware) and creating a resource group or cluster and creating a virtual machine that uses the resources of both computers. This is NOT going to get you a full 2x speed (You'll lose resources due to virtualization) and is a limited solution due to likely compatibility requirements but it is the most "correct" answer to your question. The virtual machine will act like a single PC with the processing power of both hosts minus the overhead required to sustain virtualization.
One of my most used lines - Yes and No!
Yes it is possible - for certain applications that are designed to work this way. (Commonly known as a cluster - Further reading here)
No it is not possible (at least as far as I know) to take two off the shelf computers, "tie" them together and get the combined memory, processing power and everything else.
It is very possible! But judging by the simplicity of your question, I assume you would like to simply run a program which will magically make your computer twice as fast, which is not possible.
You need to understand that when a program runs it maintains its state by provoking the CPU to move memory between the HDD, RAM, and CPU registers, as well as addresses on various components (such as video cards or network cards). The trouble with using a CPU from another computer to help you is that it needs access to the same memory. And maintaining a mirror image of your computers memory on another computer requires so much overhead that it easily defeats the purpose of trying to add another computer to gain performance :)
But the type of things which can be split among multiple computers are image rendering or some mathematical calculations which can work independently.
I agree with the other answers:
If you are talking about developing software to run in a distributed (multi-computer) environment, here are a couple of suggestions: