Puntos de referencia de LINPACK

Medida de la arquitectura de punto flotante de un sistema
Puntos de referencia de LINPACK
Autor(es) original(es)Jack Dongarra , Jim Bunch, Cleve Moler y Gilbert Stewart
Lanzamiento inicial1979 ( 1979 )
Sitio webnetlib.org/benchmark/hpl/

Los puntos de referencia LINPACK son una medida de la potencia de cálculo de punto flotante de un sistema . Introducidos por Jack Dongarra , miden la velocidad con la que un ordenador resuelve un sistema denso de n por n ecuaciones lineales Ax  =  b , que es una tarea habitual en ingeniería .

La última versión de estos puntos de referencia se utiliza para crear la lista TOP500 , que clasifica las supercomputadoras más potentes del mundo. [1]

El objetivo es aproximar la velocidad con la que un ordenador se desempeñará al resolver problemas reales. Es una simplificación, ya que ninguna tarea computacional puede reflejar el rendimiento general de un sistema informático. Sin embargo, el rendimiento del benchmark LINPACK puede proporcionar una buena corrección sobre el rendimiento máximo proporcionado por el fabricante. El rendimiento máximo es el rendimiento teórico máximo que un ordenador puede lograr, calculado como la frecuencia de la máquina, en ciclos por segundo, multiplicado por el número de operaciones por ciclo que puede realizar. El rendimiento real siempre será inferior al rendimiento máximo. [2] El rendimiento de un ordenador es un tema complejo que depende de muchas variables interconectadas. El rendimiento medido por el benchmark LINPACK consiste en el número de operaciones de punto flotante de 64 bits , generalmente sumas y multiplicaciones, que un ordenador puede realizar por segundo, también conocido como FLOPS . Sin embargo, es probable que el rendimiento de un ordenador al ejecutar aplicaciones reales esté muy por detrás del rendimiento máximo que logra ejecutando el benchmark LINPACK apropiado. [3]

El nombre de estos benchmarks proviene del paquete LINPACK , una colección de subrutinas de álgebra Fortran ampliamente utilizadas en la década de 1980, e inicialmente estrechamente vinculadas al benchmark LINPACK. El paquete LINPACK ha sido reemplazado desde entonces por otras bibliotecas.

Historia

El informe de referencia LINPACK apareció por primera vez en 1979 como apéndice del manual del usuario de LINPACK . [4]

LINPACK fue diseñado para ayudar a los usuarios a estimar el tiempo que necesitan sus sistemas para resolver un problema utilizando el paquete LINPACK, extrapolando los resultados de rendimiento obtenidos por 23 computadoras diferentes al resolver un problema matricial de tamaño 100.

Este tamaño de matriz se eligió debido a las limitaciones de memoria y CPU en ese momento:

  • Se generan aleatoriamente 10 000 entradas de punto flotante de -1 a 1 para completar una matriz densa general.
  • Luego, se utiliza la descomposición LU con pivoteo parcial para la sincronización.

Con el paso de los años, se lanzaron versiones adicionales con diferentes tamaños de problemas, como matrices de orden 300 y 1000, y restricciones, lo que permitió nuevas oportunidades de optimización a medida que las arquitecturas de hardware comenzaron a implementar operaciones matriz-vector y matriz-matriz. [5]

El procesamiento paralelo también se introdujo en el benchmark LINPACK Parallel a finales de la década de 1980. [2]

En 1991, el LINPACK fue modificado para [6] resolver problemas de tamaño arbitrario, permitiendo que las computadoras de alto rendimiento (HPC) se acerquen a su rendimiento asintótico.

Dos años más tarde, este parámetro se utilizó para medir el rendimiento de la primera lista TOP500 .

Los puntos de referencia

Paquete Linpack 100

LINPACK 100 es muy similar al benchmark original publicado en 1979 junto con el manual de usuario de LINPACK. La solución se obtiene mediante eliminación gaussiana con pivoteo parcial , con 2/3n 3 + 2n 2 operaciones de punto flotante donde n es 100, el orden de la matriz densa A que define el problema. Su pequeño tamaño y la falta de flexibilidad del software no permiten que la mayoría de las computadoras modernas alcancen sus límites de rendimiento. Sin embargo, todavía puede ser útil para predecir el rendimiento en código escrito por el usuario con uso intensivo de números mediante la optimización del compilador. [2]

