Linking computers together in this way is known as clustering and both Linux and Microsoft support the clustering of computers. An important aspect of this is how the different computers talk to each other and of course how you write programs to make the best use of parallism. Then you get problems of synchronizing and how data is moved between the different boxes. Also you get new bugs such as race conditions where some kind of locking mechanism has to be used to prevent data being corrupted.

