¿Cuáles son los modelos de programación para HPC y la computación en la nube?

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.

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.

Además de la excelente sugerencia de Victor, estas son las que creo que se usan con frecuencia especialmente cuando se trata de programación heterogénea:

HPC
1. OpenCL: compatible con todos los principales proveedores de compiladores Intel, AMD, NVIDIA (creo), incluso Altera (FPGA)

2. Cilk Plus
3. Intel TBB
4. CUDA
5. OpenACC

Para la nube, HTC, creo que cubriste la mayoría de las que ya conozco. Yo podria agregar-

1. Akka: la biblioteca de actores más utilizada con Scala
2. Ir – nuevo lenguaje de programación de google

More Interesting

¿Cuáles son las ventajas y desventajas de Google Sheets frente a Microsoft Excel?

¿Qué servicios de intercambio de archivos cifran los archivos antes de cargarlos en el servidor?

Independientemente del costo, ¿puede ejecutar software de núcleo único más rápido en la nube o en hardware dedicado? ¿Puede la nube ejecutar aplicaciones de un solo núcleo en una escala de supercomputadora? ¿Es la nube un clúster de alto rendimiento?

¿Qué tipos de empresas requieren un seguro en la nube (es decir, recibir un pago cuando las empresas de computación en la nube caen)?

Cómo convertirse en un experto en computación en la nube

¿Debería comenzar una startup de Internet con Cloud Hosting o un servidor dedicado?

¿Pueden los proveedores de la nube pública (GCP, AWS, Azure) utilizar los datos del cliente para mejorar sus propios servicios, particularmente en el aprendizaje automático?

¿Cómo se ha beneficiado su negocio de las comunicaciones basadas en la nube?

Cada vez que cambia de computadora, ¿debe descargar y sincronizar su unidad en la nube (OneDrive o Google Drive)?

¿Pueden los servicios en la nube, como Dropbox, permitirse mantener todos los datos (tal vez para sus propios fines), incluso si el usuario los ha eliminado?

¿Cuál es la diferencia entre la computación analógica y la arquitectura de computación digital?

¿Cuál es el precio más bajo de Cloud Hosting Platform?

¿Qué pasaría con mis compras digitales si Steam, Amazon o Vudu cierran?

¿Cómo puede la computación en la nube ayudar a preparar su negocio para el futuro?

¿Compute Engine de Google va a ser competitivo con las plataformas en la nube de Amazon y Microsoft?