Los NAS Parallel Benchmarks ( NPB ) son un conjunto de pruebas de rendimiento destinadas a evaluar el desempeño de supercomputadoras altamente paralelas . Son desarrolladas y mantenidas por la División de Supercomputación Avanzada de la NASA (NAS) (anteriormente Programa de Simulación Aerodinámica Numérica de la NASA), con sede en el Centro de Investigación Ames de la NASA . La NAS solicita resultados de rendimiento para los NPB de todas las fuentes. [ 1 ]
Historia
Motivación
Los benchmarks tradicionales que existían antes de NPB, como los bucles de Livermore , el LINPACK Benchmark y el NAS Kernel Benchmark Program , generalmente estaban especializados para computadoras vectoriales. Por lo general, adolecían de deficiencias, como 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 eran los benchmarks de aplicaciones a gran escala debido al alto costo de portabilidad y la falta de herramientas de paralelización de software automáticas. [ 2 ] Como resultado, NPB se desarrolló en 1991 [ 3 ] y se lanzó en 1992 [ 4 ] para abordar la consiguiente falta de benchmarks aplicables a máquinas altamente paralelas.
NPB 1
La primera especificación de NPB reconoció que los puntos de referencia deberían incluir
- nuevos métodos algorítmicos y de software que tienen en cuenta el procesamiento paralelo,
- genericidad y neutralidad arquitectónica,
- fácil verificación de la exactitud de los resultados y las cifras de rendimiento,
- capacidad de acomodar nuevos sistemas con mayor potencia,
- y fácil distribución.
A la luz de estas directrices, se consideró que el único enfoque viable era utilizar una colección de pruebas de referencia "en papel y lápiz" que especificaran un conjunto de problemas únicamente de forma algorítmica y dejaran la mayoría de los detalles de implementación a discreción del implementador, dentro de ciertos límites necesarios.
NPB 1 definió ocho puntos de referencia, cada uno en dos tamaños de problema denominados Clase A y Clase B. Se proporcionaron ejemplos de código escritos en Fortran 77. Estos utilizaban un tamaño de problema pequeño de Clase S y no estaban destinados a fines de evaluación comparativa. [ 2 ]
NPB 2
Desde su lanzamiento, NPB 1 presentó dos debilidades importantes. En primer lugar, debido a su especificación de "papel y lápiz", los proveedores de computadoras solían optimizar al máximo sus implementaciones, lo que dificultaba que los programadores científicos alcanzaran su máximo rendimiento. En segundo lugar, muchas de estas implementaciones eran propietarias y no estaban disponibles públicamente, lo que ocultaba sus técnicas de optimización. Además, el tamaño de los problemas de NPB 1 se quedó rezagado con respecto al desarrollo de las supercomputadoras, a medida que estas últimas seguían evolucionando. [ 3 ]
NPB 2, publicado en 1996, [ 5 ] [ 6 ] incluía implementaciones de código fuente para cinco de los ocho benchmarks definidos en NPB 1 para complementar, pero no reemplazar, NPB 1. Amplió los benchmarks con una Clase C de tamaño de problema actualizada . También modificó las reglas para el envío de resultados de benchmarking. Las nuevas reglas incluían solicitudes explícitas de archivos de salida, así como de 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 benchmarks más. [ 5 ] NPB 2.3 de 1997 fue la primera implementación completa en MPI . [ 4 ] Se distribuyó con versiones seriales de los benchmarks consistentes con las versiones paralelas y definió una clase de tamaño de problema W para sistemas con poca memoria. [ 7 ] NPB 2.4 de 2002 ofreció una nueva implementación de MPI e introdujo otra clase de tamaño de problema aún mayor, la clase D. [ 6 ] También amplió un benchmark con subtipos intensivos en E/S . [ 4 ]
NPB 3
NPB 3 conservó la implementación MPI de NPB 2 y se presentó en más variantes, a saber, OpenMP , [ 8 ] Java [ 9 ] y Fortran de alto rendimiento . [ 10 ] Estas nuevas implementaciones paralelas se derivaron de los códigos seriales en NPB 2.3 con optimizaciones adicionales. [ 7 ] NPB 3.1 y NPB 3.2 agregaron tres benchmarks 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 publicó un conjunto de benchmarks de múltiples zonas que aprovechan el modelo de programación híbrida MPI/OpenMP bajo el nombre NPB-Multi-Zone ( NPB-MZ ) para "probar la efectividad de los paradigmas y herramientas de paralelización híbrida y multinivel". [ 1 ] [ 13 ]
Los puntos de referencia
A partir de NPB 3.3, se definen once puntos de referencia, tal como se resume en la siguiente tabla.
Referencias
- 1 2 "Cambios en los benchmarks paralelos de NAS" . División de Supercomputación Avanzada de la NASA . Recuperado el 23 de febrero de 2009 .
- 1 2 3 4 5 Bailey, 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) , Informe técnico de NAS RNR-94-007 , Centro de investigación Ames de la NASA, Moffett Field, CA
- ^ Bailey , D .; Harris, T.; Saphir, W.; van der Wijngaart, R.; Woo, A.; Yarrow, M. (diciembre de 1995), "The NAS Parallel Benchmarks 2.0" (PDF) , Informe técnico de NAS NAS-95-020 , Centro de investigación Ames de la NASA, Moffett Field, CA
- 1 2 3 4 Wong, P.; van der Wijngaart, R. (enero de 2003), "NAS Parallel Benchmarks I/O Version 2.4" (PDF) , Informe técnico de NAS NAS-03-002 , Centro de investigación Ames de la NASA, Moffett Field, CA
- 1 2 3 Saphir, W.; van der Wijngaart, R.; Woo, A.; Yarrow, M., Nuevas implementaciones y resultados para los NAS Parallel Benchmarks 2 (PDF) , Centro de Investigación Ames de la NASA, Moffett Field, CA
- ^ van der Wijngaart, R. (octubre de 2002), "NAS Parallel Benchmarks Version 2.4" (PDF) , Informe técnico de NAS NAS-02-007 , Centro de investigación Ames de la NASA, Moffett Field, CA
- 1 2 3 4 5 6 "Cambios en los puntos de referencia paralelos de la 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), "La implementación de OpenMP de puntos de referencia paralelos de NAS y su rendimiento" (PDF) , Informe técnico de NAS NAS-99-011 , Centro de investigación Ames de la NASA, Moffett Field, CA
- ↑ Frumkin, M.; Schultz, M.; Jin, H.; Yan, J., "Implementación de los benchmarks paralelos de NAS en Java" (PDF) , Informe técnico de NAS NAS-02-009 , Centro de Investigación Ames de la NASA, Moffett Field, CA
- ↑ Frumkin, M.; Jin, H.; Yan, J. (septiembre de 1998), "Implementación de pruebas de rendimiento paralelas NAS en Fortran de alto rendimiento" (PDF) , Informe técnico NAS NAS-98-009 , Centro de Investigación Ames de la NASA, Moffett Field, CA
- 1 2 Feng, H.; van der Wijngaart, F.; Biswas, R.; Mavriplis, C. (julio de 2004), "Unstructured Adaptive (UA) NAS Parallel Benchmark, Versión 1.0" (PDF) , Informe técnico NAS NAS-04-006 , Centro de Investigación Ames de la NASA, Moffett Field, CA
- 1 2 Frumkin, M.; Shabanov, L. (septiembre de 2004), "Evaluación comparativa del rendimiento de la memoria con el operador Data Cube" (PDF) , Informe técnico NAS NAS-04-013 , Centro de Investigación Ames de la NASA, Moffett Field, CA
- 1 2 van der Wijngaart, R.; Jin, H. (julio de 2003), "NAS Parallel Benchmarks, Multi-Zone Versions" (PDF) , Informe técnico de NAS NAS-03-010 , Centro de investigación Ames de la NASA, Moffett Field, CA
Enlaces externos
- Cambios en los benchmarks paralelos de NAS (sitio web oficial)
- Pruebas de rendimiento de supercomputadoras