1

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.

2 Answers 2

0

A "normal" desktop application that is designed to run on a single machine would not be able to split its threads this way.

It would take a specially-built application with a programmed inter-computer interface to do that, for example a remote-desktop application.

In the general case, without a dedicated high-speed connection between the two computers, the latency involved in the connection would render the screen unsuitable for too-dynamic video applications.

1

This is very task dependent, and it also depends on exactly how you define seamlessly.

For certain types of loads this already happens. In fact the video editing task you define can do just that in some cases - the term is a "rendering farm".

More generically, many types of "cloud compute" solve this problem.

(The problem with this answer is how you define seamlessley - there are certainly architectures - mainly software ones - that can oversee and make this kind of operation seamless - but they require moderately complex and task dependent setups. Not all tasks are amenable to this model either - particulary where bandwidth is likely to be an issue or where tasks cant be parallelised.)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .