Is there any way to dynamically and seamlessly migrate a program / computation from a local desktop PC to the cloud?
Basically, what I am interested in is a platform, similar to Dropbox, but for computing resources. A user run an application on their local machine, hits the CPU limit of his local machine (e.g. runs intense 3D simulation), and this job is migrated live without interruption to the cloud, whilst the user maintains interactive control on the process.
To put it in other words, the heavy computations are outsourced to the cloud, but only if the local machine can’t cope, without interruption. This should be done without modification to the user’s application.
Is this possible? If not, is there anything even remotely close to that which can be used to build such a platform.
What you want to use is known as a Platform As A Service Cloud provider (you write a program for that platform and it will be scale automatically on the provider’s infrastructure based on the workload you submit). For example:
But you last precision suggest that you want it to be tightly bounded with your local application. In that case I would use of those mentioned with a local script that deem whether or not you should outsource a part of the computation to the cloud.
I would suggest that because I don’t know the feasibility of a method that would rely on a full VM “live” migration.
So to sum up, I if were you I would build a wrapper around my program so that it can run on the Cloud. And I will run a script locally that decide to transfer or not the computation to the cloud.