Puntos de referencia paralelos de NAS


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]

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 estaban especializados para computadoras vectoriales. En general, adolecí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.

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 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 un tamaño de problema pequeño Clase S y no estaban destinados a fines de evaluación comparativa. [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, los tamaños de los problemas de NPB 1 quedaron rezagados 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]