Let's say I have a normal desktop application that is designed to run on a single machine, say, a video editing application. Such applications often spawn background threads that are computationally demanding, e.g., video rendering.
I was wondering if it is technically feasible to "offload" these heavy computation threads to a more powerful machine, and do it in a way that is seamless to the user. The user's machine will run only the UI thread, while the rest of the heavy lifting is handled on the more powerful remote machine. Let's assume that the data that the thread needs to perform the computation (in our example, the video files) are available on the remote machine's disk.
I understand it's not so easy to get two threads on two completely different processors to talk to each other as if they were running on the same machine - but I was wondering what the fundamental limitation here is, and if there are any known solutions for this use-case.