Paquete Linpack 1000

LINPACK 1000 puede proporcionar un rendimiento cercano al límite de la máquina porque además de ofrecer un tamaño de problema mayor, una matriz del orden de 1000, son posibles cambios en el algoritmo. Las únicas restricciones son que la precisión relativa no se puede reducir y el número de operaciones siempre se considerará 2/3 n 3 + 2 n 2 , con n = 1000. [2]

Paquete HPLinpack

Los benchmarks anteriores no son adecuados para probar computadoras paralelas, [7] y se introdujo el llamado benchmark Linpack's Highly Parallel Computing, o benchmark HPLinpack. En HPLinpack, el tamaño n del problema puede hacerse tan grande como sea necesario para optimizar los resultados de rendimiento de la máquina. Una vez más, se tomará 2/3n 3 + 2n 2 como el número de operaciones, con independencia del algoritmo utilizado. No se permite el uso del algoritmo Strassen porque distorsiona la tasa de ejecución real. [8] La precisión debe ser tal que se cumpla la siguiente expresión:

" A incógnita b " ( " A " " incógnita " + " b " ) norte o Oh ( 1 ) {\displaystyle {\|Ax-b\|_{\infty } sobre (\|A\|_{\infty }\|x\|_{\infty }+\|b\|_{\infty })n\epsilon }\leq O(1)} ,

dónde

  • o {\displaystyle \épsilon} es la precisión de la máquina, y
  • n es el tamaño del problema, [9]
  • " " {\displaystyle \|\cdot \|_{\infty }} es una norma matricial (suma de filas más grande [10] ) y
  • Oh ( 1 ) {\estilo de visualización O(1)} corresponde a la notación big-O .

Para cada sistema informático se informan las siguientes cantidades: [2]

  • R max : el rendimiento en GFLOPS para el problema más grande ejecutado en una máquina.
  • N máx .: el tamaño del problema más grande ejecutado en una máquina.
  • N 1/2 : el tamaño donde se alcanza la mitad de la tasa de ejecución de Rmax.
  • R pico : el rendimiento máximo teórico en GFLOPS para la máquina.

Estos resultados se utilizan para compilar la lista TOP500 dos veces al año, con los ordenadores más potentes del mundo. [1] TOP500 mide estos resultados en formato de punto flotante de doble precisión (FP64). La relación entre Rmax y Rpeak se denomina eficiencia paralela o eficiencia HPL. [11] Por lo general, es menor cuantos más nodos tiene un sistema debido a la sobrecarga de comunicación. Por ejemplo, un Cray Y-MP de la década de 1990 alcanza una eficiencia HPL de aproximadamente el 90%, [12] mientras que Frontier alcanza aproximadamente el 70% en 2023. [13]

Implementaciones de referencia de LINPACK

En la sección anterior se describen las reglas básicas para los puntos de referencia. La implementación real del programa puede variar, y algunos ejemplos están disponibles en Fortran , [14] C [15] o Java . [16]

Láser de alta potencia

HPL es una implementación portátil de HPLinpack que se escribió en C, originalmente como una guía, pero que ahora se usa ampliamente para proporcionar datos para la lista TOP500, aunque se pueden usar otras tecnologías y paquetes. HPL genera un sistema lineal de ecuaciones de orden n y lo resuelve utilizando la descomposición LU con pivoteo parcial de filas. Requiere implementaciones instaladas de MPI y BLAS o VSIPL para ejecutarse. [17]

A grandes rasgos, el algoritmo tiene las siguientes características: [18] [19]

  • Distribución cíclica de datos en bloques 2D
  • Factorización LU utilizando la variante de búsqueda correcta con varias profundidades de anticipación
  • factorización de panel recursiva
  • Seis variantes diferentes de transmisión en panel
  • algoritmo swap-broadcast que reduce el ancho de banda
  • sustitución hacia atrás con anticipación de profundidad 1

Crítica

