No estoy seguro de que haya modelos de programación para la computación en la nube. Quiero decir, puedes ejecutar programas MPI en la nube de Amazonas, y puedes instalar MapReduce en tu clúster tradicional. Tal vez la computación en la nube es solo un modelo de facturación …
De todos modos, mencionas MPI y Pregel, que son los únicos en tu lista que se ocupan de la memoria distribuida y que tienen la noción de que los datos están en algún lugar, no en otro lugar, y moverlos tiene un costo. Esta es una visión realista del mundo, pero algo difícil de programar. Entonces, en HPC, las personas han tratado de encontrar formas de hacer un programa de memoria distribuida que relaje algunas de estas restricciones en el programa de usuario.
Enumeraría los paquetes PGAS, como UPC y GlobalArrays, como un modelo diferente: reconocen que los datos tienen cierta afinidad de procesador, pero expresan algoritmos en términos globales, en lugar de procesador local como en MPI y Pregel.
- Cómo reducir los costos en la nube con AWS
- ¿Cuáles son los proveedores de servicios en la nube?
- ¿Por qué los servicios de almacenamiento en la nube como Google Drive y OneDrive son gratuitos? ¿Cuál es el beneficio para aquellas corporaciones que ofrecen almacenamiento gratuito?
- ¿Debo usar un software de programación basado en la nube para mi negocio de membresía?
- ¿Cómo beneficia la computación en la nube al comercio electrónico?
Chapel es un poco como PGAS, pero más sofisticado. X10 He tenido la intención de investigar pero no he encontrado el tiempo.
Además, hay BSP, que es esencialmente MPI con comunicación unilateral. También incluye un componente de colocación aleatoria de procesos y una suscripción excesiva del procesador, que es solo de interés teórico.
En la década de 1980, la gente intentó hacer máquinas paralelas basadas en el “flujo de datos”. Esa noción está volviendo, tanto en las tareas de OpenMP como en productos como SuperMatrix, Quark, DagUe.
Finalmente, debería echar un vistazo a los “mensajes activos” como modelo. Se implementa en Charm ++. Es una especie de mecanismo de llamada a procedimiento remoto para HPC.