¿Es factible combinar perfectamente los recursos de dos máquinas en una sola máquina virtual?

¿Es factible combinar perfectamente los recursos de dos máquinas en una sola máquina virtual?

Digamos que tengo una aplicación de escritorio normal diseñada para ejecutarse en una sola máquina, digamos, una aplicación de edición de video. Estas aplicaciones a menudo generan subprocesos en segundo plano que exigen cálculos, por ejemplo, renderizado de vídeo.

Me preguntaba si es técnicamente factible "descargar" estos pesados ​​subprocesos de cálculo a una máquina más potente y hacerlo de una manera que sea sencilla para el usuario. La máquina del usuario ejecutará solo el subproceso de la interfaz de usuario, mientras que el resto del trabajo pesado se realiza en la máquina remota más potente. Supongamos que los datos que el hilo necesita para realizar el cálculo (en nuestro ejemplo, los archivos de video) están disponibles en el disco de la máquina remota.

Entiendo que no es tan fácil lograr que dos subprocesos en dos procesadores completamente diferentes se comuniquen entre sí como si se estuvieran ejecutando en la misma máquina, pero me preguntaba cuál es ellimitación fundamentalaquí está, y si hay alguna solución conocida para este caso de uso.

Respuesta1

Una aplicación de escritorio "normal" diseñada para ejecutarse en una sola máquina no podría dividir sus subprocesos de esta manera.

Se necesitaría una aplicación especialmente diseñada con una interfaz entre computadoras programada para hacerlo, por ejemplo, una aplicación de escritorio remoto.

En el caso general, sin una conexión dedicada de alta velocidad entre los dos ordenadores, la latencia involucrada en la conexión haría que la pantalla no fuera adecuada para aplicaciones de vídeo demasiado dinámicas.

Respuesta2

Esto depende mucho de la tarea y también de cómo se define exactamente.

Para ciertos tipos de cargas esto ya sucede. De hecho, la tarea de edición de vídeo que definas puede hacer precisamente eso en algunos casos: el término es "granja de renderizado".

De manera más genérica, muchos tipos de "cómputo en la nube" resuelven este problema.

(El problema con esta respuesta es cómo se define la perfección; ciertamente existen arquitecturas, principalmente de software, que pueden supervisar y hacer que este tipo de operación sea perfecta, pero requieren configuraciones moderadamente complejas y dependientes de las tareas. No todas las tareas son compatibles con este modelo (particularmente cuando el ancho de banda probablemente sea un problema o donde las tareas no se pueden paralelizar).

información relacionada