Se dice que el benchmark LINPACK tuvo éxito debido a la escalabilidad [20] de HPLinpack, el hecho de que genera un solo número, lo que hace que los resultados sean fácilmente comparables y la extensa base de datos históricos que tiene asociada. [21] Sin embargo, poco después de su lanzamiento, el benchmark LINPACK fue criticado por proporcionar niveles de rendimiento "generalmente inalcanzables para todos, excepto unos pocos programadores que optimizan tediosamente su código para esa máquina y esa máquina solamente", [22] porque solo prueba la resolución de sistemas lineales densos, que no son representativos de todas las operaciones que generalmente se realizan en la computación científica. [23] Jack Dongarra , la principal fuerza impulsora detrás de los benchmarks LINPACK, dijo que, si bien solo enfatizan la velocidad "máxima" de la CPU y la cantidad de CPU, no se le da suficiente énfasis al ancho de banda local y la red. [24]

Thom Dunning, Jr. , director del Centro Nacional para Aplicaciones de Supercomputación , dijo lo siguiente sobre el índice de referencia LINPACK: "El índice de referencia Linpack es uno de esos fenómenos interesantes; casi cualquiera que lo conozca se burlará de su utilidad. Entienden sus limitaciones, pero es un número que todos hemos aceptado a lo largo de los años". [25]

Según Dongarra, "los organizadores del Top500 están buscando activamente expandir el alcance de los informes de referencia" porque "es importante incluir más características de rendimiento y firmas para un sistema determinado". [26] Una de las posibilidades que se está considerando para extender el punto de referencia para el TOP500 es el HPC Challenge Benchmark Suite. [27] Con la llegada de las computadoras a petaescala , los bordes atravesados ​​por segundo han comenzado a surgir como una métrica complementaria a los FLOPS medidos por LINPACK. Otra métrica de este tipo es el punto de referencia HPCG , propuesto por Dongarra. [28]

La cuestión del tiempo de ejecución

Según Jack Dongarra , se espera que aumente el tiempo de ejecución necesario para obtener buenos resultados de rendimiento con HPLinpack. En una conferencia celebrada en 2010, dijo que espera tiempos de ejecución de 2,5 días en "unos pocos años". [29]

Véase también

