Los benchmarks LINPACK son una medida de la potencia de cálculo de punto flotante de un sistema . Introducidos por Jack Dongarra , miden la rapidez con la que un ordenador resuelve un sistema denso de ecuaciones lineales n × n, Ax = b , que es una tarea común en ingeniería .
La última versión de estos benchmarks se utiliza para crear la lista TOP500 , que clasifica a las supercomputadoras más potentes del mundo. [ 1 ]
El objetivo es aproximar la velocidad de ejecución de un ordenador al resolver problemas reales. Se trata de una simplificación, ya que ninguna tarea computacional individual puede reflejar el rendimiento global de un sistema informático. No obstante, el rendimiento del benchmark LINPACK puede proporcionar una buena corrección respecto al rendimiento máximo indicado por el fabricante. El rendimiento máximo es el máximo rendimiento teórico que puede alcanzar un ordenador, calculado como la frecuencia de la máquina, en ciclos por segundo, multiplicada 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 coma 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 debajo del rendimiento máximo que alcanza al ejecutar el benchmark LINPACK correspondiente. [ 3 ]
El nombre de estos benchmarks proviene del paquete LINPACK , una colección de subrutinas de álgebra en Fortran muy utilizadas en la década de 1980, e inicialmente estrechamente vinculadas al benchmark LINPACK. Desde entonces, el paquete LINPACK ha sido reemplazado por otras bibliotecas.
Historia
El informe de evaluación comparativa de LINPACK apareció por primera vez en 1979 como un apéndice del manual del usuario de LINPACK . [ 4 ]
LINPACK fue diseñado para ayudar a los usuarios a estimar el tiempo que requieren sus sistemas para resolver un problema utilizando el paquete LINPACK, extrapolando los resultados de rendimiento obtenidos por 23 ordenadores 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 de aquel momento:
- Se generan aleatoriamente 10.000 entradas de punto flotante de -1 a 1 para rellenar una matriz densa general,
- Luego, se utiliza la descomposición LU con pivoteo parcial para la medición del tiempo.
Con el paso de los años, se publicaron 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 paralelo LINPACK a finales de la década de 1980. [ 2 ]
En 1991, LINPACK fue modificado para [ 6 ] resolver problemas de tamaño arbitrario, lo que permitió que las computadoras de alto rendimiento (HPC) se acercaran a su rendimiento asintótico.
Dos años más tarde, este parámetro de referencia se utilizó para medir el rendimiento de la primera lista TOP500 .
Los puntos de referencia
LINPACK 100
LINPACK 100 es muy similar al benchmark original publicado en 1979 junto con el manual de usuario de LINPACK. [ 7 ] La solución se obtiene mediante eliminación gaussiana con pivoteo parcial , conoperaciones de punto flotante, donde n = 100 es el orden de la matriz densa A que define el problema. Su pequeño tamaño y la falta de flexibilidad del software impiden que la mayoría de las computadoras modernas alcancen sus límites de rendimiento. Sin embargo, aún puede ser útil predecir el rendimiento en código escrito por el usuario con alta carga numérica mediante la optimización del compilador . [ 2 ]
LINPACK 1000
LINPACK 1000 puede proporcionar un rendimiento más cercano al límite de la máquina porque, además de ofrecer un tamaño de problema mayor, una matriz de orden 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ácon n = 1000. [ 2 ]
HPLinpack
Los puntos de referencia anteriores no son adecuados para probar computadoras paralelas, [ 8 ] y se introdujo el llamado punto de referencia de computación altamente paralela de Linpack , o punto de referencia 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á como el recuento de operaciones, independientemente del algoritmo utilizado. No se permite el uso del algoritmo de Strassen porque distorsiona la tasa de ejecución real. [ 9 ] La precisión debe ser tal que se cumpla la siguiente expresión:
dónde
- es la precisión de la máquina,
- n es el tamaño del problema, [ 10 ]
- es una norma de matriz (suma de fila más grande [ 11 ] ),
- corresponde a la notación de la gran O.
Para cada sistema informático, se informan las siguientes cantidades: [ 2 ]
- R max : el rendimiento en GFLOPS para la ejecución del problema más grande en una máquina.
- N max – el tamaño del problema más grande que se puede ejecutar en una máquina.
- N 1/2 – el tamaño donde se alcanza la mitad de la tasa de ejecución máxima de R.
- R pico : el rendimiento máximo teórico en GFLOPS para la máquina.
Estos resultados se utilizan para elaborar la lista TOP500 dos veces al año, con las computadoras más potentes del mundo. [ 1 ] TOP500 mide estos valores en formato de punto flotante de doble precisión (FP64). La relación R max / R peak se denomina eficiencia paralela o eficiencia HPL. [ 12 ] Generalmente es menor cuanto mayor sea el número de nodos de un sistema debido a la sobrecarga de comunicación. Por ejemplo, una Cray Y-MP de la década de 1990 alcanza aproximadamente el 90 % de eficiencia HPL, [ 13 ] mientras que Frontier alcanza aproximadamente el 70 % en 2023. [ 14 ]
Implementaciones de referencia de LINPACK
La sección anterior describe las reglas básicas para las pruebas de rendimiento. La implementación real del programa puede variar, existiendo algunos ejemplos disponibles en Fortran , [ 15 ] C [ 16 ] o Java . [ 17 ]
HPL
HPL es una implementación portátil de HPLinpack escrita en C, originalmente como 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 usando la descomposición LU con pivoteo parcial de filas. Requiere implementaciones instaladas de MPI y BLAS o VSIPL para ejecutarse. [ 18 ]
En términos generales, el algoritmo tiene las siguientes características: [ 19 ] [ 20 ]
- distribución cíclica de datos en bloques 2D
- Factorización LU utilizando la variante de búsqueda a la derecha con diferentes profundidades de anticipación.
- factorización de paneles recursiva
- seis variantes diferentes de transmisión por panel
- algoritmo de intercambio-difusión 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 [ 21 ] 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. [ 22 ] Sin embargo, poco después de su lanzamiento, el benchmark LINPACK fue criticado por proporcionar niveles de rendimiento "generalmente inalcanzables para todos excepto para muy pocos programadores que optimizan tediosamente su código para esa máquina y solo para esa máquina", [ 23 ] porque solo prueba la resolución de sistemas lineales densos, que no son representativos de todas las operaciones que se realizan habitualmente en la computación científica. [ 24 ] Jack Dongarra , la fuerza impulsora principal detrás de los benchmarks LINPACK, dijo que, si bien solo enfatizan la velocidad "máxima" de la CPU y el número de CPUs, no se da suficiente importancia al ancho de banda local y a la red. [ 25 ]
Thom Dunning Jr. , director del Centro Nacional de Aplicaciones de Supercomputación , comentó lo siguiente sobre el benchmark LINPACK: "El benchmark Linpack es uno de esos fenómenos curiosos : casi cualquiera que lo conozca se burlará de su utilidad. Entienden sus limitaciones, pero está presente en la mente de todos porque es el único número que todos hemos aceptado a lo largo de los años". [ 26 ]
Según Dongarra, "los organizadores del TOP500 buscan activamente ampliar el alcance de los informes de referencia" porque "es importante incluir más características de rendimiento y firmas para un sistema dado". [ 27 ] Una de las posibilidades que se está considerando para extender la referencia para el TOP500 es el conjunto de pruebas HPC Challenge Benchmark . [ 28 ] Con la llegada de las computadoras de petaescala , los bordes recorridos por segundo han comenzado a surgir como una métrica complementaria a los FLOPS medidos por LINPACK. Otra métrica de este tipo es la prueba HPCG , propuesta por Dongarra. [ 29 ]
El problema del tiempo de ejecución
Según Jack Dongarra , se prevé que aumente el tiempo de ejecución necesario para obtener buenos resultados con HPLinpack. En una conferencia celebrada en 2010, afirmó que esperaba tiempos de ejecución de 2,5 días en "unos pocos años". [ 30 ]
Véase también
Referencias
- 1 2 "The Linpack Benchmark, TOP500 Supercomputing Sites" . Recuperado el 10 de febrero de 2015 .
- 1 2 3 4 5 Dongarra, Jack J.; Luszczek, Piotr; Petitet, Antoine (2003), "The LINPACK Benchmark: past, present and future" (PDF) , Concurrency and Computation: Practice and Experience , 15 (9), John Wiley & Sons, Ltd.: 803–820 , doi : 10.1002/cpe.728 , S2CID 1900724 .
- ↑ Entrevista a Jack Dongarra realizada por Sander Olson , archivada del original el 4 de marzo de 2016 , consultada el 13 de enero de 2012..
- ^ Dongarra, JJ; Moler, CB; Manojo, JR; Stewart, GW (1979), LINPACK: guía del usuario , SIAM , ISBN 9780898711721.
- ↑ Dongarra, Jack (1988), "The LINPACK Benchmark: An explanation", Supercomputing (PDF) , Lecture Notes in Computer Science, vol. 297, Springer Berlin/Heidelberg, pp. 456–474 , doi : 10.1007/3-540-18991-2_27 , ISBN 978-3-540-18991-6.
- ↑ Prueba comparativa de alto rendimiento de Linpack (PDF) , Laboratorio de Computación Innovadora, Universidad de Tennessee, 2010 , consultado el 10 de febrero de 2015..
- ↑ JJ Dongarra, JR Bunch, CB Moler, GW Stewart, "Guía del usuario de LINPACK" , 1979.
- ↑ 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 benchmarks paralelos NAS: resumen y resultados preliminares". Actas de la conferencia ACM/IEEE de 1991 sobre supercomputación – Supercomputing '91 . págs. 158–165 . doi : 10.1145/125826.125925 . ISBN 0897914597. S2CID 18046345 .
- ↑ "¿Puedo usar el método de Strassen al realizar las multiplicaciones de matrices en la prueba de rendimiento HPL o para la ejecución Top500?" . Preguntas frecuentes de LINPACK . Consultado el 10 de febrero de 2015 .
- ↑ "¿Con qué precisión debe ajustarse la solución?" . Preguntas frecuentes de LINPACK . Consultado el 10 de febrero de 2015 .
- ↑ "LINPACK dlange" . Consultado el 9 de marzo de 2024 .
- ↑ "Rendimiento máximo teórico R pico " . Tutoriales de computación de alto rendimiento (HPC) de Uni.lu. Consultado el 15 de noviembre de 2023 .
- ↑ "Y-MP C916/12256" . TOP500 . 1995-12-01 . Consultado el 2023-11-15 .
- ↑ "Frontier – HPE Cray EX235a, AMD Optimized 3rd Generation EPYC 64C 2GHz, AMD Instinct MI250X, Slingshot-11" . TOP500 . 12/11/2023 . Consultado el 15/11/2023 .
- ↑ "Programa de evaluación comparativa Linpack en Fortran" . Consultado el 10 de febrero de 2015 .
- ↑ "Programa de evaluación comparativa Linpack en C" . Consultado el 10 de febrero de 2015 .
- ↑ "Programa de evaluación comparativa Linpack en Java" . Consultado el 10 de febrero de 2015 .
- ↑ "HPL – Una implementación portátil del benchmark Linpack de alto rendimiento para computadoras con memoria distribuida" . The Netlib . Consultado el 10 de febrero de 2015 .
- ↑ "Algoritmo HPL" . Netlib .
- ↑ "Descripción general de HPL" . Laboratorio de Computación Innovadora . Consultado el 10 de febrero de 2015 .
- ↑ "ENTREVISTA CON LA LEYENDA DE LA SUPERCOMPUTACIÓN JACK DONGARRA" . 24/05/2002.
- ↑ Haigh, Thomas (2004). "Una entrevista con Jack J. Dongarra" (PDF) .
LINPACK es un referente que se cita a menudo porque cuenta con una gran base de datos histórica, es bastante fácil de ejecutar, bastante fácil de entender y, en cierto modo, refleja lo mejor y lo peor de la programación.
- ↑ Hammond, Steven (1995), "Más allá de los Machoflops: Cómo introducir los MPP en el entorno de producción" , Nota técnica del Centro Nacional de Investigación Atmosférica , 413 , Ucar/Ncar: 844 KB, Bibcode : 1995NCART.413...... , doi : 10.5065/D6J67DW7.
- ↑ Gahvari, Hormozd; Hoemmen, Mark; Demmel, James; Yelick, Katherine (2006), "Benchmarking Sparse Matrix-Vector Multiply in Five Minutes", SPEC Benchmark Workshop (PDF).
- ↑ Dongarra, Jack J. (2007), "El HPC Challenge Benchmark: ¿Un candidato para reemplazar a Linpack en el Top500?", Taller de evaluación comparativa SPEC (PDF).
- ↑ Christopher Mims (8 de noviembre de 2010). "Por qué la nueva supercomputadora de China es solo técnicamente la más rápida del mundo" . Consultado el 22 de septiembre de 2011 .
- ↑ Meuer, Martin (24 de mayo de 2002). "UNA ENTREVISTA CON LA LEYENDA DE LA SUPERCOMPUTACIÓN JACK DONGARRA" . Recuperado el 1 de diciembre de 2022 .
- ↑ Luszczek, Piotr; Dongarra, Jack J.; Koester, David; Rabenseifner, Rolf; Lucas, Bob; Kepner, Jeremy; Mccalpin, John; Bailey, David; Takahashi, Daisuke (2005), Introducción al conjunto de pruebas comparativas HPC Challenge (PDF).
- ↑ Hemsoth, Nicole (26 de junio de 2014). "Nuevo benchmark de HPC ofrece resultados prometedores" . HPCWire . Consultado el 1 de diciembre de 2022 .
- ↑ 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.
Enlaces externos
- TOP500 LINPACK
- Prueba de rendimiento LINPACK optimizada por Intel
- Pruebas de rendimiento de supercomputadoras