alkaitz escribió:DyV, ¿estás seguro que LINPACK está diseñado para alto rendimiento? Te lo digo porque la mayoría de equipos del TOP500 son clusters, y por lo tanto son equipos de memoria distribuida -> malos para el alto rendimiento pero buenos para alta productividad. Te lo digo por eso.
A lo mejor estamos hablando de los mismos conceptos pero con distinto significado, aunque lo dudo...
Todo lo demás no te lo discuto.
Un saludo
Los clusters los hay de alto rendimiento y de alta productividad. Incluso ahora hay procesadores de alto rendimiento (como Cell) y procesadores de alta productividad (como el Niagara, creo que lo llaman T1 (y T2) ahora). Que sea memoria distribuida no implica que no valga para alto rendimiento. Te estarías dejando por el camino como 15 o 20 años de trabajo en división del trabajo, paralelización y comunicación entre procesos (multigrid o MPI, por ejemplo). La razón de utilizar clusters (que aunque sean clusters, no son clusters beowulf; tienes una redes de comunicación del copón bendito y una organización de la leche) es que pueden escalar mucho mejor que los sistemas NUMA. Con lo que al final puedes alcanzar rendimientos muy superiores a los sistemas de memoria compartida. La contrapartida es que son mucho más difíciles de programar (hablo desde la experiencia).
Si el top500 fuese una lista de computadores de alta productividad, no medirían el rendimiento el MFLOPS, sino en MTs o lo que se estile ahora en alta productividad. Si te fijas para qué los utilizan (lo puedes leer en las descripciones) son todas tareas de alto rendimiento: predicción meteorológica o de terremotos, simulación de procesos biológicos, simulación de fluídos, simulaciones de física de altas energías, etc.
Y sí, yo creo que entendemos los dos lo mismo por alta productividad y alto rendimiento. Alta productividad (high throughput computing): terminar el mayor número de trabajos por unidad de tiempo. El tiempo que tarda un trabajo individual no es importante, lo importante es que acaben muchos por unidad de tiempo. Alto rendimiento (high performance computing): terminar un trabajo en el menor tiempo posible. Lo más importante aquí es que la predicción del clima de mañana esté terminada antes de mañana. O que la simulación de la aerodinámica de mi ala esté terminada, si puede ser en 3 días, mejor que en 3 semanas.
Creo que lo que te falla es que no tienes práctica con estos sistemas y te has perdido en algún concepto teórico (es complicado saber cómo funcionan estas máquinas si no intentas programarlas; según mi opinión, es lo más complejo que se puede hacer en programación). Si te motiva el tema, te recomiendo alguna lectura sobre paralelización de algoritmos numéricos. Me da la sensación de que tienes base de sobra para entenderlo y te despejará las dudas que puedas tener sobre los clusters de alto rendimiento.



