¿Cuál es el modelo teórico adecuado para diseñar algoritmos para computadoras de alto rendimiento actuales y futuras?

20

Esta pregunta es similar a una pregunta más general sobre cuál es el modelo teórico correcto de una computadora para diseñar algoritmos y estructuras de datos.
Aquí, pregunto específicamente sobre las computadoras actuales de alto rendimiento (como las que figuran como las 500 principales ) o incluso sobre próximas supercomputadoras.

Dado que estas computadoras generalmente están trabajando en grandes conjuntos de datos (parece que algunas personas usan tales máquinas principalmente porque tienen una enorme memoria principal combinada) aspectos del modelo de E / S (introducido por Aggarwal y Vitter en 1988 ) y su versión paralela , el PEM ( Arge, Goodrich, Nelson y Sitchinava en 2008 ) debería estar presente. Por otro lado, debería haber algo sobre la comunicación, en particular castigar los paquetes ultra pequeños a todos los demás nodos informáticos.

Como se puede imaginar, no temo que me estoy quedando sin ideas al crear un nuevo modelo, pero estoy un poco preocupado de que pueda pasar por alto los intentos anteriores al hacerlo, en particular porque tengo la impresión de que los años 1980- En 1995, más o menos, se observaron muchos de estos intentos de modelado (como BSP o modelos puente) que parecen no haber sido ampliamente utilizados.

¿Qué modelos debería analizar más de cerca?

Riko Jacob
fuente
esto no responde en absoluto, pero cualquier modelo para supercomputadoras actuales y futuras pero incrusta fallas / tolerancia a fallas.
Sylvain Peyronnet
Echa un vistazo a la taxonomía de Flynn. Según Wikipedia, "Los 10 mejores y la mayoría de las supercomputadoras TOP500 se basan en una arquitectura MIMD". en.wikipedia.org/wiki/MIMD
Mohammad Al-Turkistany
¿Puede aclarar la frase: "Por otro lado, debería haber algo sobre la comunicación, en particular castigar los paquetes ultra pequeños a todos los demás nodos de computación". ¿Es eso un error tipográfico? debería estar empujando ? ¿Podría una respuesta a esta pregunta ser patrones de diseño paralelos, por ejemplo, mapreduce, CSP de Hoare? ver también algoritmos olvidados de caché, wikipedia
vzn

Respuestas:

9

En PODC 2009, Bruce Hendrickson dio una fenomenal charla invitada sobre estos temas. (Sus diapositivas no parecen estar en línea, pero es posible que desee preguntarle si puede verlas.) No creo que haya un modelo "correcto" todavía - ¡bonificación para usted! - pero le sugiero que mire sus documentos, especialmente los de la página de Gráficos y Arquitecturas , donde intenta descubrir cómo manejar gráficos enormes con poca estructura (es decir, conjuntos de datos "modernos") en máquinas multiproceso masivo.

Aaron Sterling
fuente
Gracias por la anotación. Echando un vistazo, tengo la impresión de que no está tan interesado en definir un modelo que permita un análisis teórico. ¿Paso algo por alto? Quizás debería contactarlo directamente.
Riko Jacob
@Riko Jacob: Estoy de acuerdo en que Hendrickson es más un practicante que un modelador. Sin embargo, pensé que tenía una excelente intuición para lo que se necesitaba. Si desea documentos sobre modelos, podría estar más interesado en el Taller sobre teoría y muchos núcleos . Sin embargo, no encuentro ninguno de esos modelos satisfactorio, y estaría muy interesado en ver qué se te ocurre. :-)
Aaron Sterling
8

Un problema que no está claro es cómo se desarrollarán los cachés. La tesis de 2009 de Nikos Hardavellas considera estas cosas desde la perspectiva de los sistemas, incluidas las consideraciones de los límites físicos para los sistemas de memoria escalables. La tesis no presenta un modelo como tal, pero puede darle algunas pistas.

Rasmus Pagh
fuente
4

Iniciar sesiónX

Suresh Venkat
fuente
Después de mirarlo, me parece un predecesor del modelo ajeno al caché. Tampoco vi ninguna idea sobre el procesamiento paralelo. ¿Me perdí algo aquí?
Riko Jacob
Creo que se trata más de modelos de memoria jerárquica, eso es cierto.
Suresh Venkat