Sistemas distribuidos: ¿Cuáles son algunas diferencias clave entre el modelo de actores y el paralelo síncrono masivo?

Asumiré que ‘paralelo síncrono masivo’ significa el modelo BSP de Valiant (perdóneme si esto es obvio, me he acostumbrado al término que aparece en sentidos mucho más vagos) y haré la reserva con la que estoy menos familiarizado El modelo de actor.

Yo diría que ya se encuentra una diferencia principal en el título del artículo original de Valiant, en el sentido de que propone un * modelo puente * de computación paralela, es decir, un punto medio donde los parámetros de rendimiento de la computadora ejecutora y la descripción algorítmica están relacionados a otro. El modelo de actor tiene como objetivo unificar las nociones de todas las cosas que pueden tener lugar simultáneamente, formando una herramienta de razonamiento sobre cálculos paralelos menos gravados (alternativamente, aumentados) por las consideraciones de un motor computacional práctico para llevar a cabo todo el trabajo.

Cuando el modelo de actor, por ejemplo, permite que un actor genere más actores, un cálculo BSP tiene el número de procesos como un parámetro fijo. Sacrifica algo de flexibilidad programática, pero permite que se produzca una estimación de costos de superpasos computacionales como una función bastante sencilla de la computadora y el programa elegidos, admitiendo inferencias sobre el conteo óptimo del proceso para un problema dado.

Además, la noción de BSP del superespaso computacional sincronizado reduce el costo computacional general a una suma de costos de pasos que son individualmente relativamente fáciles de analizar con respecto a un conjunto de parámetros de la máquina, suponiendo que todos los procesos están haciendo un trabajo razonablemente similar. Este es un escenario muy común en muchas aplicaciones importantes de HPC, pero en un caso en el que el trabajo de cada actor concurrente sería significativamente diferente de todos los demás, una sincronización global implícita (como la que el BSP asocia con la comunicación) puede ser innecesaria, engorroso y caro.

En general, BSP me parece un medio para derivar modelos de rendimiento de combinaciones de software / hardware en un entorno bastante específico, mientras que los actores serían un medio para exponer la concurrencia inherente a un algoritmo. Sin embargo, como ya se dijo, pasé principalmente tiempo en BSP; está cerca del tipo de cosas que hago. Espero que alguien más versado en actores pueda arrojar más luz sobre el asunto.

La principal diferencia es que el modelo de actor es completamente asíncrono: un actor puede entrar en acción cuando recibe las señales requeridas. No hay coordinación con los otros actores, por lo que no hay superpasos globales como en BSP.