En gran medida, el lenguaje es irrelevante: las bibliotecas de codificación / decodificación de video generalmente se escriben en código nativo, por ejemplo, en C. Sin embargo, distribuir el trabajo en un clúster es “simplemente” una cuestión de llevar el trabajo a esas máquinas, tener las máquinas hacer el trabajo y luego reunir los resultados y unirlos. Esto es principalmente una cuestión de arquitectura.
Ahora, una transmisión de video en vivo, por ejemplo, no es un buen candidato para la computación distribuida ya que una sola máquina puede encargarse de todo el trabajo.
Se pueden asignar múltiples transmisiones de video en vivo a cada una a un hilo de cómputo de forma circular.
- ¿Podemos hacer programación en computadoras portátiles para juegos?
- ¿Qué computadora usas y cuál es tu profesión?
- ¿Qué es una máquina virtual?
- ¿Cuáles son las configuraciones de CPU de gama alta bajo 60k INR?
- ¿Qué debo hacer si el mouse de mi computadora deja de funcionar?
Sin embargo, si tiene un solo archivo de video sin procesar y desea codificarlo, entonces debe dividir el archivo en particiones de aproximadamente el mismo tamaño, generalmente en función del tiempo, dispersar esas particiones en un conjunto de recursos en un clúster y luego reúna los resultados finales y únalos en una sola máquina.
El diablo está en los detalles, por supuesto, como lidiar con fallas de un solo nodo o con procesos de codificación / decodificación de varios pasos, por ejemplo, hacer que el proceso de costura también se distribuya.
Hay varios tiempos de ejecución para la distribución de la carga de trabajo. A menudo, estos tiempos de ejecución admiten múltiples idiomas, más comúnmente lenguajes JVM como Scala y Java, así como también lenguajes Python y, a veces, .NET como C # y F #.
Algunos ejemplos de estos tiempos de ejecución incluyen Spark y Flink .
Estos se ejecutan sobre un sistema que gestiona y asigna recursos de clúster. Los dos jugadores principales en este campo son Mesos y YARN .
Además, necesita una fuente de datos para alimentar su grupo hambriento hambriento. HDFS, S3 y Kafka son fuentes de datos típicas para tales sistemas.