Referencias

  1. ^ ab "The Linpack Benchmark, TOP500 Supercomputing Sites" (El índice de referencia Linpack, los 500 mejores sitios de supercomputación) . Consultado el 10 de febrero de 2015 .
  2. ^ abcde Dongarra, Jack J.; Luszczek, Piotr; Petitet, Antoine (2003), "El punto de referencia LINPACK: pasado, presente y futuro" (PDF) , Concurrencia y computación: práctica y experiencia , 15 (9), John Wiley & Sons, Ltd.: 803–820, doi :10.1002/cpe.728, S2CID  1900724
  3. ^ Entrevista a Jack Dongarra por Sander Olson, archivada desde el original el 4 de marzo de 2016 , consultada el 13 de enero de 2012
  4. ^ Dongarra, JJ; Moler, CB; Manojo, JR; Stewart, GW (1979), LINPACK: guía del usuario, SIAM , ISBN 9780898711721
  5. ^ Dongarra, Jack (1988), "El punto de referencia LINPACK: una explicación", Supercomputing (PDF) , Lecture Notes in Computer Science, vol. 297, Springer Berlin/Heidelberg, págs. 456–474, doi :10.1007/3-540-18991-2_27, ISBN 978-3-540-18991-6
  6. ^ High Performance Linpack Benchmark (PDF) , consultado el 10 de febrero de 2015
  7. ^ Bailey, DH; Barszcz, E.; Barton, JT; Browning, DS; Carter, RL; Dagum, L.; Fatoohi, RA; Frederickson, PO; Lasinski, TA; Schreiber, RS; Simon, HD; Venkatakrishnan, V.; Weeratunga, SK (1991). "Los puntos de referencia paralelos de NAS: resumen y resultados preliminares". Actas de la conferencia ACM/IEEE de 1991 sobre supercomputación - Supercomputing '91. Supercomputing '91. Actas de la conferencia ACM/IEEE de 1991. págs. 158-165. doi :10.1145/125826.125925. ISBN 0897914597.S2CID 18046345  .{{cite book}}: CS1 maint: ubicación ( enlace ) CS1 maint: ubicación del editor faltante ( enlace )
  8. ^ "Preguntas frecuentes de LINPACK: ¿Puedo utilizar el método de Strassen al realizar las matrices múltiples en el benchmark HPL o para la ejecución Top500?" . Consultado el 10 de febrero de 2015 .
  9. ^ "Preguntas frecuentes de LINPACK: ¿A qué precisión debe ajustarse la solución?" . Consultado el 10 de febrero de 2015 .
  10. ^ "Brida LINPACK" . Consultado el 9 de marzo de 2024 .
  11. ^ "Evaluación comparativa de Linpack de alto rendimiento (HPL): rendimiento máximo teórico Rpeak" . Consultado el 15 de noviembre de 2023 .
  12. ^ "Y-MP C916/12256". TOP500 . 1995-12-01 . Consultado el 2023-11-15 .
  13. ^ "Frontier - HPE Cray EX235a, AMD Optimized 3rd Generation EPYC 64C 2GHz, AMD Instinct MI250X, Slingshot-11". TOP500 . 2023-11-12 . Consultado el 2023-11-15 .
  14. ^ "Programa de evaluación comparativa de Linpack en Fortran" . Consultado el 10 de febrero de 2015 .
  15. ^ "Programa de referencia Linpack en C" . Consultado el 10 de febrero de 2015 .
  16. ^ "Programa de referencia Linpack en Java" . Consultado el 10 de febrero de 2015 .
  17. ^ "HPL - Una implementación portátil del benchmark Linpack de alto rendimiento para computadoras con memoria distribuida" . Consultado el 10 de febrero de 2015 .
  18. ^ "Algoritmo HPL".
  19. ^ "Descripción general de HPL" . Consultado el 10 de febrero de 2015 .
  20. ^ "UNA ENTREVISTA CON LA LEYENDA DE LA SUPERCOMPUTACIÓN JACK DONGARRA". 24 de mayo de 2002.
  21. ^ Haigh, Thomas (2004). "Una entrevista con Jack J. Dongarra" (PDF) . LINPACK es un punto de referencia que la gente suele citar porque contiene una base de datos histórica de información, porque es bastante fácil de ejecutar, es bastante fácil de entender y, en cierto sentido, captura lo mejor y lo peor de la programación.
  22. ^ Hammond, Steven (1995), Más allá de Machoflops: cómo introducir los MPP en el entorno de producción
  23. ^ Gahvari, Hormozd; Hoemmen, Mark; Demmel, James; Yelick, Katherine (2006), "Evaluación comparativa de la multiplicación de matrices dispersas por vectores en cinco minutos", Taller de evaluación comparativa SPEC (PDF)
  24. ^ Dongarra, Jack J. (2007), "El desafío de HPC: ¿un candidato para reemplazar a Linpack en el Top500?", Taller de evaluación comparativa SPEC (PDF)
  25. ^ Christopher Mims (8 de noviembre de 2010). "Por qué la nueva supercomputadora de China es sólo técnicamente la más rápida del mundo" . Consultado el 22 de septiembre de 2011 .
  26. ^ Meuer, Martin (24 de mayo de 2002). "UNA ENTREVISTA CON LA LEYENDA DE LA SUPERCOMPUTACIÓN JACK DONGARRA" . Consultado el 1 de diciembre de 2022 .
  27. ^ Luszczek, Piotr; Dongarra, Jack J.; Koester, David; Rabenseifner, Rolf; Lucas, Bob; Kepner, Jeremy; Mccalpin, John; Bailey, David; Takahashi, Daisuke (2005), Introducción a la suite de referencia HPC Challenge (PDF)
  28. ^ Hemsoth, Nicole (26 de junio de 2014). "Nuevo estudio comparativo de HPC ofrece resultados prometedores". HPCWire . Consultado el 1 de diciembre de 2022 .
  29. ^ Dongarra, Jack J. (2010). LINPACK Benchmark con límites de tiempo en aceleradores multinúcleo y basados ​​en GPU (PDF) . Conferencia Internacional de Supercomputación.
  • 500 mejores paquetes de Linpack
  • Un punto de referencia LINPACK basado en la web
  • Prueba comparativa LINPACK optimizada por Intel
Obtenido de "https://es.wikipedia.org/w/index.php?title=Puntos_de_referencia_LINPACK&oldid=1230383742"