Comparativa de rendimiento

Estas distintas familias tienen un rendimiento muy diferente. Un mismo programa puede tardar distintos tiempos en completarse según el nodo en que corra. Para ayudar a la estimación del tiempo de ejecución se ha realizado una comparativa de la potencia de cálculo de las CPUs de cada familia.

La potencia de cálculo de un sistema se suele medir en FLOPS (Floating Point Operations per Second), esto es, el número de operaciones en coma flotante por segundo, normalmente en doble precisión. Esta medida es independiente del conjunto de instrucciones de la CPU y sirve para comparar sistemas con arquitecturas distintas.

La potencia de cálculo de los procesadores actuales permiten tasas de miles de millones de operaciones por segundo, por lo que se suele usar el múltiplo GFLOPS.

POTENCIA MÁXIMA TEÓRICA #

Podemos calcular la potencia de cálculo teórica de una CPU si conocemos los detalles de su arquitectura. Este valor se conoce como máximo teórico o Rpeak. La forma más simple de calcularlo es multiplicar el número de núcleos por su frecuencia y por el máximo número de instrucciones en coma flotante de doble precisión que es capaz de realizar por ciclo. Así, para un nodo, la expresión sería:

Rpeak (GFLOPS)= #sockets + #cores/socket · GHz · #ops/ciclo

No obstante, este es el límite superior teórico y es muy improbable que se alcance en situaciones reales. El máximo teórico nos sirve para poder saber en qué grado estamos aprovechando el potencial de la CPU.

PRUEBAS DE RENDIMIENTO (BENCHMARKS) #

_

Las pruebas de rendimiento son programas creados para conocer las características de un sistema informático. Las hay de muchos tipos y pueden medir distintos aspectos de la máquina, como el sistema de almacenamiento, ancho de banda a memoria, procesamiento gráfico, etc. o el conjunto del sistema.

En este entorno de computación científica, los aspectos más relevantes son la potencia de cálculo de la CPU y el ancho de banda a memoria principal. Para evaluar estos componentes se han empleado dos benchmarks ampliamente utilizados en entornos HPC: Linpack y HPCG.

Linpack es una librería que resuelve problemas de algebra lineal. Ha sido muy utilizada como benchmark de CPU. HPL (High Performance Linpack) es una versión paralela y optimizada de la misma que se usa para medir el rendimiento de los supercomputadores que aparecen en la lista del TOP500.

HPCG (high performance conjugate gradient) es un nuevo benchmark, también usado en supercomputadores, creado con la intención de modelar el acceso real que hacen los programas a memoria principal. Los accesos a memoria suelen hacer de cuello de botella por lo que este benchmark optiene solo una fracción de la potencia bruta de la CPU. Complemente a Linpack, el cual hace un uso más intensivo del procesador.

RENDIMIENTO #

_

En las siguiente tablas se muestran los resultados obtenidos al calcular el máximo teórico y al evaluar los nodos mediante los benchmarks Linpack y HPCG.

Se han realizado dos evaluaciones: en una se ha empleado un único núcleo y en la otra todos los núcleos que contiene el nodo.

Máximo teórico – Rpeak (GFLOPS) #

_

Calculado con la formula de más arriba y teniendo en cuenta que el número de operaciones por ciclo para cada arquitectura (4, 16 o 32), obtenemos los siguientes Rpeaks:

Apodo Núcleo único Nodo Completo
Calypso 9,32 74,56
Kratos 13,88 166,56
Hermes v1 41,6 832
Hermes v2 38,4 768
Metis v1 83,2 2329,6
Metis v2 86,4 2073,6

Linpack #

_

Se ha usado la versión de HPL ofrecida por Intel, la cual está especialmente optimizada para sus procesadores. Las pruebas se han hecho utilizando un único núcleo y con todos los disponibles en el sistema. También, para aquellas CPUs que soportan TurboBoost, se han recogido los resultados con esta opción activa y desactivada:

Apodo Núcleo único % No Turbo % Nodo Completo %
Calypso 8,87 95,1 66.09 88,6
Kratos 14,09 102,5 13,3 95,8 151,6 91
Hermes v1 42,68 109,7 38,99 93,7 671,2 80,6
Hermes v2
Metis v1
Metis v2 1534,51 74

HPCG #

_

Esta tabla se encuentra en construcción… Disculpa las molestias. *

Apodo Núcleo único % No Turbo % Nodo Completo %
Calypso
Kratos
Hermes v1
Hermes v2
Metis v1
Metis v2