Pregunta

En una conferencia en la programación paralela de HPC (para CPU), discutimos varios modelos disponibles de PTHEADS a OpenMP a MPI y otros como Charm ++, X10, UPC, Capilla ....El enfoque principal estaba claramente en los tres primeros.Intrigado por el tema, hice algunas investigaciones por mi cuenta, pero podría encontrar fuentes, ejemplos y discusiones principalmente para los primeros tres.Más tarde, descubrí "AMPI", que incluso puede ejecutar la aplicación MPI heredada con muchos de los beneficios que ofrece Charm ++, pero nadie parece usarlo.

¿Por qué los otros modelos se descuidan así?En comparación con las alternativas MPI más bien crudas, como el encanto ++ y la UPC, aparecen más convenientes, ya que manejan una gran cantidad de "trabajo sucio" cuidadosamente en el fondo.

¿Fue útil?

Solución

Le daré dos razones principales por las que MPI y OpenMP dominan.

El primero es que son los estándares . Hay varias implementaciones disponibles, y puede asegurarse de encontrarlas disponibles en todas las máquinas de supercomputadora posible. Esto está estrictamente relacionado con el concepto de portabilidad : usted escribe su código paralelo y, si no usa nada más relacionado con una máquina en particular, puede ejecutar el mismo código en todas las máquinas paralelas. tener disponible.

La segunda razón es la resistencia del programador . Con MPI y OpenMP que cubren la programación paralela de la memoria de mensajes y la memoria compartida (y incluso puede usarlos simultáneamente si es útil y / o requerido) por qué un programador, especialmente un principiante en el campo, debe gastar su tiempo aprendiendo nuevo paralelo ¿Idiomas de programación que no se les otorgan para convertirse en estándares? Claro, como lo señaló, otros idiomas proporcionan algunos beneficios, pero la pregunta es, ¿invertiría su tiempo apostando por algo que pueda incluso desaparecer totalmente en el futuro? Los estándares están aquí para quedarse. De todos modos, con respecto a este punto específico, mi opinión humilde es que, si es posible, en su lugar, se debe pasar un tiempo en diferentes idiomas (no solo a aquellos para la programación paralela) porque esta es una disciplina útil y aprender diferentes paradigmas es siempre beneficioso. Sin embargo, al leer su currículum vitae para una posible contratación, las personas que pueden contratarlo para una posición estarán en general en su mayoría interesadas en su conocimiento de las normas, no a su conocimiento de los idiomas de nicho (en general, aunque podría haber excepciones por supuesto).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a cs.stackexchange
scroll top