Los puntos de referencia NAS Parallel Benchmarks ( NPB ) son un conjunto de puntos de referencia que tienen como objetivo la evaluación del rendimiento de supercomputadoras altamente paralelas . Ellos son desarrollados y mantenidos por la NASA División de Supercomputación Avanzada (NAS) (anteriormente el programa de simulación numérica aerodinámica de la NASA), basado en el Centro de Investigación Ames de la NASA . NAS solicita resultados de rendimiento para NPB de todas las fuentes. [1]
Autor (es) original (es) | Programa de simulación aerodinámica numérica de la NASA |
---|---|
Desarrollador (es) | División de Supercomputación Avanzada de la NASA |
Versión inicial | 1991 |
Lanzamiento estable | 3.4 |
Sitio web | nas |
Historia
Motivación
Los puntos de referencia tradicionales que existían antes de NPB, como los bucles de Livermore , el LINPACK Benchmark y el NAS Kernel Benchmark Program , generalmente se especializaban en computadoras vectoriales. En general, sufrían de deficiencias, incluidas restricciones de ajuste que impedían el paralelismo y tamaños de problemas insuficientes, lo que los hacía inapropiados para sistemas altamente paralelos. Igualmente inadecuados fueron los puntos de referencia de aplicaciones a gran escala debido al alto costo de transferencia y la falta de disponibilidad de herramientas de paralelización automática de software. [2] Como resultado, los NPB se desarrollaron en 1991 [3] y se lanzaron en 1992 [4] para abordar la consiguiente falta de puntos de referencia aplicables a máquinas altamente paralelas.
NPB 1
La primera especificación de NPB reconoció que los puntos de referencia deben incluir
- nuevos métodos algorítmicos y de software con reconocimiento paralelo,
- genéricoidad y neutralidad de la arquitectura,
- fácil verificabilidad de la exactitud de los resultados y las cifras de rendimiento,
- capacidad de acomodar nuevos sistemas con mayor potencia,
- y pronta distribución.
A la luz de estas pautas, se consideró que el único enfoque viable era utilizar una colección de puntos de referencia de "papel y lápiz" que especificaban un conjunto de problemas solo algorítmicamente y dejaban la mayoría de los detalles de implementación a la discreción del implementador bajo ciertos límites necesarios.
NPB 1 define ocho puntos de referencia, cada una en dos tamaños de problemas dobladas Clase A y Clase B . Se proporcionaron códigos de muestra escritos en Fortran 77 . Utilizaron una clase S de tamaño de problema pequeño y no estaban destinados a fines de evaluación comparativa. [2]
NPB 2
Desde su lanzamiento, NPB 1 mostró dos debilidades importantes. En primer lugar, debido a su especificación de "papel y lápiz", los proveedores de computadoras generalmente ajustaban mucho sus implementaciones, de modo que su desempeño se volvió difícil de lograr para los programadores científicos. En segundo lugar, muchas de estas implementaciones eran propietarias y no estaban disponibles públicamente, lo que ocultaba efectivamente sus técnicas de optimización. En segundo lugar, el tamaño de los problemas de NPB 1 se retrasó con respecto al desarrollo de las supercomputadoras, ya que estas últimas continuaron evolucionando. [3]
NPB 2, lanzado en 1996, [5] [6] vino con implementaciones de código fuente para cinco de los ocho puntos de referencia definidos en NPB 1 para complementar pero no reemplazar NPB 1. Extendió los puntos de referencia con un tamaño de problema actualizado Clase C . También modificó las reglas para la presentación de resultados de evaluación comparativa. Las nuevas reglas incluían solicitudes explícitas de archivos de salida, así como archivos fuente modificados y scripts de compilación para garantizar la disponibilidad pública de las modificaciones y la reproducibilidad de los resultados. [3]
NPB 2.2 contenía implementaciones de dos puntos de referencia más. [5] NPB 2.3 de 1997 fue la primera implementación completa en MPI . [4] Se envió con versiones en serie de los puntos de referencia consistentes con las versiones paralelas y definió un tamaño de problema Clase W para sistemas de memoria pequeña. [7] NPB 2.4 de 2002 ofreció una nueva implementación de MPI e introdujo otra clase D de tamaño de problema aún mayor . [6] También aumentó un punto de referencia con subtipos intensivos de E / S. [4]
NPB 3
NPB 3 retuvo la implementación MPI de NPB 2 y vino en más versiones, a saber , OpenMP , [8] Java [9] y High Performance Fortran . [10] Estas nuevas implementaciones paralelas se derivaron de los códigos de serie en NPB 2.3 con optimizaciones adicionales. [7] NPB 3.1 y NPB 3.2 agregaron tres puntos de referencia más, [11] [12] que, sin embargo, no estaban disponibles en todas las implementaciones; NPB 3.3 introdujo un tamaño de problema de Clase E. [7] Basado en el NPB 3 de zona única, se lanzó un conjunto de puntos de referencia multizona que aprovechan el modelo de programación híbrida MPI / OpenMP bajo el nombre NPB-Multi-Zone ( NPB-MZ ) para "probar la eficacia de paradigmas y herramientas de paralelización híbrida y multinivel ". [1] [13]
Los puntos de referencia
Según NPB 3.3, se definen once puntos de referencia como se resume en la siguiente tabla.
Punto de referencia | Nombre derivado de [2] | Disponible desde | Descripción [2] | Observaciones |
---|---|---|---|---|
MG | M ulti G rid | NPB 1 [2] | Calcule la solución a una ecuación de Poisson discreta tridimensional utilizando el método de redes múltiples de ciclo V | |
CG | C onjugate G radiante | Estimar el valor propio más pequeño de una matriz grande definida positiva simétrica dispersa usando la iteración inversa con el método de gradiente conjugado como una subrutina para resolver sistemas de ecuaciones lineales | ||
PIE | Fast F ORREO T ransform | Resolver una ecuación diferencial parcial tridimensional (PDE) utilizando la transformada rápida de Fourier (FFT) | ||
ES | Me nteger S ORT | Ordene los números enteros pequeños usando la clasificación de cubos [5] | ||
EP | E mbarrassingly P an paralelo | Genere variantes aleatorias gaussianas independientes utilizando el método polar de Marsaglia | ||
BT | B cerradura T ridiagonal | Resuelva un sistema sintético de PDE no lineales utilizando tres algoritmos diferentes que involucran núcleos de resolución de bloques tridiagonal , escalar pentadiagonal y simétrico sucesivo sobre relajación (SSOR), respectivamente |
| |
SP | P entadiagonal S calar [6] | |||
LU | L ower- U pper simétrica Gauss Seidel- [6] | |||
UA | No estructurado A daptive [11] | NPB 3.1 [7] | Resuelva la ecuación de calor con convección y difusión de una bola en movimiento. La malla se adapta y se vuelve a calcular en cada quinto paso. | |
corriente continua | D ata C Ube operador [12] | |||
DT | D ata T raffic [7] | NPB 3.2 [7] |
Referencias
- ^ a b "Cambios en los puntos de referencia paralelos de NAS" . División de Supercomputación Avanzada de la NASA . Consultado el 23 de febrero de 2009 .
- ^ a b c d e Baily, D .; Barszcz, E .; Barton, J .; Browning, D .; Carter, R .; Dagum, L .; Fatoohi, R .; Fineberg, S .; Frederickson, P .; Weeratunga, S. (marzo de 1994), "The NAS Parallel Benchmarks" (PDF) , NAS Technical Report RNR-94-007 , NASA Ames Research Center, Moffett Field, CA
- ^ a b c Bailey, D .; Harris, T .; Saphir, W .; van der Wijngaart, R .; Woo, A .; Yarrow, M. (diciembre de 1995), "The NAS Parallel Benchmarks 2.0" (PDF) , NAS Technical Report NAS-95-020 , NASA Ames Research Center, Moffett Field, CA
- ^ a b c d Wong, P .; van der Wijngaart, R. (enero de 2003), "NAS Parallel Benchmarks I / O Version 2.4" (PDF) , NAS Technical Report NAS-03-002 , NASA Ames Research Center, Moffett Field, CA
- ^ a b c Saphir, W .; van der Wijngaart, R .; Woo, A .; Yarrow, M., Nuevas implementaciones y resultados para NAS Parallel Benchmarks 2 (PDF) , Centro de investigación Ames de la NASA, Moffett Field, CA
- ^ a b c d van der Wijngaart, R. (octubre de 2002), "NAS Parallel Benchmarks Version 2.4" (PDF) , NAS Technical Report NAS-02-007 , NASA Ames Research Center, Moffett Field, CA
- ^ a b c d e f "Cambios en los puntos de referencia paralelos de NAS" . División de Supercomputación Avanzada de la NASA . Consultado el 17 de marzo de 2009 .
- ^ Jin, H .; Frumkin, M .; Yan, J. (octubre de 1999), "The OpenMP Implementation of NAS Parallel Benchmarks and its Performance" (PDF) , NAS Technical Report NAS-99-011 , NASA Ames Research Center, Moffett Field, CA
- ^ Frumkin, M .; Schultz, M .; Jin, H .; Yan, J., "Implementation of the NAS Parallel Benchmarks in Java" (PDF) , Informe técnico NAS NAS-02-009 , Centro de investigación Ames de la NASA, Moffett Field, CA
- ^ Frumkin, M .; Jin, H .; Yan, J. (septiembre de 1998), "Implementation of NAS Parallel Benchmarks in High Performance Fortran" (PDF) , NAS Technical Report NAS-98-009 , NASA Ames Research Center, Moffett Field, CA
- ^ a b Feng, H .; van der Wijngaart, F .; Biswas, R .; Mavriplis, C. (julio de 2004), "NAS Parallel Benchmark adaptable no estructurado (UA), versión 1.0" (PDF) , Informe técnico NAS NAS-04-006 , Centro de investigación Ames de la NASA, Moffett Field, CA
- ^ a b Frumkin, M .; Shabanov, L. (septiembre de 2004), "Evaluación comparativa del rendimiento de la memoria con el operador del cubo de datos" (PDF) , Informe técnico de NAS NAS-04-013 , Centro de investigación Ames de la NASA, Moffett Field, CA
- ^ a b van der Wijngaart, R .; Jin, H. (julio de 2003), "NAS Parallel Benchmarks, Versiones multizona " (PDF) , Informe técnico NAS NAS-03-010 , Centro de investigación Ames de la NASA, Moffett Field, CA
enlaces externos
- Cambios en NAS Parallel Benchmarks (sitio web oficial)