Say, i have 1 CPU-intensive C++ console application(game server). Do i need to program it specially to have ability to scale 1 application on several machines or there is special software to make 2-3 servers act as single?
UPDATE: I have login server seperated from game server. Server has a place where all players meet together but there is no such cpu work. The most in game threads, player create a game – 1 thread.
As i understood i need to program application to be able to create game instance on another server machine?
You have to program the server in such a way that it knows there may be other instances of itself – for example by getting just part of the tasks as its responsibility in such a way that other instances will know someone else is doing that and not take it twice.
For the load balancing – there are some software that does automatic load balancing but load balancing can only work correctly if the actual server support that.